Full Code of wbhart/mpir for AI

master 307663bf8b4d cached
2160 files
11.4 MB
3.1M tokens
3713 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (12,299K chars total). Download the full file to get everything.
Repository: wbhart/mpir
Branch: master
Commit: 307663bf8b4d
Files: 2160
Total size: 11.4 MB

Directory structure:
gitextract_o7x9ziic/

├── .appveyor_msys_build.sh
├── .gdbinit
├── .gitattributes
├── .gitignore
├── .travis.yml
├── AUTHORS
├── COPYING
├── COPYING.LIB
├── ChangeLog
├── INSTALL
├── INSTALL.autoconf
├── Makefile.am
├── NEWS
├── README
├── acinclude.m4
├── appveyor.yml
├── assert.c
├── autogen.sh
├── cl_int.bat
├── clwrap
├── compat.c
├── config.guess
├── config.sub
├── configfsf.guess
├── configfsf.sub
├── configure.ac
├── configure.yasm
├── cpuid.c
├── cxx/
│   ├── Makefile.am
│   ├── dummy.cc
│   ├── isfuns.cc
│   ├── ismpf.cc
│   ├── ismpq.cc
│   ├── ismpz.cc
│   ├── ismpznw.cc
│   ├── osdoprnti.cc
│   ├── osfuns.cc
│   ├── osmpf.cc
│   ├── osmpq.cc
│   └── osmpz.cc
├── devel/
│   ├── configfsf.sub.diff
│   ├── gen-bases.c
│   ├── gen-fac_ui.c
│   ├── gen-fib.c
│   ├── gen-psqr.c
│   ├── regen
│   ├── setversion
│   └── yasm.diff
├── doc/
│   ├── Makefile.am
│   ├── devel/
│   │   ├── Configure.txt
│   │   ├── FILES.txt
│   │   ├── configuration
│   │   ├── gmp-h.txt
│   │   ├── gmp-impl-h.txt
│   │   ├── mpn_functions.txt
│   │   ├── projects.html
│   │   └── tasks.html
│   ├── fdl.texi
│   ├── isa_abi_headache
│   ├── mdate-sh
│   ├── mpir.texi
│   ├── texinfo.tex
│   └── version.texi
├── errno.c
├── extract-dbl.c
├── fft/
│   ├── Makefile.am
│   ├── adjust.c
│   ├── adjust_sqrt2.c
│   ├── butterfly_lshB.c
│   ├── butterfly_rshB.c
│   ├── combine_bits.c
│   ├── div_2expmod_2expp1.c
│   ├── fermat_to_mpz.c
│   ├── fft_mfa_trunc_sqrt2.c
│   ├── fft_mfa_trunc_sqrt2_inner.c
│   ├── fft_negacyclic.c
│   ├── fft_radix2.c
│   ├── fft_trunc.c
│   ├── fft_trunc_sqrt2.c
│   ├── ifft_mfa_trunc_sqrt2.c
│   ├── ifft_negacyclic.c
│   ├── ifft_radix2.c
│   ├── ifft_trunc.c
│   ├── ifft_trunc_sqrt2.c
│   ├── mul_2expmod_2expp1.c
│   ├── mul_fft_main.c
│   ├── mul_mfa_trunc_sqrt2.c
│   ├── mul_trunc_sqrt2.c
│   ├── mulmod_2expp1.c
│   ├── normmod_2expp1.c
│   ├── revbin.c
│   └── split_bits.c
├── gmp-impl.h
├── gpl-2.0.txt
├── invalid.c
├── lgpl-2.1.txt
├── longlong_post.h
├── longlong_pre.h
├── memory.c
├── mp_bpl.c
├── mp_clz_tab.c
├── mp_dv_tab.c
├── mp_get_fns.c
├── mp_minv_tab.c
├── mp_set_fns.c
├── mpf/
│   ├── Makefile.am
│   ├── abs.c
│   ├── add.c
│   ├── add_ui.c
│   ├── ceilfloor.c
│   ├── clear.c
│   ├── clears.c
│   ├── cmp.c
│   ├── cmp_d.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── cmp_z.c
│   ├── div.c
│   ├── div_2exp.c
│   ├── div_ui.c
│   ├── dump.c
│   ├── eq.c
│   ├── fits_s.h
│   ├── fits_si.c
│   ├── fits_sint.c
│   ├── fits_slong.c
│   ├── fits_sshort.c
│   ├── fits_u.h
│   ├── fits_ui.c
│   ├── fits_uint.c
│   ├── fits_ulong.c
│   ├── fits_ushort.c
│   ├── get_d.c
│   ├── get_d_2exp.c
│   ├── get_dfl_prec.c
│   ├── get_prc.c
│   ├── get_si.c
│   ├── get_str.c
│   ├── get_ui.c
│   ├── init.c
│   ├── init2.c
│   ├── inits.c
│   ├── inp_str.c
│   ├── int_p.c
│   ├── iset.c
│   ├── iset_d.c
│   ├── iset_si.c
│   ├── iset_str.c
│   ├── iset_ui.c
│   ├── mul.c
│   ├── mul_2exp.c
│   ├── mul_ui.c
│   ├── neg.c
│   ├── out_str.c
│   ├── pow_ui.c
│   ├── random2.c
│   ├── reldiff.c
│   ├── rrandomb.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_dfl_prec.c
│   ├── set_prc.c
│   ├── set_prc_raw.c
│   ├── set_q.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_ui.c
│   ├── set_z.c
│   ├── size.c
│   ├── sqrt.c
│   ├── sqrt_ui.c
│   ├── sub.c
│   ├── sub_ui.c
│   ├── swap.c
│   ├── trunc.c
│   ├── ui_div.c
│   ├── ui_sub.c
│   └── urandomb.c
├── mpir.net/
│   ├── build.vc/
│   │   └── check_config.bat
│   ├── build.vc11/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc12/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc14/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc15/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── mpir.net/
│   │   ├── AssemblyInfo.cpp
│   │   ├── Common.cpp
│   │   ├── Common.h
│   │   ├── ExpressionMacros.h
│   │   ├── HugeFloat.cpp
│   │   ├── HugeFloat.h
│   │   ├── HugeInt.cpp
│   │   ├── HugeInt.h
│   │   ├── HugeRational.cpp
│   │   ├── HugeRational.h
│   │   ├── Random.cpp
│   │   ├── Random.h
│   │   ├── RandomFloat.cpp
│   │   ├── ReadMe.txt
│   │   ├── Stdafx.cpp
│   │   ├── Stdafx.h
│   │   ├── app.rc
│   │   └── resource.h
│   └── mpir.net-tests/
│       ├── HugeFloatTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   ├── IO.cs
│       │   ├── Math.cs
│       │   └── Precision.cs
│       ├── HugeIntTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Bitwise.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   ├── IO.cs
│       │   ├── Math.cs
│       │   └── NumberTheoretic.cs
│       ├── HugeRationalTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   └── IO.cs
│       ├── IntegrationTests/
│       │   └── XmlCommentsTests.cs
│       ├── OtherTests/
│       │   ├── MpirSettings.cs
│       │   └── Random.cs
│       ├── Properties/
│       │   └── AssemblyInfo.cs
│       └── Utilities/
│           ├── Accessors.cs
│           └── Platform.cs
├── mpirxx.h
├── mpn/
│   ├── Makeasm.am
│   ├── Makefile.am
│   ├── README
│   ├── alpha/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── alpha-defs.m4
│   │   ├── cntlz.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── default.m4
│   │   ├── divexact_1.c
│   │   ├── divexact_by3c.asm
│   │   ├── ev5/
│   │   │   ├── add_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── lshift.asm
│   │   │   ├── rshift.asm
│   │   │   └── sub_n.asm
│   │   ├── ev6/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── slot.pl
│   │   │   ├── sqr_diagonal.asm
│   │   │   ├── sub_n.asm
│   │   │   └── submul_1.asm
│   │   ├── ev67/
│   │   │   ├── gcd_1.asm
│   │   │   ├── hamdist.asm
│   │   │   └── popcount.asm
│   │   ├── invert_limb.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_34lsub1.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── arm/
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── arm-defs.m4
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── invert_limb.asm
│   │   ├── longlong_inc.h
│   │   ├── mul_1.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── udiv.asm
│   ├── asm-defs.m4
│   ├── cpp-ccas
│   ├── generic/
│   │   ├── add.c
│   │   ├── add_1.c
│   │   ├── add_err1_n.c
│   │   ├── add_err2_n.c
│   │   ├── add_n.c
│   │   ├── addadd_n.c
│   │   ├── addmul_1.c
│   │   ├── addsub_n.c
│   │   ├── and_n.c
│   │   ├── andn_n.c
│   │   ├── bdivmod.c
│   │   ├── binvert.c
│   │   ├── cmp.c
│   │   ├── com_n.c
│   │   ├── comb_tables.c
│   │   ├── copyd.c
│   │   ├── copyi.c
│   │   ├── dc_bdiv_q.c
│   │   ├── dc_bdiv_q_n.c
│   │   ├── dc_bdiv_qr.c
│   │   ├── dc_bdiv_qr_n.c
│   │   ├── dc_div_q.c
│   │   ├── dc_div_qr.c
│   │   ├── dc_div_qr_n.c
│   │   ├── dc_divappr_q.c
│   │   ├── divexact.c
│   │   ├── divexact_1.c
│   │   ├── divexact_by3c.c
│   │   ├── divexact_byff.c
│   │   ├── divexact_byfobm1.c
│   │   ├── divisible_p.c
│   │   ├── divrem.c
│   │   ├── divrem_1.c
│   │   ├── divrem_2.c
│   │   ├── divrem_euclidean_qr_1.c
│   │   ├── divrem_euclidean_qr_2.c
│   │   ├── divrem_euclidean_r_1.c
│   │   ├── divrem_hensel_qr_1.c
│   │   ├── divrem_hensel_qr_1_1.c
│   │   ├── divrem_hensel_qr_1_2.c
│   │   ├── divrem_hensel_r_1.c
│   │   ├── divrem_hensel_rsh_qr_1.c
│   │   ├── dump.c
│   │   ├── fib2_ui.c
│   │   ├── fib_table.c
│   │   ├── gcd.c
│   │   ├── gcd_1.c
│   │   ├── gcd_subdiv_step.c
│   │   ├── gcdext.c
│   │   ├── gcdext_1.c
│   │   ├── gcdext_lehmer.c
│   │   ├── get_d.c
│   │   ├── get_str.c
│   │   ├── hamdist.c
│   │   ├── hgcd.c
│   │   ├── hgcd2.c
│   │   ├── hgcd2_jacobi.c
│   │   ├── hgcd_appr.c
│   │   ├── hgcd_jacobi.c
│   │   ├── hgcd_matrix.c
│   │   ├── hgcd_reduce.c
│   │   ├── hgcd_step.c
│   │   ├── inv_div_q.c
│   │   ├── inv_div_qr.c
│   │   ├── inv_div_qr_n.c
│   │   ├── inv_divappr_q.c
│   │   ├── inv_divappr_q_n.c
│   │   ├── invert.c
│   │   ├── ior_n.c
│   │   ├── iorn_n.c
│   │   ├── jacobi.c
│   │   ├── jacobi_2.c
│   │   ├── jacobi_base.c
│   │   ├── longlong_inc.h
│   │   ├── lshift.c
│   │   ├── matrix22_mul.c
│   │   ├── matrix22_mul1_inverse_vector.c
│   │   ├── mod_1.c
│   │   ├── mod_1_1.c
│   │   ├── mod_1_2.c
│   │   ├── mod_1_3.c
│   │   ├── mod_34lsub1.c
│   │   ├── modexact_1c_odd.c
│   │   ├── mp_bases.c
│   │   ├── mul.c
│   │   ├── mul_1.c
│   │   ├── mul_basecase.c
│   │   ├── mul_fft.c
│   │   ├── mul_n.c
│   │   ├── mulhigh_n.c
│   │   ├── mullow_basecase.c
│   │   ├── mullow_n.c
│   │   ├── mullow_n_basecase.c
│   │   ├── mulmid.c
│   │   ├── mulmid_basecase.c
│   │   ├── mulmid_n.c
│   │   ├── mulmod_2expm1.c
│   │   ├── mulmod_2expp1_basecase.c
│   │   ├── mulmod_bexpp1.c
│   │   ├── nand_n.c
│   │   ├── neg_n.c
│   │   ├── nior_n.c
│   │   ├── nsumdiff_n.c
│   │   ├── perfect_square_p.c
│   │   ├── popcount.c
│   │   ├── pow_1.c
│   │   ├── powlo.c
│   │   ├── powm.c
│   │   ├── preinv_divrem_1.c
│   │   ├── preinv_mod_1.c
│   │   ├── random.c
│   │   ├── random2.c
│   │   ├── randomb.c
│   │   ├── redc_1.c
│   │   ├── redc_2.c
│   │   ├── redc_n.c
│   │   ├── rootrem.c
│   │   ├── rootrem_basecase.c
│   │   ├── rrandom.c
│   │   ├── rsh_divrem_hensel_qr_1.c
│   │   ├── rsh_divrem_hensel_qr_1_1.c
│   │   ├── rsh_divrem_hensel_qr_1_2.c
│   │   ├── rshift.c
│   │   ├── sb_bdiv_q.c
│   │   ├── sb_bdiv_qr.c
│   │   ├── sb_div_q.c
│   │   ├── sb_div_qr.c
│   │   ├── sb_divappr_q.c
│   │   ├── scan0.c
│   │   ├── scan1.c
│   │   ├── set_str.c
│   │   ├── sizeinbase.c
│   │   ├── sqr_basecase.c
│   │   ├── sqrtrem.c
│   │   ├── sub.c
│   │   ├── sub_1.c
│   │   ├── sub_err1_n.c
│   │   ├── sub_err2_n.c
│   │   ├── sub_n.c
│   │   ├── subadd_n.c
│   │   ├── submul_1.c
│   │   ├── sumdiff_n.c
│   │   ├── tdiv_q.c
│   │   ├── tdiv_qr.c
│   │   ├── toom3_mul.c
│   │   ├── toom3_mul_n.c
│   │   ├── toom42_mulmid.c
│   │   ├── toom4_mul.c
│   │   ├── toom4_mul_n.c
│   │   ├── toom8_sqr_n.c
│   │   ├── toom8h_mul.c
│   │   ├── toom_couple_handling.c
│   │   ├── toom_eval_dgr3_pm1.c
│   │   ├── toom_eval_dgr3_pm2.c
│   │   ├── toom_eval_pm1.c
│   │   ├── toom_eval_pm2.c
│   │   ├── toom_eval_pm2exp.c
│   │   ├── toom_eval_pm2rexp.c
│   │   ├── toom_interpolate_16pts.c
│   │   ├── udiv_w_sdiv.c
│   │   ├── urandomb.c
│   │   ├── urandomm.c
│   │   ├── xnor_n.c
│   │   ├── xor_n.c
│   │   ├── zero.c
│   │   └── zero_p.c
│   ├── ia64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── addmul_2.asm
│   │   ├── addmul_4.asm
│   │   ├── and_n.asm
│   │   ├── andn_n.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── divexact_1.asm
│   │   ├── divrem_2.asm
│   │   ├── divrem_euclidean_qr_1.asm
│   │   ├── gcd_1.asm
│   │   ├── hamdist.asm
│   │   ├── ia64-defs.m4
│   │   ├── invert_limb.asm
│   │   ├── ior_n.asm
│   │   ├── iorn_n.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── mul_2.asm
│   │   ├── nand_n.asm
│   │   ├── nior_n.asm
│   │   ├── popcount.asm
│   │   ├── rsh1add_n.asm
│   │   ├── rsh1sub_n.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.c
│   │   ├── xnor_n.asm
│   │   └── xor_n.asm
│   ├── m4-ccas
│   ├── mips32/
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mips-defs.m4
│   │   ├── mips.m4
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── mips64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── divrem_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── powerpc32/
│   │   ├── 750/
│   │   │   ├── com_n.asm
│   │   │   ├── lshift.asm
│   │   │   └── rshift.asm
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── aix.m4
│   │   ├── darwin.m4
│   │   ├── divexact_by3c.asm
│   │   ├── eabi.m4
│   │   ├── elf.m4
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_34lsub1.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── powerpc-defs.m4
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.asm
│   │   ├── umul.asm
│   │   └── vmx/
│   │       ├── and_n.asm
│   │       ├── andn_n.asm
│   │       ├── copyd.asm
│   │       ├── copyi.asm
│   │       ├── ior_n.asm
│   │       ├── iorn_n.asm
│   │       ├── nand_n.asm
│   │       ├── nior_n.asm
│   │       ├── popcount.asm
│   │       ├── xnor_n.asm
│   │       └── xor_n.asm
│   ├── powerpc64/
│   │   ├── README
│   │   ├── aix.m4
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── darwin.m4
│   │   ├── elf.m4
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mode32/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── sub_n.asm
│   │   │   └── submul_1.asm
│   │   ├── mode64/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── submul_1.asm
│   │   │   └── umul.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── umul.asm
│   │   └── vmx/
│   │       └── popcount.asm
│   ├── sparc32/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sparc-defs.m4
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   ├── udiv.asm
│   │   ├── udiv_nfp.asm
│   │   ├── umul.asm
│   │   └── v9/
│   │       ├── README
│   │       ├── add_n.asm.broken
│   │       ├── addmul_1.asm
│   │       ├── mul_1.asm
│   │       ├── sqr_diagonal.asm
│   │       ├── sub_n.asm.broken
│   │       ├── submul_1.asm
│   │       └── udiv.asm
│   ├── sparc64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── addmul_2.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── divexact_1.c
│   │   ├── divrem_1.c
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_1.c
│   │   ├── modexact_1c_odd.c
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sparc64.h
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   └── submul_1.asm
│   ├── x86_64/
│   │   ├── add_err1_n.asm
│   │   ├── add_err2_n.asm
│   │   ├── atom/
│   │   │   ├── add_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.as
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rshift.as
│   │   │   ├── sqr_basecase.as
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── bobcat/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.as
│   │   │   ├── addsub_n.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── sqr_basecase.as
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.as
│   │   │   ├── sumdiff_n.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.asm
│   │   ├── bulldozer/
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mul_basecase.asm
│   │   │   └── rshift.asm
│   │   ├── core2/
│   │   │   ├── README
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh_n.as
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── penryn/
│   │   │   │   ├── mod_1_1.asm
│   │   │   │   └── sumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.as
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── divexact_by3c.as
│   │   ├── divexact_byfobm1.as
│   │   ├── divrem_2.as
│   │   ├── divrem_euclidean_qr_1.as
│   │   ├── divrem_euclidean_qr_2.as
│   │   ├── fat/
│   │   │   ├── add_err1_n.c
│   │   │   ├── add_err2_n.c
│   │   │   ├── add_n.c
│   │   │   ├── addmul_1.c
│   │   │   ├── copyd.c
│   │   │   ├── copyi.c
│   │   │   ├── divexact_1.c
│   │   │   ├── divexact_by3c.c
│   │   │   ├── divexact_byfobm1.c
│   │   │   ├── divrem_1.c
│   │   │   ├── divrem_2.c
│   │   │   ├── divrem_euclidean_qr_1.c
│   │   │   ├── divrem_euclidean_qr_2.c
│   │   │   ├── fat.c
│   │   │   ├── fat_entry.asm
│   │   │   ├── gcd_1.c
│   │   │   ├── lshift.c
│   │   │   ├── mod_1.c
│   │   │   ├── mod_34lsub1.c
│   │   │   ├── modexact_1c_odd.c
│   │   │   ├── mul_1.c
│   │   │   ├── mul_basecase.c
│   │   │   ├── mulmid_basecase.c
│   │   │   ├── preinv_divrem_1.c
│   │   │   ├── preinv_mod_1.c
│   │   │   ├── redc_1.c
│   │   │   ├── rshift.c
│   │   │   ├── sqr_basecase.c
│   │   │   ├── sub_err1_n.c
│   │   │   ├── sub_err2_n.c
│   │   │   ├── sub_n.c
│   │   │   ├── submul_1.c
│   │   │   └── sumdiff_n.c
│   │   ├── haswell/
│   │   │   ├── add_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── avx/
│   │   │   │   ├── addmul_1.as
│   │   │   │   ├── com_n.as
│   │   │   │   ├── copyd.as
│   │   │   │   ├── copyi.as
│   │   │   │   ├── lshift.as
│   │   │   │   ├── lshift1.as
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.as
│   │   │   │   ├── rshift.as
│   │   │   │   ├── rshift1.as
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   └── submul_1.as
│   │   │   ├── hgcd2.c
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.as
│   │   │   ├── nsumdiff_n.as
│   │   │   ├── sub_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   └── sumdiff_n.as
│   │   ├── k8/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── double.asm
│   │   │   ├── half.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.as
│   │   │   ├── k10/
│   │   │   │   ├── hamdist.asm
│   │   │   │   ├── karaadd.asm
│   │   │   │   ├── karasub.asm
│   │   │   │   ├── lshift.as
│   │   │   │   ├── popcount.asm
│   │   │   │   └── rshift.as
│   │   │   ├── k8only/
│   │   │   │   ├── lshift2.asm
│   │   │   │   ├── lshift3.asm
│   │   │   │   ├── lshift4.asm
│   │   │   │   ├── lshift5.asm
│   │   │   │   ├── lshift6.asm
│   │   │   │   └── rshift2.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.as
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.asm
│   │   ├── longlong_inc.h
│   │   ├── modexact_1c_odd.as
│   │   ├── mullow_n_basecase.asm
│   │   ├── mulmid_basecase.asm
│   │   ├── nehalem/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh_n.as
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.as
│   │   │   ├── submul_1.as
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── netburst/
│   │   │   ├── add_n.as
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── mul_1.as
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── redc_1.as
│   │   │   ├── rshift.as
│   │   │   ├── sub_n.as
│   │   │   ├── submul_1.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── sandybridge/
│   │   │   ├── add_n.as
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.as
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── skylake/
│   │   │   ├── add_n.as
│   │   │   ├── avx/
│   │   │   │   ├── add_err1_n.as
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── mul_1.as
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   └── sub_err1_n.as
│   │   │   └── sub_n.as
│   │   ├── sqr_basecase.asm
│   │   ├── sub_err1_n.asm
│   │   ├── sub_err2_n.asm
│   │   └── x86_64-defs.m4
│   ├── x86_64w/
│   │   ├── add_err1_n.asm
│   │   ├── add_err2_n.asm
│   │   ├── addmul_2.asm
│   │   ├── atom/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   └── xnor_n.asm
│   │   ├── bobcat/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── broadwell/
│   │   │   └── avx/
│   │   │       ├── addsub_n.asm
│   │   │       ├── and_n.asm
│   │   │       ├── andn_n.asm
│   │   │       ├── ior_n.asm
│   │   │       ├── iorn_n.asm
│   │   │       ├── nand_n.asm
│   │   │       ├── nior_n.asm
│   │   │       ├── subadd_n.asm
│   │   │       ├── xnor_n.asm
│   │   │       └── xor_n.asm
│   │   ├── bulldozer/
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mul_basecase.asm
│   │   │   └── rshift.asm
│   │   ├── core2/
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── penryn/
│   │   │   │   ├── mod_1_1.asm
│   │   │   │   └── sumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── udiv_qrnnd.asm
│   │   │   ├── umul_ppmm.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── divexact_1.asm
│   │   ├── divexact_by3c.asm
│   │   ├── divexact_byfobm1.asm
│   │   ├── divrem_2.asm
│   │   ├── divrem_euclidean_qr_1.asm
│   │   ├── divrem_euclidean_qr_2.asm
│   │   ├── fat/
│   │   │   ├── add_n.c
│   │   │   ├── addmul_1.c
│   │   │   ├── copyd.c
│   │   │   ├── copyi.c
│   │   │   ├── divexact_1.c
│   │   │   ├── divexact_by3c.c
│   │   │   ├── divexact_byfobm1.c
│   │   │   ├── divrem_1.c
│   │   │   ├── divrem_2.c
│   │   │   ├── divrem_euclidean_qr_1.c
│   │   │   ├── divrem_euclidean_qr_2.c
│   │   │   ├── fat.c
│   │   │   ├── fat_entry.asm
│   │   │   ├── gcd_1.c
│   │   │   ├── lshift.c
│   │   │   ├── mod_1.c
│   │   │   ├── mod_34lsub1.c
│   │   │   ├── modexact_1c_odd.c
│   │   │   ├── mul_1.c
│   │   │   ├── mul_basecase.c
│   │   │   ├── preinv_divrem_1.c
│   │   │   ├── preinv_mod_1.c
│   │   │   ├── redc_1.c
│   │   │   ├── rshift.c
│   │   │   ├── sqr_basecase.c
│   │   │   ├── sub_n.c
│   │   │   ├── submul_1.c
│   │   │   └── sumdiff_n.c
│   │   ├── haswell/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── avx/
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── addsub_n.asm
│   │   │   │   ├── and_n.asm
│   │   │   │   ├── andn_n.asm
│   │   │   │   ├── com_n.asm
│   │   │   │   ├── copyd.asm
│   │   │   │   ├── copyi.asm
│   │   │   │   ├── ior_n.asm
│   │   │   │   ├── iorn_n.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── lshift1.asm
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── nand_n.asm
│   │   │   │   ├── nior_n.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   ├── rshift1.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   ├── subadd_n.asm
│   │   │   │   ├── submul_1.asm
│   │   │   │   ├── xnor_n.asm
│   │   │   │   └── xor_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── nsumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── k8/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── double.asm
│   │   │   ├── half.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── k10/
│   │   │   │   ├── hamdist.asm
│   │   │   │   ├── karaadd.asm
│   │   │   │   ├── karasub.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── popcount.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   └── store.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshift2.asm
│   │   │   ├── lshift3.asm
│   │   │   ├── lshift4.asm
│   │   │   ├── lshift5.asm
│   │   │   ├── lshift6.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── udiv_qrnnd.asm
│   │   │   ├── umul_ppmm.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── longlong_inc.h
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_2.asm
│   │   ├── mullow_n_basecase.asm
│   │   ├── mulmid_basecase.asm
│   │   ├── nehalem/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── netburst/
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── sandybridge/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── skylake/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── avx/
│   │   │   │   ├── add_err1_n.asm
│   │   │   │   ├── add_n.asm
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── addsub_n.asm
│   │   │   │   ├── and_n.asm
│   │   │   │   ├── andn_n.asm
│   │   │   │   ├── ior_n.asm
│   │   │   │   ├── iorn_n.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── lshift1.asm
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── nand_n.asm
│   │   │   │   ├── nior_n.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   ├── rshift1.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   ├── sub_err1_n.asm
│   │   │   │   ├── sub_n.asm
│   │   │   │   ├── subadd_n.asm
│   │   │   │   ├── xnor_n.asm
│   │   │   │   └── xor_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── sqr_basecase.asm
│   │   ├── sub_err1_n.asm
│   │   ├── sub_err2_n.asm
│   │   ├── udiv_qrnnd.asm
│   │   └── umul_ppmm.asm
│   └── x86w/
│       ├── add_n.asm
│       ├── addmul_1.asm
│       ├── copyd.asm
│       ├── copyi.asm
│       ├── divexact_1.asm
│       ├── divexact_by3c.asm
│       ├── divrem_1.asm
│       ├── longlong_inc.h
│       ├── lshift.asm
│       ├── mod_1.asm
│       ├── mod_34lsub1.asm
│       ├── mul_1.asm
│       ├── mul_basecase.asm
│       ├── p3/
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── divrem_1.asm
│       │   ├── hamdist.asm
│       │   ├── lshift.asm
│       │   ├── mod_1.asm
│       │   ├── p3mmx/
│       │   │   ├── hamdist.asm
│       │   │   └── popcount.asm
│       │   ├── popcount.asm
│       │   └── submul_1.asm
│       ├── p4/
│       │   ├── add_n.asm
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── copyi.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── hamdist.asm
│       │   ├── lshift.asm
│       │   ├── mmx/
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   ├── mod_34lsub1.asm
│       │   ├── modexact_1c_odd.asm
│       │   ├── mul_1.asm
│       │   ├── mul_basecase.asm
│       │   ├── popcount.asm
│       │   ├── rshift.asm
│       │   ├── sqr_basecase.asm
│       │   ├── sse2/
│       │   │   ├── add_n.asm
│       │   │   ├── addmul_1.asm
│       │   │   ├── divexact_1.asm
│       │   │   ├── divexact_by3c.asm
│       │   │   ├── mod_34lsub1.asm
│       │   │   ├── modexact_1c_odd.asm
│       │   │   ├── mul_1.asm
│       │   │   ├── mul_basecase.asm
│       │   │   ├── sqr_basecase.asm
│       │   │   ├── sub_n.asm
│       │   │   └── submul_1.asm
│       │   ├── sub_n.asm
│       │   └── submul_1.asm
│       ├── p6/
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── mmx/
│       │   │   ├── divrem_1.asm
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   ├── mod_1.asm
│       │   ├── modexact_1c_odd.asm
│       │   ├── p3mmx/
│       │   │   ├── hamdist.asm
│       │   │   └── popcount.asm
│       │   ├── sqr_basecase.asm
│       │   └── submul_1.asm
│       ├── pentium4/
│       │   ├── copyd.asm
│       │   ├── copyi.asm
│       │   ├── mmx/
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   └── sse2/
│       │       ├── add_n.asm
│       │       ├── addmul_1.asm
│       │       ├── divexact_1.asm
│       │       ├── divexact_by3c.asm
│       │       ├── mod_34lsub1.asm
│       │       ├── modexact_1c_odd.asm
│       │       ├── mul_1.asm
│       │       ├── mul_basecase.asm
│       │       ├── sqr_basecase.asm
│       │       ├── sub_n.asm
│       │       └── submul_1.asm
│       ├── rshift.asm
│       ├── sub_n.asm
│       ├── submul_1.asm
│       ├── udiv_qrnnd.asm
│       ├── umul_ppmm.asm
│       └── x86i.inc
├── mpq/
│   ├── Makefile.am
│   ├── abs.c
│   ├── aors.c
│   ├── canonicalize.c
│   ├── clear.c
│   ├── clears.c
│   ├── cmp.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── div.c
│   ├── equal.c
│   ├── get_d.c
│   ├── get_den.c
│   ├── get_num.c
│   ├── get_str.c
│   ├── init.c
│   ├── inits.c
│   ├── inp_str.c
│   ├── inv.c
│   ├── md_2exp.c
│   ├── mul.c
│   ├── neg.c
│   ├── out_str.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_den.c
│   ├── set_f.c
│   ├── set_num.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_ui.c
│   ├── set_z.c
│   └── swap.c
├── mpz/
│   ├── 2fac_ui.c
│   ├── Makefile.am
│   ├── abs.c
│   ├── add.c
│   ├── add_ui.c
│   ├── and.c
│   ├── aors.h
│   ├── aors_ui.h
│   ├── aorsmul.c
│   ├── aorsmul_i.c
│   ├── array_init.c
│   ├── bin_ui.c
│   ├── bin_uiui.c
│   ├── cdiv_q.c
│   ├── cdiv_q_ui.c
│   ├── cdiv_qr.c
│   ├── cdiv_qr_ui.c
│   ├── cdiv_r.c
│   ├── cdiv_r_ui.c
│   ├── cdiv_ui.c
│   ├── cfdiv_q_2exp.c
│   ├── cfdiv_r_2exp.c
│   ├── clear.c
│   ├── clears.c
│   ├── clrbit.c
│   ├── cmp.c
│   ├── cmp_d.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── cmpabs.c
│   ├── cmpabs_d.c
│   ├── cmpabs_ui.c
│   ├── com.c
│   ├── combit.c
│   ├── cong.c
│   ├── cong_2exp.c
│   ├── cong_ui.c
│   ├── dive_ui.c
│   ├── divegcd.c
│   ├── divexact.c
│   ├── divis.c
│   ├── divis_2exp.c
│   ├── divis_ui.c
│   ├── dump.c
│   ├── export.c
│   ├── fac_ui.c
│   ├── fdiv_q.c
│   ├── fdiv_q_ui.c
│   ├── fdiv_qr.c
│   ├── fdiv_qr_ui.c
│   ├── fdiv_r.c
│   ├── fdiv_r_ui.c
│   ├── fdiv_ui.c
│   ├── fib2_ui.c
│   ├── fib_ui.c
│   ├── fits_s.h
│   ├── fits_si.c
│   ├── fits_sint.c
│   ├── fits_slong.c
│   ├── fits_sshort.c
│   ├── fits_ui.c
│   ├── fits_uint.c
│   ├── fits_ulong.c
│   ├── fits_ushort.c
│   ├── gcd.c
│   ├── gcd_ui.c
│   ├── gcdext.c
│   ├── get_d.c
│   ├── get_d_2exp.c
│   ├── get_si.c
│   ├── get_str.c
│   ├── get_sx.c
│   ├── get_ui.c
│   ├── get_ux.c
│   ├── getlimbn.c
│   ├── hamdist.c
│   ├── import.c
│   ├── init.c
│   ├── init2.c
│   ├── inits.c
│   ├── inp_raw.c
│   ├── inp_str.c
│   ├── invert.c
│   ├── ior.c
│   ├── iset.c
│   ├── iset_d.c
│   ├── iset_si.c
│   ├── iset_str.c
│   ├── iset_sx.c
│   ├── iset_ui.c
│   ├── iset_ux.c
│   ├── jacobi.c
│   ├── kronsz.c
│   ├── kronuz.c
│   ├── kronzs.c
│   ├── kronzu.c
│   ├── lcm.c
│   ├── lcm_ui.c
│   ├── likely_prime_p.c
│   ├── limbs_finish.c
│   ├── limbs_modify.c
│   ├── limbs_read.c
│   ├── limbs_write.c
│   ├── lucnum2_ui.c
│   ├── lucnum_ui.c
│   ├── mfac_uiui.c
│   ├── miller_rabin.c
│   ├── millerrabin.c
│   ├── mod.c
│   ├── mul.c
│   ├── mul_2exp.c
│   ├── mul_i.h
│   ├── mul_si.c
│   ├── mul_ui.c
│   ├── n_pow_ui.c
│   ├── neg.c
│   ├── next_prime_candidate.c
│   ├── nextprime.c
│   ├── nthroot.c
│   ├── oddfac_1.c
│   ├── out_raw.c
│   ├── out_str.c
│   ├── perfpow.c
│   ├── perfsqr.c
│   ├── popcount.c
│   ├── pow_ui.c
│   ├── powm.c
│   ├── powm_ui.c
│   ├── pprime_p.c
│   ├── primorial_ui.c
│   ├── probable_prime_p.c
│   ├── prodlimbs.c
│   ├── realloc.c
│   ├── realloc2.c
│   ├── remove.c
│   ├── roinit_n.c
│   ├── root.c
│   ├── rootrem.c
│   ├── rrandomb.c
│   ├── scan0.c
│   ├── scan1.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_f.c
│   ├── set_q.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_sx.c
│   ├── set_ui.c
│   ├── set_ux.c
│   ├── setbit.c
│   ├── size.c
│   ├── sizeinbase.c
│   ├── sqrt.c
│   ├── sqrtrem.c
│   ├── sub.c
│   ├── sub_ui.c
│   ├── swap.c
│   ├── tdiv_q.c
│   ├── tdiv_q_2exp.c
│   ├── tdiv_q_ui.c
│   ├── tdiv_qr.c
│   ├── tdiv_qr_ui.c
│   ├── tdiv_r.c
│   ├── tdiv_r_2exp.c
│   ├── tdiv_r_ui.c
│   ├── tdiv_ui.c
│   ├── trial_division.c
│   ├── tstbit.c
│   ├── ui_pow_ui.c
│   ├── ui_sub.c
│   ├── urandomb.c
│   ├── urandomm.c
│   └── xor.c
├── nextprime.c
├── primesieve.c
├── printf/
│   ├── Makefile.am
│   ├── asprintf.c
│   ├── asprntffuns.c
│   ├── doprnt.c
│   ├── doprntf.c
│   ├── doprnti.c
│   ├── fprintf.c
│   ├── obprintf.c
│   ├── obprntffuns.c
│   ├── obvprintf.c
│   ├── printf.c
│   ├── printffuns.c
│   ├── repl-vsnprintf.c
│   ├── snprintf.c
│   ├── snprntffuns.c
│   ├── sprintf.c
│   ├── sprintffuns.c
│   ├── vasprintf.c
│   ├── vfprintf.c
│   ├── vprintf.c
│   ├── vsnprintf.c
│   └── vsprintf.c
├── randbui.c
├── randclr.c
├── randdef.c
├── randiset.c
├── randlc2s.c
├── randlc2x.c
├── randmt.c
├── randmt.h
├── randmts.c
├── randmui.c
├── rands.c
├── randsd.c
├── randsdui.c
├── scanf/
│   ├── Makefile.am
│   ├── doscan.c
│   ├── fscanf.c
│   ├── fscanffuns.c
│   ├── scanf.c
│   ├── sscanf.c
│   ├── sscanffuns.c
│   ├── vfscanf.c
│   ├── vscanf.c
│   └── vsscanf.c
├── strip_fPIC.sh
├── tal-debug.c
├── tal-notreent.c
├── tal-reent.c
├── tests/
│   ├── Makefile.am
│   ├── cxx/
│   │   ├── Makefile.am
│   │   ├── clocale.c
│   │   ├── t-assign.cc
│   │   ├── t-binary.cc
│   │   ├── t-cast.cc
│   │   ├── t-constr.cc
│   │   ├── t-headers.cc
│   │   ├── t-istream.cc
│   │   ├── t-locale.cc
│   │   ├── t-misc.cc
│   │   ├── t-ops.cc
│   │   ├── t-ostream.cc
│   │   ├── t-prec.cc
│   │   ├── t-rand.cc
│   │   ├── t-ternary.cc
│   │   └── t-unary.cc
│   ├── devel/
│   │   ├── Makefile.am
│   │   ├── README
│   │   ├── addmul_N.c
│   │   ├── anymul_1.c
│   │   ├── aors_n.c
│   │   ├── copy.c
│   │   ├── divmod_1.c
│   │   ├── logops_n.c
│   │   ├── mul_N.c
│   │   ├── shift.c
│   │   └── try.c
│   ├── fft/
│   │   ├── Makefile.am
│   │   ├── t-adjust.c
│   │   ├── t-adjust_sqrt2.c
│   │   ├── t-butterfly.c
│   │   ├── t-butterfly_lshB.c
│   │   ├── t-butterfly_rshB.c
│   │   ├── t-butterfly_sqrt2.c
│   │   ├── t-butterfly_twiddle.c
│   │   ├── t-div_2expmod_2expp1.c
│   │   ├── t-fft_ifft_mfa_trunc_sqrt2.c
│   │   ├── t-fft_ifft_negacyclic.c
│   │   ├── t-fft_ifft_radix2.c
│   │   ├── t-fft_ifft_trunc.c
│   │   ├── t-fft_ifft_trunc_sqrt2.c
│   │   ├── t-mul_2expmod_2expp1.c
│   │   ├── t-mul_fft_main.c
│   │   ├── t-mul_mfa_trunc_sqrt2.c
│   │   ├── t-mul_trunc_sqrt2.c
│   │   ├── t-mulmod_2expp1.c
│   │   ├── t-normmod_2expp1.c
│   │   └── t-split_combine_bits.c
│   ├── memory.c
│   ├── misc/
│   │   ├── Makefile.am
│   │   ├── t-locale.c
│   │   ├── t-printf.c
│   │   └── t-scanf.c
│   ├── misc.c
│   ├── mpf/
│   │   ├── Makefile.am
│   │   ├── reuse.c
│   │   ├── t-add.c
│   │   ├── t-cmp_d.c
│   │   ├── t-cmp_si.c
│   │   ├── t-conv.c
│   │   ├── t-div.c
│   │   ├── t-dm2exp.c
│   │   ├── t-eq.c
│   │   ├── t-fits.c
│   │   ├── t-get_d.c
│   │   ├── t-get_d_2exp.c
│   │   ├── t-get_si.c
│   │   ├── t-get_ui.c
│   │   ├── t-gsprec.c
│   │   ├── t-inp_str.c
│   │   ├── t-int_p.c
│   │   ├── t-mul_ui.c
│   │   ├── t-muldiv.c
│   │   ├── t-set.c
│   │   ├── t-set_q.c
│   │   ├── t-set_si.c
│   │   ├── t-set_ui.c
│   │   ├── t-sqrt.c
│   │   ├── t-sqrt_ui.c
│   │   ├── t-sub.c
│   │   ├── t-trunc.c
│   │   └── t-ui_div.c
│   ├── mpn/
│   │   ├── Makefile.am
│   │   ├── t-addadd_n.c
│   │   ├── t-addsub_n.c
│   │   ├── t-aors_1.c
│   │   ├── t-asmtype.c
│   │   ├── t-dc_bdiv_q.c
│   │   ├── t-dc_bdiv_q_n.c
│   │   ├── t-dc_bdiv_qr.c
│   │   ├── t-dc_bdiv_qr_n.c
│   │   ├── t-dc_div_q.c
│   │   ├── t-dc_div_qr.c
│   │   ├── t-dc_div_qr_n.c
│   │   ├── t-dc_divappr_q.c
│   │   ├── t-divebyff.c
│   │   ├── t-divebyfobm1.c
│   │   ├── t-divrem_1.c
│   │   ├── t-fat.c
│   │   ├── t-gcdext.c
│   │   ├── t-get_d.c
│   │   ├── t-hgcd.c
│   │   ├── t-instrument.c
│   │   ├── t-inv_div_q.c
│   │   ├── t-inv_div_qr.c
│   │   ├── t-inv_div_qr_n.c
│   │   ├── t-inv_divappr_q.c
│   │   ├── t-inv_divappr_q_n.c
│   │   ├── t-invert.c
│   │   ├── t-iord_u.c
│   │   ├── t-logic.c
│   │   ├── t-lorrshift1.c
│   │   ├── t-matrix22.c
│   │   ├── t-mp_bases.c
│   │   ├── t-mullow_basecase.c
│   │   ├── t-mullowhigh.c
│   │   ├── t-mulmid.c
│   │   ├── t-mulmod_2expm1.c
│   │   ├── t-mulmod_2expp1.c
│   │   ├── t-neg.c
│   │   ├── t-perfsqr.c
│   │   ├── t-redc_1.c
│   │   ├── t-sb_bdiv_q.c
│   │   ├── t-sb_bdiv_qr.c
│   │   ├── t-sb_div_q.c
│   │   ├── t-sb_div_qr.c
│   │   ├── t-sb_divappr_q.c
│   │   ├── t-scan.c
│   │   ├── t-sizeinbase.c
│   │   ├── t-subadd_n.c
│   │   ├── t-tdiv_q.c
│   │   └── t-tdiv_qr.c
│   ├── mpq/
│   │   ├── Makefile.am
│   │   ├── t-aors.c
│   │   ├── t-cmp.c
│   │   ├── t-cmp_si.c
│   │   ├── t-cmp_ui.c
│   │   ├── t-cmp_z.c
│   │   ├── t-equal.c
│   │   ├── t-get_d.c
│   │   ├── t-get_str.c
│   │   ├── t-inp_str.c
│   │   ├── t-md_2exp.c
│   │   ├── t-set_f.c
│   │   └── t-set_str.c
│   ├── mpz/
│   │   ├── Makefile.am
│   │   ├── bit.c
│   │   ├── convert.c
│   │   ├── dive.c
│   │   ├── dive_ui.c
│   │   ├── io.c
│   │   ├── logic.c
│   │   ├── reuse.c
│   │   ├── t-addsub.c
│   │   ├── t-aorsmul.c
│   │   ├── t-bin.c
│   │   ├── t-cdiv_ui.c
│   │   ├── t-cmp.c
│   │   ├── t-cmp_d.c
│   │   ├── t-cmp_si.c
│   │   ├── t-cong.c
│   │   ├── t-cong_2exp.c
│   │   ├── t-div_2exp.c
│   │   ├── t-divis.c
│   │   ├── t-divis_2exp.c
│   │   ├── t-export.c
│   │   ├── t-fac_ui.c
│   │   ├── t-fdiv.c
│   │   ├── t-fdiv_ui.c
│   │   ├── t-fib_ui.c
│   │   ├── t-fits.c
│   │   ├── t-gcd.c
│   │   ├── t-gcd_ui.c
│   │   ├── t-get_d.c
│   │   ├── t-get_d_2exp.c
│   │   ├── t-get_si.c
│   │   ├── t-get_sx.c
│   │   ├── t-get_ux.c
│   │   ├── t-hamdist.c
│   │   ├── t-import.c
│   │   ├── t-inp_str.c
│   │   ├── t-io_raw.c
│   │   ├── t-jac.c
│   │   ├── t-lcm.c
│   │   ├── t-likely_prime_p.c
│   │   ├── t-limbs.c
│   │   ├── t-lucnum_ui.c
│   │   ├── t-mfac_uiui.c
│   │   ├── t-mul.c
│   │   ├── t-mul_i.c
│   │   ├── t-next_prime_candidate.c
│   │   ├── t-oddeven.c
│   │   ├── t-perfpow.c
│   │   ├── t-perfsqr.c
│   │   ├── t-popcount.c
│   │   ├── t-pow.c
│   │   ├── t-powm.c
│   │   ├── t-powm_ui.c
│   │   ├── t-pprime_p.c
│   │   ├── t-primorial_ui.c
│   │   ├── t-root.c
│   │   ├── t-scan.c
│   │   ├── t-set_d.c
│   │   ├── t-set_f.c
│   │   ├── t-set_si.c
│   │   ├── t-set_str.c
│   │   ├── t-set_sx.c
│   │   ├── t-set_ux.c
│   │   ├── t-sizeinbase.c
│   │   ├── t-sqrtrem.c
│   │   ├── t-tdiv.c
│   │   ├── t-tdiv_ui.c
│   │   └── t-trial_division.c
│   ├── rand/
│   │   ├── Makefile.am
│   │   ├── findlc.c
│   │   ├── gen.c
│   │   ├── gmpstat.h
│   │   ├── spect.c
│   │   ├── stat.c
│   │   ├── statlib.c
│   │   ├── t-iset.c
│   │   ├── t-lc2exp.c
│   │   ├── t-mt.c
│   │   ├── t-rand.c
│   │   ├── t-urbui.c
│   │   ├── t-urmui.c
│   │   ├── t-urndmm.c
│   │   └── zdiv_round.c
│   ├── refmpf.c
│   ├── refmpn.c
│   ├── refmpq.c
│   ├── refmpz.c
│   ├── spinner.c
│   ├── t-bswap.c
│   ├── t-constants.c
│   ├── t-count_zeros.c
│   ├── t-gmpmax.c
│   ├── t-hightomask.c
│   ├── t-modlinv.c
│   ├── t-parity.c
│   ├── t-popc.c
│   ├── t-sub.c
│   ├── tests.h
│   ├── trace.c
│   ├── x86_64call.as
│   ├── x86_64check.c
│   ├── x86call.asm
│   └── x86check.c
├── tune/
│   ├── Makefile.am
│   ├── README
│   ├── aligntest
│   ├── alpha.asm
│   ├── benchmpn
│   ├── common.c
│   ├── divrem1div.c
│   ├── divrem1inv.c
│   ├── divrem2div.c
│   ├── divrem2inv.c
│   ├── fac_ui_large.c
│   ├── fac_ui_small.c
│   ├── freq.c
│   ├── gcdext_double.c
│   ├── gcdext_single.c
│   ├── gcdextod.c
│   ├── gcdextos.c
│   ├── hgcd_appr_lehmer.c
│   ├── hgcd_lehmer.c
│   ├── hgcd_reduce_1.c
│   ├── hgcd_reduce_2.c
│   ├── hppa.asm
│   ├── hppa2.asm
│   ├── hppa2w.asm
│   ├── ia64.asm
│   ├── jacbase1.c
│   ├── jacbase2.c
│   ├── jacbase3.c
│   ├── jacbase4.c
│   ├── many.pl
│   ├── mod_1_div.c
│   ├── mod_1_inv.c
│   ├── modlinv.c
│   ├── noop.c
│   ├── pentium.asm
│   ├── powerpc.asm
│   ├── powerpc64.asm
│   ├── powm_mod.c
│   ├── powm_redc.c
│   ├── preinv_divrem_1.c
│   ├── set_strb.c
│   ├── set_strp.c
│   ├── set_strs.c
│   ├── sparcv9.asm
│   ├── speed-ext.c
│   ├── speed.c
│   ├── speed.h
│   ├── time.c
│   ├── tuneup.c
│   └── x86_64.as
├── version.c
├── yasm_mac.inc.fat
├── yasm_mac.inc.nofat
├── yasm_macwin.inc.fat
├── yasm_macwin.inc.nofat
└── ylwrap

================================================
FILE CONTENTS
================================================

================================================
FILE: .appveyor_msys_build.sh
================================================
export PATH=/c/msys64/mingw$ABI/bin:/c/projects/mpir/bin/:$PATH
cd /c/projects/mpir
echo && echo build: ./autogen.sh
./autogen.sh
echo && echo build: ./configure ABI=$ABI $LIB
./configure ABI=$ABI $LIB
echo && echo build: make
make
# should work but falsely requires texlive ?!?
#echo && echo build: DISTCHECK_CONFIGURE_FLAGS="ABI=$ABI $LIB" make distcheck
#DISTCHECK_CONFIGURE_FLAGS="ABI=$ABI $LIB" make distcheck
echo && echo build: make check
make check && make -C tests testsuite-all.log
echo && echo build: make dist
make dist


================================================
FILE: .gdbinit
================================================
# Copyright 1999 Free Software Foundation, Inc.
#
# This file is part of the GNU MP Library.
#
# The GNU MP Library is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at your
# option) any later version.
#
# The GNU MP Library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.


define pz
set __gmpz_dump ($)
end

define pq
set __gmpz_dump ($->_mp_num)
echo /
set __gmpz_dump ($->_mp_den)
end

define pf
set __gmpf_dump ($)
end



================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp
*.sln    merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc	 diff=astextplain
*.DOC	 diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot  diff=astextplain
*.DOT  diff=astextplain
*.pdf  diff=astextplain
*.PDF	 diff=astextplain
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain


================================================
FILE: .gitignore
================================================
#################
## Project files
#################

/build.vc/output_params.bat
/build.vc*/test-config.props


#################
## Eclipse
#################

*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath


#################
## Visual Studio
#################

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ww]in32/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json

#*_i.c
#*_p.c
#*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Typescript v1 declaration files
typings/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs



############
## Windows
############

# Windows image file caches
Thumbs.db

# Folder config file
Desktop.ini


#############
## Python
#############

*.py[co]

# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg

# Installer logs
pip-log.txt

# Unit test / coverage reports
.coverage
.tox

#Translations
*.mo

#Mr Developer
.mr.developer.cfg

# Mac crap
.DS_Store

############
# *nix
############
*.lo
*.o
*.a
*.la
.libs
mpn/*.c
mpn/*.as
mpn/*.asm
Makefile
mpir.h
config.h
config.m4
*.log
*.in
*.trs
config.status
libtool
stamp-h1
autom4te.cache/
yasm/YASM-VERSION-FILE
yasm/YASM-VERSION.h
yasm/autom4te.cache/
yasm/.deps/
yasm/results
yasm/config/config.guess
yasm/config/config.sub
yasm/configure.gnu
yasm/configure.lineno
yasm/libyasm-stdint.h
yasm/po/Makefile.in
yasm/po/POTFILES
yasm/stamp-h1
yasm_mac.inc
gmp.h
longlong.h
gmp-mparam.h
tune/sqr_basecase.c
autoscript
cdata
test-driver
tests/fft/t-adjust
tests/fft/t-adjust_sqrt2
tests/fft/t-butterfly
tests/fft/t-butterfly_lshB
tests/fft/t-butterfly_rshB
tests/fft/t-butterfly_sqrt2
tests/fft/t-butterfly_twiddle
tests/fft/t-div_2expmod_2expp1
tests/fft/t-fft_ifft_mfa_trunc_sqrt2
tests/fft/t-fft_ifft_negacyclic
tests/fft/t-fft_ifft_radix2
tests/fft/t-fft_ifft_trunc
tests/fft/t-fft_ifft_trunc_sqrt2
tests/fft/t-mul_2expmod_2expp1
tests/fft/t-mul_fft_main
tests/fft/t-mul_mfa_trunc_sqrt2
tests/fft/t-mul_trunc_sqrt2
tests/fft/t-mulmod_2expp1
tests/fft/t-normmod_2expp1
tests/fft/t-split_combine_bits
tests/mpn/st_fat
tests/mpn/st_instrument
tests/mpn/t-addadd_n
tests/mpn/t-addsub_n
tests/mpn/t-aors_1
tests/mpn/t-asmtype
tests/mpn/t-dc_bdiv_q
tests/mpn/t-dc_bdiv_q_n
tests/mpn/t-dc_bdiv_qr
tests/mpn/t-dc_bdiv_qr_n
tests/mpn/t-dc_div_q
tests/mpn/t-dc_div_qr
tests/mpn/t-dc_div_qr_n
tests/mpn/t-dc_divappr_q
tests/mpn/t-divebyff
tests/mpn/t-divebyfobm1
tests/mpn/t-divrem_1
tests/mpn/t-fat
tests/mpn/t-gcdext
tests/mpn/t-get_d
tests/mpn/t-hgcd
tests/mpn/t-instrument
tests/mpn/t-inv_div_q
tests/mpn/t-inv_div_qr
tests/mpn/t-inv_div_qr_n
tests/mpn/t-inv_divappr_q
tests/mpn/t-inv_divappr_q_n
tests/mpn/t-invert
tests/mpn/t-iord_u
tests/mpn/t-lorrshift1
tests/mpn/t-matrix22
tests/mpn/t-mp_bases
tests/mpn/t-mullow_basecase
tests/mpn/t-mullowhigh
tests/mpn/t-mulmid
tests/mpn/t-mulmod_2expm1
tests/mpn/t-mulmod_2expp1
tests/mpn/t-neg
tests/mpn/t-perfsqr
tests/mpn/t-redc_1
tests/mpn/t-sb_bdiv_q
tests/mpn/t-sb_bdiv_qr
tests/mpn/t-sb_div_q
tests/mpn/t-sb_div_qr
tests/mpn/t-sb_divappr_q
tests/mpn/t-scan
tests/mpn/t-sizeinbase
tests/mpn/t-subadd_n
tests/mpn/t-tdiv_q
tests/mpn/t-tdiv_qr
tests/mpn/t-logic
tests/t-bswap
tests/t-constants
tests/t-count_zeros
tests/t-gmpmax
tests/t-hightomask
tests/t-modlinv
tests/t-parity
tests/t-popc
tests/t-sub
tests/misc/t-locale
tests/misc/t-printf
tests/misc/t-scanf
tests/mpf/reuse
tests/mpf/t-add
tests/mpf/t-cmp_d
tests/mpf/t-cmp_si
tests/mpf/t-conv
tests/mpf/t-div
tests/mpf/t-dm2exp
tests/mpf/t-eq
tests/mpf/t-fits
tests/mpf/t-get_d
tests/mpf/t-get_d_2exp
tests/mpf/t-get_si
tests/mpf/t-get_ui
tests/mpf/t-gsprec
tests/mpf/t-inp_str
tests/mpf/t-int_p
tests/mpf/t-mul_ui
tests/mpf/t-muldiv
tests/mpf/t-set
tests/mpf/t-set_q
tests/mpf/t-set_si
tests/mpf/t-set_ui
tests/mpf/t-sqrt
tests/mpf/t-sqrt_ui
tests/mpf/t-sub
tests/mpf/t-trunc
tests/mpf/t-ui_div
tests/mpq/t-aors
tests/mpq/t-cmp
tests/mpq/t-cmp_si
tests/mpq/t-cmp_ui
tests/mpq/t-cmp_z
tests/mpq/t-equal
tests/mpq/t-get_d
tests/mpq/t-get_str
tests/mpq/t-inp_str
tests/mpq/t-md_2exp
tests/mpq/t-set_f
tests/mpq/t-set_str
tests/mpz/bit
tests/mpz/convert
tests/mpz/dive
tests/mpz/dive_ui
tests/mpz/io
tests/mpz/logic
tests/mpz/reuse
tests/mpz/st_hamdist
tests/mpz/st_popcount
tests/mpz/t-addsub
tests/mpz/t-aorsmul
tests/mpz/t-bin
tests/mpz/t-cdiv_ui
tests/mpz/t-cmp
tests/mpz/t-cmp_d
tests/mpz/t-cmp_si
tests/mpz/t-cong
tests/mpz/t-cong_2exp
tests/mpz/t-div_2exp
tests/mpz/t-divis
tests/mpz/t-divis_2exp
tests/mpz/t-export
tests/mpz/t-fac_ui
tests/mpz/t-fdiv
tests/mpz/t-fdiv_ui
tests/mpz/t-fib_ui
tests/mpz/t-fits
tests/mpz/t-gcd
tests/mpz/t-gcd_ui
tests/mpz/t-get_d
tests/mpz/t-get_d_2exp
tests/mpz/t-get_si
tests/mpz/t-get_sx
tests/mpz/t-get_ux
tests/mpz/t-hamdist
tests/mpz/t-import
tests/mpz/t-inp_str
tests/mpz/t-io_raw
tests/mpz/t-jac
tests/mpz/t-lcm
tests/mpz/t-likely_prime_p
tests/mpz/t-limbs
tests/mpz/t-lucnum_ui
tests/mpz/t-mfac_uiui
tests/mpz/t-mul
tests/mpz/t-mul_i
tests/mpz/t-next_prime_candidate
tests/mpz/t-oddeven
tests/mpz/t-perfpow
tests/mpz/t-perfsqr
tests/mpz/t-popcount
tests/mpz/t-pow
tests/mpz/t-powm
tests/mpz/t-powm_ui
tests/mpz/t-pprime_p
tests/mpz/t-primorial_ui
tests/mpz/t-root
tests/mpz/t-scan
tests/mpz/t-set_d
tests/mpz/t-set_f
tests/mpz/t-set_si
tests/mpz/t-set_str
tests/mpz/t-set_sx
tests/mpz/t-set_ux
tests/mpz/t-sizeinbase
tests/mpz/t-sqrtrem
tests/mpz/t-tdiv
tests/mpz/t-tdiv_ui
tests/mpz/t-trial_division
tests/rand/t-iset
tests/rand/t-lc2exp
tests/rand/t-mt
tests/rand/t-rand
tests/rand/t-urbui
tests/rand/t-urmui
tests/rand/t-urndmm
aclocal.m4
compile
configure
doc/mpir.info
doc/mpir.info-1
doc/mpir.info-2
install-sh
ltmain.sh
missing


================================================
FILE: .travis.yml
================================================
language: c
sudo: false
os:
  - osx
  - linux
compiler:
  - gcc
  - clang
addons:
  apt:
    packages:
      - yasm
      - texinfo
script:
  - if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
       brew update;
       brew install yasm;
    fi
  # On OSX, gcc is a wrapper around clang, so use gcc from homebrew
  - if [[ "${TRAVIS_OS_NAME}" == "osx" ]] && [[ "${CC}" == "gcc" ]]; then
       brew install gcc;
       brew link --overwrite gcc;
       export CC=gcc;
       export CXX=g++;
    fi
  - $CC --version
  - ./autogen.sh
  - ./configure && make && make check


================================================
FILE: AUTHORS
================================================
Authors of GNU MP (in chronological order of initial contribution)

Torbjörn Granlund	Main author

John Amanatides		Original version of mpz/pprime_p.c
Paul Zimmermann		mpn/generic/mul_fft.c, mpn/generic/dc_divrem_n.c,
			new mpz/powm.c, improved Toom3 code.
Ken Weber		mpn/generic/gcd.c mpn/generic/bdivmod.c
Bennet Yee		mpz/jacobi.c mpz/legendre.c
Andreas Schwab		mpn/m68k/lshift.S, mpn/m68k/rshift.S
Robert Harley		mpn/generic/mul_n.c, files in mpn/arm
Linus Nordberg		Random number framework, original autoconfery
Kent Boortz		MacOS 9 port
Kevin Ryde		Most x86 assembly, new autoconfery, and countless other
			things (please see the GMP manual for complete list)
Gerardo Ballabio	gmpxx.h and C++ istream input
Pedro Gimeno		Mersenne Twister random generator, other random number
			revisions
Jason Moxham		New mpz/fac_ui.c and gen-fac_ui.c

Authors of code in MPIR (including code from recent GMP)

Brian Gladman        Windows MSVC port and intel format x86_64 code
                     Port of tune, speed, try and benchmark code to MSVC. 
                     Complete rewrite of benchmark code in C.
William Hart         Build system modifications and intel format x86_64 code
                     Added mpn version of Toom 4 and Toom 7 multiplication 
                     routines. Numerous FFT bugfixes, improvements to Toom3, 
                     4, 7 routines, toom squaring routines. Extended GCD code, 
                     improvements to GCD code. Fast mpn_tdiv_q code.
Gonzalo Tornaria     Patches to config.guess and mpirbench and some tuning work.
Mariah Lennox        Patches to mpirbench and build failure reports
Jason Worth Martin   Core 2 assembly support,  merge of Moller's GCD patches,
                     addmul code for Itanium
Michael Abshoff      Build system patches and failure reports, valgrinding,
                     build testing
Niels Moller         GCD patches, nhgcd2.c, contributions to the schoolbook
                     and divide and conquer division code, jacobi symbols
Jason Moxham	     Dramatic speed improvements for K8, K10 and Core 2 
                     assembler code and improvements to other x86_64 assembly 
                     code. Refactoring CPU detection code. Numerous bug and 
                     build fixes. Improvements to speed program. Many new 
                     assembly functions including division functions. Improved
                     root code, mulhi and mullo. Implementation of Peter 
                     Montgomery's single limb remainder code.
Pierrick Gaudry      AMD 64 assembly support, revised FFT code
Paul Zimmermann      mpz implementation of Toom 4, FFT code, invert.c, rootrem
Alexander Kruppa     revised FFT code
Torbjorn Granlund    revised FFT code, schoolbook and divide and conquer
                     division code (reused in asymptotically fast division
                     code), logops, rootrem, tdiv_q, tdiv_qr, linear division
                     code for x86_64, itanium assembly code, divexact, 
                     nextprime, n-choose-k, binvert, mullow_n_basecase, powlo,
                     redc_n, powm, powm_ui improvements 
Marco Bodrato        mpz implementation of Toom 7, mpn implementation of 
                     toom 8.5, contributed to Schoolbook division code
                     many improved number theoretical functions factorial,
                     multi-factorial, primorial, n-choose-k
Robert Gerbicz       fast factorial code
Marc Glisse          gmpxx.h improvements
Martin Boij          Miscellaneous improvements to nextprime code
David Harvey         middle product and dc_divappr_q code, divide and conquer
                     Hensel division code and some work on basecase
T. R. Nicely         primality tests used in benchmark
Jeff Gilchrist       porting of T. R. Nicely's code to MPIR, testing/tuning
Peter Shrimpton	     BPSW primality test code for integers up to GMP_LIMB_BITS
Minh Van Nguyen      Release manager for MPIR 2.1.0
Case Vanhorsen	     Release testing
David Cleaver        Bug report
JP Flori             Many build system patches, tuning values, port of GMP
                     mpz_powm and mpz_powm_ui to MPIR
Sisyphus (Rob)       Tuning values
Leif Lionhardy       Build system patches, tuning values
Julien Puydt         Tuning values
Vincent Delecroix    Port of mpq_cmp_z from gmp
sav-ix (Alexander)   Patch for t-locale on Windows
Isuru Fernando       Tuning values, numerous build patches and continuous
                     integration
Alex Dyachenko       mpir.net for interface to .net languages
Tommy Hoffman        Supplied a sed patch.
Averkhaturau         Fixed a C++ compilation problem.
Marcell Keller       Fixed a sign conversion bug.
Sergey Taymanov      Fixed some Windows build file issues.
jengelh              Reported a bug and did build test
Dima Pasechnik       Build system patches, bulk changes to x86_64 assembler code
                     to accommodate OSX linker quirks.


================================================
FILE: COPYING
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.


================================================
FILE: COPYING.LIB
================================================
		   GNU LESSER GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.


  This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.

  0. Additional Definitions.

  As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.

  "The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.

  An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.

  A "Combined Work" is a work produced by combining or linking an
Application with the Library.  The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".

  The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.

  The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.

  1. Exception to Section 3 of the GNU GPL.

  You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.

  2. Conveying Modified Versions.

  If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:

   a) under this License, provided that you make a good faith effort to
   ensure that, in the event an Application does not supply the
   function or data, the facility still operates, and performs
   whatever part of its purpose remains meaningful, or

   b) under the GNU GPL, with none of the additional permissions of
   this License applicable to that copy.

  3. Object Code Incorporating Material from Library Header Files.

  The object code form of an Application may incorporate material from
a header file that is part of the Library.  You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:

   a) Give prominent notice with each copy of the object code that the
   Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the object code with a copy of the GNU GPL and this license
   document.

  4. Combined Works.

  You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:

   a) Give prominent notice with each copy of the Combined Work that
   the Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the Combined Work with a copy of the GNU GPL and this license
   document.

   c) For a Combined Work that displays copyright notices during
   execution, include the copyright notice for the Library among
   these notices, as well as a reference directing the user to the
   copies of the GNU GPL and this license document.

   d) Do one of the following:

       0) Convey the Minimal Corresponding Source under the terms of this
       License, and the Corresponding Application Code in a form
       suitable for, and under terms that permit, the user to
       recombine or relink the Application with a modified version of
       the Linked Version to produce a modified Combined Work, in the
       manner specified by section 6 of the GNU GPL for conveying
       Corresponding Source.

       1) Use a suitable shared library mechanism for linking with the
       Library.  A suitable mechanism is one that (a) uses at run time
       a copy of the Library already present on the user's computer
       system, and (b) will operate properly with a modified version
       of the Library that is interface-compatible with the Linked
       Version.

   e) Provide Installation Information, but only if you would otherwise
   be required to provide such information under section 6 of the
   GNU GPL, and only to the extent that such information is
   necessary to install and execute a modified version of the
   Combined Work produced by recombining or relinking the
   Application with a modified version of the Linked Version. (If
   you use option 4d0, the Installation Information must accompany
   the Minimal Corresponding Source and Corresponding Application
   Code. If you use option 4d1, you must provide the Installation
   Information in the manner specified by section 6 of the GNU GPL
   for conveying Corresponding Source.)

  5. Combined Libraries.

  You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:

   a) Accompany the combined library with a copy of the same work based
   on the Library, uncombined with any other library facilities,
   conveyed under the terms of this License.

   b) Give prominent notice with the combined library that part of it
   is a work based on the Library, and explaining where to find the
   accompanying uncombined form of the same work.

  6. Revised Versions of the GNU Lesser General Public License.

  The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

  Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.

  If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.


================================================
FILE: ChangeLog
================================================
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
	  2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.

Copyright 2009-2015 William Hart
.
This file is part of the MPIR Library.
.
The MPIR Library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or (at your
option) any later version.
.
The MPIR Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.
.
You should have received a copy of the GNU Lesser General Public License
along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.

2017-03-01 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 3.0.0 released

2015-11-20 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.7.2 released

2015-11-13 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.7.1 released

2015-06-26 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.7.0 released

2012-10-05 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.6.0 released

2012-10-02 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.5.2 released

2012-03-11 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.5.1 released

2012-01-05 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.5.0 released

2011-06-14 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.4.0 released

2011-04-05 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.3.1 released

2011-03-04 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.3.0 released

2010-12-18 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.2.1 released

2010-12-02 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.2.0 released

2010-12-01 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.1.4 released

2010-06-25 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.1.1 released

2010-06-07 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.1.0 released

2010-04-01 mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR version 2.0.0 released

2009-01-30  mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR Version 1.3.1 released.

2009-01-18  mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR Version 1.3.0 released.

2009-06-06  mpir-devel <http://groups.google.com/group/mpir-devel>

    * MPIR Version 1.2.0 released.

2009-04-15  mpir-devel <http://groups.google.com/group/mpir-devel>

	* MPIR Version 1.1.0 released.

2009-03-16  mpir-devel <http://groups.google.com/group/mpir-devel>

	* MPIR Version 1.0.0 released.

2009-01-10  mpir-devel <http://groups.google.com/group/mpir-devel>

	* MPIR Version 0.9.0 released.

2006-05-04  Torbjorn Granlund  <tege@swox.com>

	* Version 4.2.1 released.

2006-05-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n.

2006-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/divexact.c: Call mpz_tdiv_q for large operands.

	* configure.in (powerpc-*-darwin): Remove -fast, it affects PIC.

2006-04-26  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1).
	* config.sub: Handle ultrasparct1.

2006-04-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and
	non-GNUC data.

2006-04-19  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Support powerpc eABI.
	* mpn/powerpc32/eabi.m4: New file.

	* configure.in: Support powerpc *bsd.
	* mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4.
	* mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4.

	* mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY.

2006-04-18  Torbjorn Granlund  <tege@swox.com>

	* configure.in (gmp_mpn_functions_optional): Add lshiftc.
	(HAVE_NATIVE): Add lshiftc.

	* tune/speed.h (SPEED_ROUTINE_MPN_ADDSUB_N_CALL): New macro.
	* tune/common.c (speed_mpn_addsub_n): New function.
	* tune/speed.c (routine): Add measuring of mpn_addsub_n.

	* mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty.
	* mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise.
	* mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise.

	* mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4.
	* mpn/powerpc32/mode1o.asm: Use EXTERN.
	* mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition.
	* mpn/powerpc32/darwin.m4 (EXTERN): Likewise.

2006-04-13  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (choice_array): Add mpn_addsub_n[c].

2006-04-12  Torbjorn Granlund  <tege@swox.com>

	* extract-dbl.c: Don't rely on undefined casts to mp_limb_signed_t.

	* configure.in: Disable AC_C_RESTRICT for now.
	* mpn/generic/diveby3.c: Don't use restict keyword for now.

2006-04-11  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump.

	* aclocal.m4: Regenerate with patched libtool.

	* mpn/asm-defs.m4 (ASM_END): Provide (empty) default.

2006-04-08  Torbjorn Granlund  <tege@swox.com>

	* configure.in (gmp_mpn_functions_optional): Add addsub.

	* Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*):
	Bump version info.

	* gmpxx.h: Remove missed MPFR references.

	* gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument;
	define TMP_SALLOC and TMP_BALLOC.

2006-04-05  Torbjorn Granlund  <tege@swox.com>

	* tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker.
	(__gmp_tmp_free): Likewise.

2006-03-26  Torbjorn Granlund  <tege@swox.com>

	* Version 4.2 released.

	* mpn/powerpc64/aix.m4 (LEA): Renamed from LDSYM.
	* mpn/powerpc64/darwin.m4: Likewise.
	* mpn/powerpc64/linux64.m4: Likewise.
	* mpn/powerpc64/vmx/popcount.asm: Use LEA, not LDSYM.

2006-03-23  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: (class gmp_allocated_string): Prefix strlen with std::.

	* gmpxx.h (__GMP_DEFINE_TERNARY_EXPR2): Remove for now.
	(struct __gmp_ternary_addmul2): Likewise.
	(struct __gmp_ternary_submul2): Likewise.

	* gmpxx.h: #include <cstring>.
	(struct __gmp_alloc_cstring): Prefix strlen with std::.

	* mpn/x86/pentium/com_n.asm: Add TEXT and ALIGN.
	* mpn/x86/pentium/copyi.asm: Likewise.
	* mpn/x86/pentium/copyd.asm: Likewise.

2006-03-22  Torbjorn Granlund  <tege@swox.com>

	* gmp-h.in: Add a "using std::FILE" for C++.
	(_GMP_H_HAVE_FILE): Check also _ISO_STDIO_ISO_H.

	* gmpxx.h: Remove mpfr code.
	* tests/cxx: Likewise.

	* gmp-impl.h (FORCE_DOUBLE): Rename a tempvar to avoid a clash with
	GNU/Linux public include file.

	* configure.in (powerpc64, darwin): New optional, gcc_cflags_subtype.
	Grab powerpc32/darwin.m4 for ABI=mode32.

	* configure.in: Use host_cpu whenever just the cpu type is needed.

2006-03-08  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_si.c: Fix a typo.

	* tests/mpq/t-get_d.c (check_random): Improve random generation for
	nails.

2006-02-28  Torbjorn Granlund  <tege@swox.com>

	* tests/mpq/t-get_d.c (check_random): New function.
	(main): Call check_random.

	* mpq/set_d.c: Make choices based on LIMBS_PER_DOUBLE, not
	BITS_PER_MP_LIMB.  Make it work for LIMBS_PER_DOUBLE == 4.
	Use MPZ_REALLOC.

	* mpz/set_d.c: Make it work for LIMBS_PER_DOUBLE == 4.

	* extract-dbl.c: Make it work for LIMBS_PER_DOUBLE > 3.

2006-02-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/cmp_d.c: Declare `i'.
	* mpz/cmpabs_d.c: Likewise.

2006-02-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits.
	* mpn/powerpc32/vmx/copyi.asm: Likewise.

2006-02-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/logops_n.asm: New file.

	* mpn/powerpc32/diveby3.asm: Rewrite.

2006-02-21  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/vmx/copyi.asm: New file.
	* mpn/powerpc32/vmx/copyd.asm: New file.

2006-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from
	deleted mpn_sub_n.

2006-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Correct slotting comments.

2006-02-15  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/anymul_1.c: Copy error reporting code from addmul_N.c.

	* tests/devel/addmul_N.c: New file.
	* tests/devel/mul_N.c: New file.

	* mpn/alpha/default.m4 (PROLOGUE_cpu): Align functions at 16-byte
	boundary.

	* mpn/alpha/ev6/nails/aors_n.asm: New file.
	* mpn/alpha/ev6/nails/add_n.asm: Remove.
	* mpn/alpha/ev6/nails/sub_n.asm: Remove.

	* mpn/alpha/ev6/nails/addmul_1.asm: Rewrite.
	* mpn/alpha/ev6/nails/submul_1.asm: Likewise.
	* mpn/alpha/ev6/nails/mul_1.asm: Likewise.

	* mpn/alpha/ev6/nails/addmul_2.asm: Use L() for labels.
	* mpn/alpha/ev6/nails/addmul_3.asm: Use L() for labels.
	* mpn/alpha/ev6/nails/addmul_4.asm: Use L() for labels.

2006-02-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save
	1 c/l.

2006-02-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/sqr_diagonal.asm: Software pipeline.

	* mpn/powerpc64/vmx/popcount.asm: Add prefetching.

2006-02-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/vmx/popcount.asm: Remove mpn_hamdist partial code.
	Move compare for huge n so that it is always executed.

2006-02-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/linux.m4 (LEA): Add support for PIC.

	* configure.in (powerpc): New optional, gcc_cflags_subtype.

	* mpn/powerpc64/linux64.m4 (PROLOGUE_cpu): Align function start to
	16-multiple.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise.

	* mpn/powerpc64/copyi.asm: Align loop to 16-multiple.
	* mpn/powerpc64/copyd.asm: Likewise

	* configure.in (powerpc): Add vmx to relevant paths.

	* mpn/powerpc64/linux64.m4 (DEF_OBJECT): Accept 2nd argument, for
	alignment.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise.

	* mpn/powerpc32/linux.m4 (DEF_OBJECT, END_OBJECT): New macros,
	inherited from powerpc64 versions.
	* mpn/powerpc32/aix.m4: Likewise.
	* mpn/powerpc32/darwin.m4: Likewise.

	* mpn/powerpc64/vmx/popcount.asm: New file, for ppc32 and ppc64.
	* mpn/powerpc32/vmx/popcount.asm: New file, grabbing above file.

2006-01-22  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Generalize OS-dependent patterns for powerpcs.

2006-01-20  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize power4 and up under linux-gnu.
	* config.sub: Generalize power recognition code.
	* acinclude.m4 (POWERPC64_PATTERN): Add 64-bit powerpc processors.
	* configure.in: Recognize powerpc procssors masquerading as power
	procssors.

2006-01-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/diveby3.c: Use GMP standard parameter names.  Nailify
	alternative code.  Use restrict for params.

	* configure.in: Recognize andn_n as not needing nailification.

	* tests/mpq/t-equal.c (check_various): Disable a test that gives common
	factors for GMP_NUMB_BITS == 62.

2006-01-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation,
	was inaccurate for nails.

2006-01-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing.

2006-01-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/sqr_diagonal.asm: New file.

2006-01-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define.
	(mpn_mullow_n): Use it.

	* mpn/powerpc64/aix.m4 (EXTERN): Define to import symbol.
	(LDSYM): Remove [RW] attribute.
	* mpn/powerpc64/linux64.m4 (EXTERN): Dummy definition.
	* mpn/powerpc64/darwin.m4 (EXTERN): Likewise.

2006-01-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4: Move toc entry generation from direct at
	DEF_OBJECT to delayed via LDSYM, define ASM_END to output it.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Define a dummy ASM_END.

2006-01-03  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Update bugs reporting address.

2006-01-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4 (CALL): New macro.
	* mpn/powerpc64/aix.m4: Likewise.
	* mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN".

2005-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha.
	* mpf/set_q.c: Likewise.

2005-12-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/tdiv_qr.c: Remove statement with no effect.
	Rename dead variable to `dummy'.

2005-12-15  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (setup_error_handler): Add a missing ";".

2005-11-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c: Crudely call mpn_mul_fft_full before checking
	for unbalanced operands.

	* mpn/generic/mul_fft.c: Remove many scalar divisions.
	(mpn_mul_fft_lcm): Simplify.
	(mpn_mul_fft_decompose): Rewrite to handle arbitrarily unbalanced
	operands.

2005-11-22  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Properly recognize all 32-bit Solaris releases.

2005-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF,
	mpn_fft_add_modF and mpn_fft_normalize.

2005-11-02  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/reuse.c: Increase operand size, decrease # of reps.

2005-10-31  Torbjorn Granlund  <tege@swox.com>

	* mpz/pprime_p.c (mpz_probab_prime_p): Considerably limit trial
	dividing.

	* mpz/perfpow.c (mpz_perfect_power_p): Use mpz_divisible_ui_p instead
	of mpz_tdiv_ui.

	* mpz/divegcd.c: Correct probability number for GCD == 1.

	* mpn/x86: Add cycle counts for array of x86 processors.

	* mpn/x86/k7/mod_34lsub1.asm: Remove spurious mentions of ebp.

	* mpn/powerpc32: Add POWER5 timings.

	* mpn/powerpc32/README: Describe global reference variations.

	* mpn/generic/dive_1.c: Whitespace cleanup.

	* mpn/alpha/ev6/nails/addmul_1.asm: Correct comments on slotting.
	* mpn/alpha/ev6/nails/addmul_2.asm: Likewise.
	* mpn/alpha/ev6/nails/addmul_4.asm: Likewise.

	* mpf/out_str.c: List some allocation improvement ideas.

	* doc/gmp.texi: Update many URLs and email addresses.

	* gmp-h.in (_GMP_H_HAVE_FILE): Check also _STDIO_H_INCLUDED.

2005-10-26  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (tune_mullow): Update param.max_size for each threshold
	measurement.

	* configure.in (POWERPC64_PATTERN/*-*-darwin*): Set
	SPEED_CYCLECOUNTER_OBJ_mode64 and cyclecounter_size_mode64.
	(POWERPC64_PATTERN/*-*-linux*): Likewise.

2005-10-03  Torbjorn Granlund  <tege@swox.com>

	* demos/factorize.c (factor_using_division_2kp): Honor verbose flag.
	(factor_using_pollard_rho): Divide out new factor before it's
	clobbered.  Don't stop factoring after a composite factor was found.

2005-09-17  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c (fns): Add factorial keywords.

2005-08-16  Torbjorn Granlund  <tege@swox.com>

	* tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64".
	* mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64".

2005-08-15  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Change "amd64" => "x86_64".

2005-06-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/pre_mod_1.c: Canonicalize variable names.

	* mpn/generic/divrem.c: Rate qxn test as UNLIKELY.

	* tune/tuneup.c (tune_mullow): Fix all max_size fields.

	* gmp-impl.h (SQR_TOOM3_THRESHOLD_LIMIT): New #define.
	* tune/tuneup.c (tune_sqr): Use SQR_TOOM3_THRESHOLD_LIMIT.
	(sqr_toom3_threshold): Initialize from SQR_TOOM3_THRESHOLD_LIMIT.

	* mpn/generic/mul_n.c (mpn_sqr_n): Use SQR_TOOM3_THRESHOLD_LIMIT.

	* gmp-impl.h (mpn_nand_n, mpn_iorn_n, mpn_nior_n, mpn_xnor_n):
	Handle nails.

2005-06-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last.

2005-06-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/add_n.asm: Rewrite inner loop to load later.
	Add mpn_add_nc entry.

	* mpn/alpha/ev6/addmul_1.asm: Remove redundant initial loads.

2005-06-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result.

2005-06-04  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (choice_array): Exclude mpn_preinv_mod_1 unless
	USE_PREINV_MOD_1.
	(choice_array): Exclude mpn_sqr_basecase if SQR_KARATSUBA_THRESHOLD
	is zero.

2005-06-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$".
	* mpn/alpha/ev6/mul_1.asm: Likewise.

2005-06-02  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpn.c (refmpn_divmod_1c_workaround): Implement workaround
	to gcc 3.4.x bug triggered on powerpc64 with 32-bit ABI.

2005-06-01  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (main): Fix a typo.

2005-05-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch.

2005-05-30  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Mask random seed to 32 bits.

2005-05-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode32/mul_1.asm: Handle BROKEN_LONGLONG_PARAM.
	* mpn/powerpc64/mode32/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode32/submul_1.asm: Likewise.

	* mpn/powerpc32/mode1o.asm: Rewrite to actually work.

	* mpn/powerpc32/aix.m4 (LEA): New macro.
	(ASM_END): New macro.

	* mpn/powerpc32/linux.m4: New file.
	* mpn/powerpc32/darwin.m4: New file.
	* configure.in: Use linux.m4 and darwin.m4.
	(powerpc64-linux-gnu): Add support for mode32.

2005-05-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mullow_n.c: Remove FIXME mentioning fixed flaw.

	* tests/mpz/t-cmp_d.c (check_one): Fix printf fmt string typo.

	* demos/isprime.c: #include stdlib.h.
	* tests/rand/t-urbui.c: Likewise.
	* tests/rand/t-urmui.c: Likewise.

	* tests/mpz/t-popcount.c (check_random): Remove spurious printf arg.

2005-05-24  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (param_init) [TYPE_GET_STR]: Set retval field.
	(compare): Handle SIZE_GET_STR as SIZE_RETVAL.

	* tests/refmpn.c (refmpn_get_str): Rewrite to make it work.

2005-05-23  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (many places): Remove lvalue casts.

	* gmp-impl.h (MPF_SIGNIFICANT_DIGITS): Cast prec to avoid overflow
	for > 4G digits.

	* mpn/alpha/ev6/add_n.asm: Prefetch using ldl.
	* mpn/alpha/ev6/sub_n.asm: Likewise.

	* mpn/alpha/ev6/slot.pl (optable): Recognize negq and ldl.

2005-05-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/ev67/popcount.asm: Prefetch.
	* mpn/alpha/ev67/hamdist.asm: Prefetch.

	* longlong.h (add_ssaaaa) [x86]: Remove lvalue casts.
	(sub_ddmmss) [x86]: Likewise.

	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Add DATA_SRC1_ODD.
	(param_init) [TYPE_MPZ_KRONECKER]: Clear inherited DATA_SRC1_ODD.
	(param_init) [TYPE_DIVEXACT_1]: Use symbolic name DIVISOR_LIMB.

2005-05-21  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c (param_init) [TYPE_MPZ_JACOBI]: Initialize divisor
	field according to UDIV_NEEDS_NORMALIZATION.

	* mpz/mul_i.h: Remove left-over TMP_XXXX marker arguments.

2005-05-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm (mpn_addmul_1c): Put carry in
	proper register.

	* mpn/generic/sqr_basecase.c (mpn_sqr_basecase, addmul_2 version):
	Avoid accesses out-of-bound in MPN_SQR_DIAGONAL applicate code.

2005-05-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Make it actually work.

	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD_LIMIT): New #define.
	* mpn/generic/mullow_n.c: Use fixed stack allocation for the smallest
	operands; use TMP_S* allocation for medium operands.

	* gmp-impl.h: Remove nested TUNE_PROGRAM_BUILD test.

2005-05-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c: Make squaring and multiplication code more
	similar.  Use TMP_S* functions.

	* gmp-impl.h (TMP_DECL, TMP_MARK, TMP_FREE): Get rid of argument.
	(TMP_SALLOC): New macro for "small" allocations.
	(TMP_BALLOC): New macro for "big" allocations.
	(TMP_SDECL, TMP_SMARK, TMP_SFREE): New macros for functions that use
	just TMP_SALLOC.
	(WANT_TMP_ALLOCA): Make default functions choose alloca or reentrant
	functions, depending on size.

	* *.c: Remove TMP_XXXX marker arguments.

	* acinclude.m4 (WANT_TMP): Want tal-reent.lo also for alloca case.

2005-05-15  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa.
	(udiv_qrnnd_preinv2gen): Likewise.

2005-05-14  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate
	operands.
	* (sub_ddmmss) [x86_64]: Likewise.

2005-05-02  Torbjorn Granlund  <tege@swox.com>

	* acinclude.m4 (GMP_HPC_HPPA_2_0): Make gmp_tmp_v1 sed pattern handle
	version numbers like B.11.X.32509-32512.GP.

	* mpn/m68k/aors_n.asm: Correct MULFUNC_PROLOGUE.

	* mpf/inp_str.c: Use plain int for mpf_set_str return value (works
	around gcc 4 bug).

	* acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): Handle darwin's assembly
	syntax.
	(long long reliability test 1): New GMP_PROG_CC_WORKS_PART test.
	(long long reliability test 2): New GMP_PROG_CC_WORKS_PART test.

	* configure.in: Add mode64 support for darwin.  Use darwin.m4.
	Add cflags_opt flags for mode32 darwin.

	* mpn/asm-defs.m4 (PIC_ALWAYS): Define PIC just iff PIC_ALWAYS = "yes".

	* mpn/powerpc64/darwin.m4: New file.

	* mpn/powerpc64/linux64.m4: Remove TOCREF, add LDSYM.
	Rework DEF_OBJECT to need just one argument.
	* mpn/powerpc64/aix.m4: Likewise.

2005-05-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popham.c: Compute final summation differently for 64-bit.

	* tests/mpz/t-popcount.c (check_random): New function.
	(main): Call it.

2005-04-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/copyi.asm: If HAVE_ABI_mode32, ignore upper 32 bits of
	mp_size_t argument.
	* mpn/powerpc64/copyd.asm: Likewise.
	* mpn/powerpc64/sqr_diagonal.asm: Likewise.
	* mpn/powerpc64/lshift.asm: Likewise.
	* mpn/powerpc64/rshift.asm: Likewise.

2005-04-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp.

2005-04-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/add_n.asm: Add nc entry point.
	* mpn/powerpc32/sub_n.asm: Likewise.

	* mpn/alpha/add_n.asm: Add correct cycle/limb numbers.
	* mpn/alpha/sub_n.asm: Likewise.
	* mpn/alpha/ev5/add_n.asm: Likewise.
	* mpn/alpha/ev5/sub_n.asm: Likewise.

2005-03-31  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/k7/gmp-mparam.h: Fix typo in last change.

2005-03-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/gmp-mparam.h: Update.
	* mpn/alpha/ev5/gmp-mparam.h: Update.
	* mpn/alpha/ev6/gmp-mparam.h: Update.

	* mpn/x86/p6/mmx/gmp-mparam.h: Update.
	* mpn/x86/pentium4/sse2/gmp-mparam.h: Update.
	* mpn/x86/k7/gmp-mparam.h: Update.

	* tests/mpz/t-gcd.c (main): Honor command line reps argument.

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Simplify and correct code
	for generating test operands.

2005-01-13  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t.
	(MPN_SIZEINBASE_16): Likewise.

2004-12-17  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (run_gnuplot): Use lines, not linespoints.
	Output a reset gnuplot command initially.

2004-12-04  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/random2.c (gmp_rrandomb): Rework again.
	* mpz/rrandomb.c (gmp_rrandomb): Likewise.

2004-11-24  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Use correct prefetch instruction.

2004-11-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE.
	Add r31 dummy operand to `br' instruction.

2004-11-17  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Invoke AC_C_RESTRICT.

2004-11-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/diveby3.asm: New file.

2004-11-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/popham.c: Add comment.

2004-11-05  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Strip any PPC string in /proc/cpuinfo.
	Recognize 970 in that code.

2004-10-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/README: Update POWER5/PPC970 pipeline information.

	* mpn/generic/mul_basecase.c (MAX_LEFT): Add comment.

	* doc/gmp.texi: Consistently use "x86" denotation.
	(Assembler SIMD Instructions): Mention SSE2 usage.

	* demos/pexpr.c (main): Handle "negative" base in mpz_sizeinbase call.

2004-10-16  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Support icc under x86.
	(ia64-*-linux*): Pass -no-gcc to icc.

2004-10-15  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (ia64 umul_ppmm): Add version for icc.

	* configure.in: Support icc under ia64-*-linux*.

	* acinclude.m4: New "compiler works" test for icc 8.1 bug.
	(GMP_PROG_CC_IS_GNU): Don't let Intel's icc fool us it is GCC.

2004-10-14  Torbjorn Granlund  <tege@swox.com>

	* acinclude.m4 (GMP_ASM_W32): Try also "data4".

	* longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm.
	* gmp-impl.h: Likewise.

2004-10-12  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/try.c: Handle mpn_mul_2 like mpn_addmul_2.

	* tune/speed.c (routine): Make R parameter optional for mpn_mul_2.

2004-10-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/addmul_1.asm: Update a comment.

	* tests/devel/aors_n.c: #include tests.h.
	* tests/devel/anymul_1.c: Likewise.
	* tests/devel/shift.c: Likewise.
	* tests/devel/copy.c: Likewise.

	* tests/devel/aors_n.c: Handle also mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, and mpn_rsh1sub_n.

	* tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's
	file removals and additions.

2004-10-10  Torbjorn Granlund  <tege@swox.com>

	* tests/devel/copy.c: Handle both MPN_COPY_INCR and MPN_COPY_DECR.

	* tests/devel/logops_n.c: New file, handle all logical operations.

	* tests/devel/anymul_1.c: New file, handle mpn_mul_1, mpn_addmul_1, and
	mpn_submul_1
	* tests/devel/mul_1.c: Remove.
	* tests/devel/addmul_1.c: Remove.
	* tests/devel/submul_1.c: Remove.

	* tests/devel/shift.c: New file, handle mpn_lshift and mpn_rshift.
	* tests/devel/lshift.c: Remove.
	* tests/devel/rshift.c: Remove.

	* tests/devel/aors_n.c: New file, handle mpn_add_n and mpn_sub_n.
	* tests/devel/add_n.c: Remove.
	* tests/devel/sub_n.c: Remove.

2004-10-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF.
	* mpn/powerpc64/aix.m4: Likewise.

2004-10-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/copyi.asm: New file.
	* mpn/powerpc64/copyd.asm: New file.
	* gmp-h.in: Remove PPC MPN_COPY variants.
	* gmp-impl.h: Likewise.

2004-10-07  Torbjorn Granlund  <tege@swox.com>

	* configfsf.guess: Patch HP-UX code to accomodate HP compiler's new
	inability to read from stdin.

	* mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file.

2004-09-29  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register
	flag.

2004-09-28  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the
	recursive fft parameters.

2004-09-20  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Default to strtoul for re-seeding.

	* tests/mpz/t-mul.c (ref_mpn_mul): Fudge tmp allocation for toom3.

2004-09-19  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Shift tv_usec for better seeding.

2004-09-18  Torbjorn Granlund  <tege@swox.com>

	* tests/misc.c (tests_rand_start): Invoke fflush after printing seed.

	* tests/mpz/t-mul.c (main): Check environment for GMP_CHECK_FFT, run
	extra FFT tests if set.
	(ref_mpn_mul): Use library code for kara and toom, but skewded so that
	we never use the same algorithm that we're testing.
	(mul_kara): Delete.
	(debug_mp): Print just one line of large numbers.
	(ref_mpn_mul): Rework usage of tp temporary space.

2004-09-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2,
	accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n.

2004-08-29  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample.

2004-06-17  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi: Use @. when sentence ends with a capital, for good
	spacing in tex.
	(Language Bindings): Add gmp-d, reported by Ben Hinkle.  Update SWI
	Prolog URL, reported by Jan Wielemaker.

2004-06-09  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Handle --enable-fat.  Use that to enable x86 fat
	builds, remove magic meaning of i386-*-*.

2004-06-03  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (memset): Use a local char* pointer, in case parameter is
	something else (eg. tune/common.c).  Reported by Emmanuel Thomé.

2004-06-01  Kevin Ryde  <kevin@swox.se>

	* config.guess (i?86-*-*): Avoid "Illegal instruction" message which
	goes to stdout on 80386 freebsd4.9.

2004-05-23  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps.

2004-05-22  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers.

	* mpn/powerpc32/lshift.asm: Add more cycle numbers.
	* mpn/powerpc32/rshift.asm: Likewise.

2004-05-21  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_mullow_n, mpn_mullow_basecase): Declare.

	* tune/Makefile.am: Compile gcdext.c.

	* gmp-impl.h (GET_STR_THRESHOLD_LIMIT): Lower outrageous value to 150.

2004-05-21  Niels Möller  <nisse@lysator.liu.se>

	* tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is
	not smaller than 2nd operand.

2004-05-17  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (mpz_get_ui): Use #if instead of plain if, and for nails
	use ?: same as normal case, to avoid warnings from Borland C++ 6.0.
	Reported by delta trinity.

2004-05-15  Kevin Ryde  <kevin@swox.se>

	* tune/time.c (getrusage_backwards_p): New function
	(speed_time_init): Use it to exclude broken netbsd1.4.1 getrusage.
	* configure.in (m68*-*-netbsd1.4*): Remove code pretending getrusage
	doesn't exist.
	* tune/README (NetBSD 1.4.1 m68k): Update notes.

	* configure.in (mips*-*-* ABI=n32): Remove gcc_n32_ldflags and
	cc_n32_ldflags, libtool knows to put the linker in n32 mode.

2004-05-15  Torbjorn Granlund  <tege@swox.com>

	* config.guess (powerpc*-*-*): Add more processor types to mfpvr code.
	* configure.in: Generalize powerpc subtype matching code.

	* mpz/fac_ui.c: Misc cleanups, spelling corrections.

2004-05-14  Kevin Ryde  <kevin@swox.se>

	* mpf/sub.c: When one operand cancels high limbs of the other, strip
	high zeros on the balance before truncating to destination precision.
	Truncating first loses accuracy and can lead to a result 0 despite
	operands being not equal.  Reported by John Abbott.
	Also, ensure exponent is zero when result is zero, for instance if
	operands are exactly equal.
	* tests/mpf/t-sub.c (check_data): New function, exercising these.

2004-05-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_PROG_RANLIB): New macro, supposedly required by
	automake, though it doesn't complain.

	* demos/expr/Makefile.am (ARFLAGS): Add a default setting, to
	workaround an automake bug.

2004-05-10  Kevin Ryde  <kevin@swox.se>

	* */Makefile.in, install-sh, aclocal.m4: Update to automake 1.8.4.

	* doc/gmp.texi (Demonstration Programs): Add a remark about expression
	evaluation in the main gmp library.

	* demos/expr/exprfa.c (mpf_expr_a): Correction to mpX_init, use
	mpf_init2 to follow requested precision.
	* demos/expr/exprza.c, demos/expr/exprqa.c: Use wrappers for mpX_init,
	to make parameters match.

	* demos/expr/run-expr.c: Don't use getopt, to avoid needing configury
	for optarg declaration.  Remove TRY macro, rename foo and bar to var_a
	and var_b, for clarity.
	* demos/expr/expr-impl.h: Don't use expr-config.h.
	* configure.in (demos/expr/expr-config.h): Remove.
	* demos/expr/expr-config.in: Remove file.

2004-05-08  Kevin Ryde  <kevin@swox.se>

	* doc/configuration (Configure): Update for current automake not
	copying acinclude.m4 into aclocal.m4.

	* configure.in, Makefile.am, doc/gmp.texi, doc/configuration,
	tests/cxx/Makefile.am, demos/expr/Makefile.am, demos/expr/README,
	demos/expr/expr.c, demos/expr/expr.h, demos/expr/expr-config-h.in,
	demos/expr/expr-impl.h, demos/expr/run-expr.c, demos/expr/t-expr.c:
	MPFR now published separately, remove various bits.
	* mpfr/*, tests/cxx/t-headfr.cc, demos/expr/exprfr.c,
	demos/expr/exprfra.c: Remove.

2004-05-07  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Amend c++ shared library
	path hack, on k62-unknown-dragonfly1.0 /usr/bin/make runs its commands
	"set -e", so we need an "|| true" in case there's nothing to copy (for
	instance in a static build).

2004-05-06  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/mode1o.c: Remove, in favour of ...
	* mpn/alpha/mode1o.asm: New file.
	* mpn/alpha/alpha-defs.m4 (bwx_available_p): New macro.

	* tune/amd64.asm: Save rbx in r10 rather than on the stack.

	* configure.in (x86_64-*-*): Try also "-march=k8 -mno-sse2", in case
	we're in ABI=32 on an old OS not supporting xmm regs.
	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): Run these tests under
	-march=k8 too, and not under ABI=64.

	* doc/gmp.texi (Converting Integers): For mpz_get_d, note truncation
	and overflows.  For mpz_get_d_2exp note truncation, note result if
	OP==0, and cross reference libc frexp.
	(Rational Conversions): For mpq_get_d, note truncation and overflows.
	(Converting Floats): For mpf_get_d, note truncation and overflows.
	For mpf_get_d_2exp, note truncation, note result if OP==0.
	(Assembler Code Organisation): Note nails subdirectories.
	Clarification of get_d_2exp OP==0 reported by Sylvain Pion.

2004-05-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mullow_n.c, mpn/generic/mullow_basecase.c: New files
	(mainly by Niels Möller).
	* configure.in, mpn/Makefile.am: Add them.

	* gmp-impl.h (MULLOW_BASECASE_THRESHOLD, MULLOW_DC_THRESHOLD,
	MULLOW_MUL_N_THRESHOLD): Override for TUNE_PROGRAM_BUILD.

	* tune/Makefile.am: Compile mullow_n.c.
	* tune/common.c (speed_mpn_mullow_n, speed_mpn_mullow_basecase):
	New functions.
	* tune/speed.c (routine): Add entries for mpn_mullow_n and
	mpn_mullow_basecase.
	* tune/speed.h (SPEED_ROUTINE_MPN_MULLOW_N_CALL,
	SPEED_ROUTINE_MPN_MULLOW_BASECASE): New #defines.
	* tune/tuneup.c (tune_mullow): New function.

	* gmp-impl.h (invert_limb): Compute branch-freely.

2004-05-02  Kevin Ryde  <kevin@swox.se>

	* mpn/amd64/mode1o.asm: Use movabsq to support large model non-PIC.
	Use 32-bit insns to save code bytes, and to save a couple of cycles on
	the initial setup multiplies.

2004-05-01  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (References): Update gcc online docs url to
	gcc.gnu.org.

	* configure.in (mips*-*-irix[6789]*): Correction to m4 quoting of this
	pattern.  (Believe the mips64*-*-* part also used picks up all current
	irix6 tuples anyway.)  Reported by Rainer Orth.

2004-04-30  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_X86_GOT_EAX_EMITTED,
	GMP_ASM_X86_GOT_EAX_OK): New macros.
	(GMP_PROG_CC_WORKS): Use them to detect an old gas bug tickled by
	recent gcc.  Reported by David Newman.

	* doc/gmp.texi (Reentrancy): Note also gmp_randinit_default as an
	alternative to gmp_randinit.

2004-04-29  Torbjorn Granlund  <tege@swox.com>

	* configfsf.guess: Update to 2004-03-12.
	* configfsf.sub: Likewise.

2004-04-27  Torbjorn Granlund  <tege@swox.com>

	* mpz/rrandomb.c (gmp_rrandomb): Rework to avoid extra limb allocation
	and to generate even numbers.
	* mpn/generic/random2.c (gmp_rrandomb): Likewise.

2004-04-25  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (FORCE_DOUBLE): Don't use an asm with a match constraint
	on a memory output, apparently not supported and provokes a warning
	from gcc 3.4.

2004-04-24  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_leading_zeros_gcc_clz,
	count_trailing_zeros_gcc_ctz): New macros.
	(count_leading_zeros, count_trailing_zeros) [x86]: Use them on gcc
	3.4.

	* configure.in (x86-*-* gcc_cflags_cpu): Give a -mtune at the start of
	each option list, for use by gcc 3.4 to avoid deprecation warnings
	about -mcpu.

	* mpz/aorsmul.c, mpz/aorsmul_i.c, mpz/cfdiv_q_2exp.c,
	mpz/cfdiv_r_2exp.c, mpq/aors.c, mpf/ceilfloor.c: Give REGPARM_ATTR()
	on function definition too, as demanded by gcc 3.4.

2004-04-22  Kevin Ryde  <kevin@swox.se>

	* tests/rand/t-lc2exp.c (check_bigc1): New test.

	* doc/fdl.texi: Tweak @appendixsubsec -> @appendixsec to match our
	preference for this in an @appendix, and because texi2pdf doesn't
	support @appendixsubsec directly within an @appendix.

2004-04-20  Kevin Ryde  <kevin@swox.se>

	* doc/texinfo.tex: Update to 2004-04-07.08 from texinfo 4.7.
	* doc/gmp.texi, mpfr/mpfr.texi (@copying): Don't put a line break in
	@ref within @copying, recent texinfo.tex doesn't like that.

	* demos/perl/GMP.xs (static_functable): Treat cygwin the same as mingw
	DLLs.

	* */Makefile.in, install-sh: Update to automake 1.8.3.
	* ltmain.sh, aclocal.m4, configure: Update to libtool 1.5.6.

	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): Use a compile-time constant
	expression, rather than a configure test.
	* acinclude.m4, configure.in (GMP_C_RIGHT_SHIFT): Remove, no longer
	needed.
	* tests/t-hightomask.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* macos/configure (parse_top_configure): Look for PACKAGE_NAME and
	PACKAGE_VERSION now used by autoconf.
	(what_objects): Only demand 9 object files, as for instance occurs in
	the scanf directory.
	(asm files): Transform labels L(foo) -> Lfoo.  Take func name from
	PROLOGUE to support empty "EPILOGUE()".  Recognise and subsitute
	register name "define()"s.
	* macos/Makefile.in (CmnObjs): Add tal-notreent.o.

2004-04-19  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.h (SPEED_ROUTINE_MPN_ROOTREM): New #define.
	(speed_mpn_rootrem): Declare.
	* tune/common.c (speed_mpn_rootrem): New function.
	* tune/speed.c (routine): Add entry for mpn_rootrem.

2004-04-16  Kevin Ryde  <kevin@swox.se>

	* doc/fdl.texi: Update from FSF, just fixing a couple of typos.

	* macos/configure, macos/Makefile.in: Add printf and scanf directories.

	* tests/mpz/t-gcd.c (check_data): New function, exercising K6
	gcd_finda bug.

2004-04-14  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Reentrancy, Random State Initialization): Note
	gmp_randinit use of gmp_errno is not thread safe.  Reported by Vincent
	Lefèvre.

	* doc/gmp.texi (Random State Initialization): Add index entries for
	gmp_errno and constants.

	* mpn/m68k/README: Update _SHORT_LIMB -> __GMP_SHORT_LIMB.

	* configure.in (--enable-mpbsd): Typo Berkley -> Berkeley in help msg.

2004-04-12  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.xs (static_functable): New macro, use it for all
	function tables, to support mingw DLL builds.
	* demos/perl/INSTALL (NOTES FOR PARTICULAR SYSTEMS): Remove note on
	DLLs, should be ok now.

	* demos/perl/sample.pl: Print the module and library versions in use.

	* demos/perl/GMP.pm, Makefile.PL (VERSION): Set to '2.00'.
	* demos/perl/GMP.pm (COPYRIGHT): New in the doc section.

	* Makefile.am: Note 4.1.3 libtool versioning info, and REVISION policy.

	* tal-debug.c: Add <stdlib.h> for abort.

2004-04-07  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed.

	* mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c).

2004-04-07  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/k6/gcd_finda.asm: Correction jbe -> jb in initial setups.
	Zero flag is wrong here, it relects only the high limb of the compare,
	leading to n1>=n2 not satisfied and wrong results.  cp[1]==0x7FFFFFFF
	with cp[0]>=0x80000001 provokes this.

	* doc/gmp.texi (BSD Compatible Functions): Note "pow" name clash under
	the pow function description too.
	(Language Bindings): Add XEmacs (betas at this stage).  Reported by
	Jerry James.

	* tests/refmpn.c (refmpn_mod2): Correction to ASSERTs, r==a is allowed.

	* gen-psqr.c (generate_mod): Cast mpz_invert_ui_2exp args, for K&R.
	* gen-bases.c, gen-fib.c, gen-psqr.c: For mpz_out_str, use stdout
	instead of 0, in case a K&R treats int and FILE* params differently.

2004-04-04  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (BSWAP_LIMB) [amd64]: New macro.
	(FORCE_DOUBLE): Use this for amd64 too.

	* tests/amd64check.c, tests/amd64call.asm: New files, derived in part
	from x86check.c and x86call.asm.
	* tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add them.
	* configure.in (x86_64-*-* ABI=64): Use them.

2004-04-03  Kevin Ryde  <kevin@swox.se>

	* mpn/amd64/mode1o.asm: New file.
	* mpn/amd64/amd64-defs.m4 (ASSERT): New macro.

	* mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/pentium4/sse2/divrem_1.asm: Add
	note on how "dr" part of algorithm is handled.

	* mpn/x86/k7/dive_1.asm, mpn/x86/k7/mod_34lsub1.asm,
	mpn/x86/k7/mode1o.asm: Note Hammer (32-bit mode) speeds.

2004-03-31  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Language Bindings): Add GOO, MLGMP and Numerix.

	* mpf/mul_2exp.c, mpf/div_2exp.c: Rate u==0 as UNLIKELY.

2004-03-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/divrem_1.c: Fix typo.

	* mpn/generic/sqr_basecase.c: Fix typo.

2004-03-20  Kevin Ryde  <kevin@swox.se>

	* longlong.h (power, powerpc): Add comments on how we select this code.

	* gmp-h.in (mpz_get_ui): Use ?: instead of mask style, gcc treats the
	two identically but ?: is a bit clearer.

	* insert-dbl.c: Remove file, no longer used, scaling is now integrated
	in mpn_get_d.
	* Makefile.am (libgmp_la_SOURCES): Remove insert-dbl.c.
	* gmp-impl.h (__gmp_scale2): Remove prototype.

2004-03-17  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init, fake_cpuid_table): Add x86_64.

	* mpq/get_d.c: Use mpn_tdiv_qr, demand den>0 per canonical form.

2004-03-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and
	mpn_addmul_2s.

2004-03-14  Kevin Ryde  <kevin@swox.se>

	* mpf/mul_ui.c: Incorporate carry from low limbs, for exactness.
	* tests/mpf/t-mul_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
	divisor, since truncating can lose accuracy.
	* tests/mpf/t-div.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* tests/mpf/t-set_q.c, tests/mpf/t-ui_div.c (check_various): Amend
	bogus 99/4 test.
	* tests/mpf/t-ui_div.c (check_rand): Exercise r==v overlap.

	* tests/refmpf.c, tests/tests.h (refmpf_set_overlap): New function.

	* mpf/cmp_si.c [nails]: Correction, cast vval in exp comparisons, for
	when vval=-0x800..00 and limb==longlong.

	* mpf/cmp_si.c [nails]: Correction, return usign instead of 1 when
	uexp==2 but value bigger than an mp_limb_t.
	* tests/mpf/t-cmp_si.c (check_data): Add test cases.

	* tests/trace.c (mpf_trace): Use ABS(mp_trace_base) to allow for
	negative bases used for upper case hex in integer traces.

2004-03-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/sb_divrem_mn.c: Correct header comment.

2004-03-11  Kevin Ryde  <kevin@swox.se>

	* aclocal.m4, configure, ltmain.sh: Downgrade to libtool 1.5, version
	1.5.2 doesn't remove .libs/*.a files when rebuilding, which is bad for
	development when changing contents or with duplicate named files like
	we have.

	Revert this, ie restore AR_FLAGS=cq:
	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
	does this itself on detecting duplicate object filenames in piecewise
	linking mode.

	* randbui.c, randmui.c [longlong+nails]: Correction to conditionals
	for second limb.

	* mpz/aors_ui.h, mpz/cdiv_q_ui.c, mpz/cdiv_qr_ui.c, mpz/cdiv_r_ui.c,
	mpz/cdiv_ui.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr_ui.c, mpz/fdiv_r_ui.c,
	mpz/fdiv_ui.c, mpz/gcd_ui.c, mpz/iset_ui.c, mpz/lcm_ui.c,
	mpz/set_ui.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr_ui.c, mpz/tdiv_r_ui.c,
	mpz/tdiv_ui.c, mpz/ui_sub.c, mpf/div_ui.c, mpf/mul_ui.c
	[longlong+nails]: Amend #if to avoid warnings about shift amount.

2004-03-07  Kevin Ryde  <kevin@swox.se>

	* mpf/reldiff.c: Use rprec+ysize limbs for d, to ensure accurate
	result.  Inline mpf_abs(d,d) and mpf_cmp_ui(x,0), and rate the latter
	UNLIKELY.

	* mpf/ui_div.c: Use mpn_tdiv_qr.  Use just one TMP_ALLOC.  Use full
	divisor, since truncating can lose accuracy.
	* tests/mpf/t-ui_div.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set_q.c: Expand TMP_ALLOC_LIMBS_2, to make conditional clearer
	and avoid 1 limb alloc when not wanted.

	* gmp-impl.h (WANT_TMP_DEBUG): Define to 0 if not defined.
	(TMP_ALLOC_LIMBS_2): Use "if" within macro rather than "#if", for less
	preprocessor conditionals.

	* mpf/mul_2exp.c, mpf/div_2exp.c: Add some comments.

	* tests/refmpn.c (refmpn_sb_divrem_mn, refmpn_tdiv_qr): Nailify.

2004-03-04  Kevin Ryde  <kevin@swox.se>

	* gen-psqr.c (print): Add CNST_LIMB in PERFSQR_MOD_TEST, for benefit
	of K&R.
	* tests/mpn/t-perfsqr.c (PERFSQR_MOD_1): Use CNST_LIMB for K&R.

	* doc/configuration (Configure): Remove mkinstalldirs, no longer used.

	* acinclude.m4 (GMP_PROG_AR): Remove AR_FLAGS=cq, libtool 1.5.2 now
	does this itself on detecting duplicate object filenames in piecewise
	linking mode.

	* configure.in (hppa2.0*-*-*): Test sizeof(long) == 4 or 8 to verify
	ABI=2.0n versus ABI=2.0w.  In particular this lets CC=cc_bundled
	correctly fall back to ABI=2.0n (we don't automatically add CC=+DD64
	to that compiler, currently).

	* doc/gmp.texi (Reentrancy): Note C++ mpf_class constructors using
	global default precision.
	(Random State Miscellaneous): Describe gmp_urandomb_ui as giving N
	bits.
	(C++ Interface Floats): Describe operator= copying the value, not the
	precision, and what this can mean about copy constructor versus
	default constructor plus assignment.

	* mpf/set_q.c: Use mpn_tdiv_qr rather than mpn_divrem, so no shifting.
	Don't truncate the divisor, it can make the result inaccurate.
	* tests/mpf/t-set_q.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set.c: Use MPN_COPY_INCR, in case r==u and ABSIZ(u) > PREC(r)+1.
	No actual bug here, because MPN_COPY has thusfar been an alias for
	MPN_COPY_INCR, only an ASSERT failure.
	* tests/mpf/t-set.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* mpf/set.c, mpf/iset.c: Do MPN_COPY last, for possible tail call.

	* mpf/set_d.c: Rate d==0 as UNLIKELY.  Store size before extract call,
	to shorten lifespan of "negative".

	* mpf/init.c, mpf/init2.c, mpf/iset_d.c, mpf/iset_si.c,
	mpf/iset_str.c, mpf/iset_ui.c: Store prec before alloc call, for one
	less live quantity across that call.
	* mpf/init.c, mpf/init2.c, mpf/iset_str.c: Store size and exp before
	alloc call, to overlap with other operations.

	* tests/refmpf.c, tests/tests.h (refmpf_fill, refmpf_normalize,
	refmpf_validate, refmpf_validate_division): New functions.

	* tests/refmpn.c, tests/tests.h (refmpn_copy_extend,
	refmpn_lshift_or_copy_any, refmpn_rshift_or_copy_any): New functions.

	* tal-debug.c: Add <string.h> for strcmp.

	* tests/cxx/t-istream.cc (check_mpz, check_mpq, check_mpf): Use size_t
	for loop index, to quieten g++ warning.

2004-03-01  Torbjorn Granlund  <tege@swox.com>

	With Karl Hasselström:
	* mpn/generic/dc_divrem_n.c (mpn_dc_div_2_by_1): New function, with
	meat from old mpn_dc_divrem_n.  Accept scratch parameter.  Rewrite to
	avoid a recursive call.
	(mpn_dc_div_3_by_2): New function, with meat from old
	mpn_dc_div_3_halves_by_2.  Accept scratch parameter.
	(mpn_dc_divrem_n): Now just allocate scratch space and call new
	mpn_dc_div_2_by_1.

2004-02-29  Kevin Ryde  <kevin@swox.se>

	* longlong.h (count_leading_zeros) [alpha gcc]: New version, inlining
	mpn/alpha/cntlz.asm cmpbge technique.

	* aclocal.m4, configure, install-sh, missing, ltmain.sh,
	*/Makefile.in: Update to automake 1.8.2 and libtool 1.5.2.

	* doc/gmp.texi (C++ Interface Integers): Note / and % rounding follows
	C99 / and %.
	(Exact Remainder): Index entries for divisibility testing algorithm.

	* tune/time.c (speed_endtime): Return 0.0 for negative time measured.
	Revise usage comments for clarity.
	* tune/common.c (speed_measure): Recognise speed_endtime 0.0 for
	failed measurement.

	* tests/mpn/t-get_d.c (check_rand): Correction to nhigh_mask setup.

2004-02-27  Torbjorn Granlund  <tege@swox.com>

	* tune/tuneup.c (tune_dc, tune_set_str): Up param.step_factor.

	* tests/mpz/t-gcd.c: Decrease # of tests to 50.

2004-02-27  Kevin Ryde  <kevin@swox.se>

	* tests/devel/try.c: Add a comment that this is not for Cray systems.

	* mpf/set_q.c: Don't support den(q)<0, demand canonical form in the
	usual way.

2004-02-24  Torbjorn Granlund  <tege@swox.com>

	From Kevin:
	* mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization
	criterion met.

2004-02-22  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_OS_X86_XMM, GMP_PROG_CXX_WORKS):
	Remove files that might look like compiler output, so our "||"
	alternatives are not fooled.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add test for lshift_com code
	mis-compiled by certain IA-64 HP cc at +O3.

	* gmp-impl.h (USE_LEADING_REGPARM): Disable under prof or gprof, for
	the benefit of freebsd where .mcount clobbers registers.  Spotted by
	Torbjorn.
	* configure.in (WANT_PROFILING_PROF, WANT_PROFILING_GPROF): New
	AC_DEFINEs.

2004-02-21  Kevin Ryde  <kevin@swox.se>

	* configure.in (sparc64-*-*bsd*): Amend -m32 setup for ABI=32, so it's
	not used in ABI=64 on the BSD systems.

2004-02-18  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (gcdext_valid_p): New function.
	(ref_mpz_gcd): Deleted function.
	(one_test): Rearranged to call mpz_gcdext first, so that the
	returned value can be validated.
	(main): Don't use ref_mpz_gcd.

2004-02-18  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_TOOM3_MAX_N): Move to !WANT_FFT section.

	* tests/mpz/t-mul.c: Exclude special huge operands unless WANT_FFT.

	* mpz/rrandomb.c (gmp_rrandomb): Rewrite.

	* mpn/generic/mul_n.c (mpn_toom3_sqr_n): Remove write-only variable c5.

2004-02-18  Kevin Ryde  <kevin@swox.se>

	* mpf/iset_si.c, mpf/iset_ui.c, mpf/set_si.c, mpf/set_ui.c [nails]:
	Always store second limb, to avoid a conditional.

	* tests/mpf/t-get_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpf/t-get_si.c (check_limbdata): Further tests.
	* gmp-impl.h (MP_EXP_T_MAX, MP_EXP_T_MIN): New defines.

	* mpf/get_ui.c, mpf/get_si.c: Remove size==0 test, it's covered by
	other conditions.  Attempt greater clarity by expressing conditions as
	based on available data range.
	* mpf/get_si.c [nails]: Correction, don't bail on exp > abs_size,
	since may still have second limb above radix point available.
	* mpf/get_ui.c: Nailify.

2004-02-16  Kevin Ryde  <kevin@swox.se>

	* mpz/scan0.c, mpz/scan1.c: Use count_trailing_zeros, instead of
	count_leading_zeros on limb&-limb.

	* mpf/sqrt.c: Use "/ 2" for exp, avoiding C undefined behaviour on
	">>" of negatives.  Correction to comment, exp is rounded upwards.
	SIZ(r) always prec now, no need for tsize expression.  Store EXP(r)
	and SIZ(r) where calculated to reduce variable lifespans.  Make tsize
	mp_size_t not mp_exp_t, though of course those are currently the same.

	* gmp-h.in (GMP_ERROR_ALLOCATE, GMP_ERROR_BAD_STRING,
	GMP_ERROR_UNUSED_ERROR): Remove, never used or documented, and we
	don't want to use globals for communicating error information.

	* mpz/gcd_ui.c [nails]: Correction, actually return a value.

	* mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails==1]: Add code.

2004-02-15  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-jac.c (check_data): Remove unnecessary variable
	"answer".

2004-02-14  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_RIGHT_SHIFT): Note that it's "long"s which we're
	concerned about.

	* mpn/generic/mul_n.c: Add some remarks about toom3 high zero
	stripping.

	* mpn/generic/scan0.c, mpn/generic/scan1.c: Remove design issue
	remarks.  What to do about going outside `up' space is a problem, but
	anything to address it would be an incompatible change.

2004-02-11  Kevin Ryde  <kevin@swox.se>

	* longlong.h (power, powerpc): Use HAVE_HOST_CPU_FAMILY_power and
	HAVE_HOST_CPU_FAMILY_powerpc rather than various cpp defines.

	* gmp-impl.h: Add remarks about limits.h and Cray etc.

	* dumbmp.c (mpz_mul): Set ALLOC(r) for new data block used.  Reported
	by Jason Moxham.

	* mpn/pa32/README, mpn/pa64/README (REFERENCES): New sections.

2004-02-10  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Decrease # of tests run.

	* mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values.

2004-02-01  Torbjorn Granlund  <tege@swox.com>

	From Kevin:
	* config.guess: Recognize AMD's hammer processors, return x86_64.

2004-01-24  Kevin Ryde  <kevin@swox.se>

	* tests/mpf/t-sqrt.c (check_rand1): Further diagnostic printouts.

	* mpn/generic/sqrtrem.c (mpn_sqrtrem): Add ASSERT_MPN.
	(mpn_dc_sqrtrem): Add casts for K&R.

	* mpf/sqrt_ui.c: Nailify.

	* mpf/set_z.c: Do MPN_COPY last, for possible tail call.

	* doc/gmp.texi (Miscellaneous Float Functions): For mpf_random2, note
	exponent is in limbs.

2004-01-22  Kevin Ryde  <kevin@swox.se>

	* mpf/sqrt.c: Change tsize calculation to get prec limbs result
	always, previously got prec+1 when exp was odd.
	* tests/mpf/t-sqrt.c (check_rand1): New function, code from main.
	(check_rand2): New function.

	* mpf/sqrt_ui.c: Change rsize calculation to get prec limbs result,
	previously got prec+1.
	* tests/mpf/t-sqrt_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

	* tests/refmpf.c, tests/tests.h (refmpf_add_ulp,
	refmpf_set_prec_limbs): New functions.

	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Remove x86+m68k force to double,
	mpn_get_d now does this.  Remove res==1.0 check for round upwards,
	mpn_get_d now rounds towards zero.  Move exp store to make mpn_get_d a
	tail call.

	* configure.in (x86-*-*): Use ABI=32 rather than ABI=standard.
	Use gcc -m32 when available, to force mode on bi-arch amd64 gcc.
	* configure.in, acinclude.m4 (x86_64-*-*): Merge into plain x86 setups
	as ABI=64.  Support ABI=32, using athlon code.  Use gcc -mcpu=k8,
	-march=k8.
	(amd64-*-*): Remove pattern, config.sub only gives x86_64.
	* doc/gmp.texi (ABI and ISA): Add x86_64 dual ABIs.

	* mpn/amd64/README: Add reference to ABI spec.

2004-01-17  Kevin Ryde  <kevin@swox.se>

	* tune/README: Remove open/mpn versions of toom3, no longer exist.
	* tune/powerpc64.asm: Remove unused L(again).
	* tune/time.c (mftb): Note single mftb possible for powerpc64.

	* mpn/generic/mode1o.c: Use "c<s" to do underflow detection in last
	step, for better parallelism.

	* mpn/generic/get_d.c: Preserve comments about hppa fcnv,udw,dbl from
	previous mpz_get_d code.

	* tune/freq.c: Add some comments about systems not covered.

	* gmp-h.in (_GMP_H_HAVE_FILE): Add _MSL_STDIO_H for Metrowerks.
	Reported by Tomas Zahradnicky.

2004-01-16  Kevin Ryde  <kevin@swox.se>

	* configure.in (powerpc64-*-linux*): Try gcc64.  Try -m64 with
	"cflags_maybe" to get it used in all probing.  Add sizeof-long-8 test
	to check the mode is right if -m64 is not applicable.

2004-01-15  Kevin Ryde  <kevin@swox.se>

	* configure.in (--with-readline=detect): Check for readline/readline.h
	and readline/history.h.  Report result of detection.

2004-01-12  Niels Möller  <nisse@lysator.liu.se>

	* tests/tests.h: Added refmpn_free_limbs prototype.
	* tests/refmpn.c (refmpn_free_limbs): New function.

2004-01-11  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev6/slot.pl: New file, derived in part from
	mpn/x86/k6/cross.pl.

	* mpn/alpha/alpha-defs.m4 (ASSERT): New macro.

	* mpn/asm-defs.m4 (m4_ifdef): New macro, avoiding OSF 4.0 m4 bug.
	(m4_assert_defined): Use it.

	* mpn/alpha/default.m4, mpn/alpha/unicos.m4 (LDGP): New macro.
	* mpn/alpha/ev67/gcd_1.asm: Use it to re-establish gp after jsr.

	* configure.in, demos/calc/Makefile.am: Use -lcurses or -lncurses with
	readline, when available.

	* longlong.h (sub_ddmmss) [generic]: Use al<bl for the borrow rather
	than __x>al, since the former can be done without waiting for __x,
	helping superscalar chips, in particular alpha ev5 and ev6.

	* longlong.h (sub_ddmmss) [ia64]: New macro.

	* tests/t-sub.c: New file.
	* tests/Makefile.am (check_PROGRAMS): Add it.
	* tests/refmpn.c, tests/tests.h (refmpn_sub_ddmmss): New function.

2004-01-09  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/p6/mod_34lsub1.asm: New file, derived in part from
	mpn/x86/mod_34lsub1.asm.

	* configure.in (IA64_PATTERN): Use -mtune on gcc 3.4.

2004-01-07  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in, mp-h.in (__GMP_SHORT_LIMB): Renamed from _SHORT_LIMB, to
	keep in our namespace.  (Not actually used anywhere currently.)
	Reported by Patrick Pelissier.

	* mp-h.in: Use "! defined (__GMP_WITHIN_CONFIGURE)" in the same style
	as gmp-h.in (though mp-h.in is not actually used during configure).

	* mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]:
	Use __dllexport__ and __dllimport__ to keep out of application
	namespace.  Same previously done in gmp-h.in.

2004-01-06  Kevin Ryde  <kevin@swox.se>

	* configfsf.sub, configfsf.guess: Update to 2004-01-05.
	* configure.in (amd64-*-* | x86_64-*-*): Update comments on what
	configfsf.sub does.

2004-01-04  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/README (REFERENCES): Add tru64 assembly manuals.
	(ASSEMBLY RULES): Note what gcc says about !literal! etc.

2004-01-03  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev67/gcd_1.asm: New file.

	* mpn/x86/pentium4/sse2/rsh1add_n.asm: New file, derived in part from
	mpn/x86/pentium4/sse2/addlsh1_n.asm.

	* mpn/x86/p6/p3mmx/popham.asm: Note measured speeds.

	* mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not
	used, no such parameter.

	* mpn/generic/gcd.c: Use <stdio.h> for NULL.

	* doc/gmp.texi (Single Limb Division): Correction to tex expression
	for (1/2)x1.  And minor wording tweaks elsewhere.

	* gmp-impl.h (mpn_rsh1add_n, mpn_rsh1sub_n): Correction to comments
	about how carries returned.

	* longlong.h (umul_ppmm) [generic]: Add comments about squaring
	(dropped from tasks list)

2003-12-31  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.xs (scan0, scan1): Return ~0 for not-found.
	* demos/perl/GMP.pm: Describe this, remove the note about ULONG_MAX
	being the same as ~0 (which is not true in old perl).
	* demos/perl/test.pl: Update tests.
	* demos/perl/typemap (gmp_UV): New type.

	* demos/perl/test.pl (fits_slong_p): Comment out uv_max test, it won't
	necessarily exceed a long.

	* demos/perl/GMP.pm: Add a remark about get_str to the bugs section.

	* mpn/generic/sqrtrem.c, mpz/fac_ui.c, tests/mpf/reuse.c: Add casts
	for K&R.
	* tests/mpf/t-muldiv.c: Make ulimb, vlimb into ulongs, which is how
	they're used, for the benefit of K&R calling.

	* doc/gmp.texi (Square Root Algorithm): Add a summary of the algorithm.
	And add further index entries in various places.

	* mpz/lucnum_ui.c, mpz/lucnum2_ui.c: Use mpn_addlsh1_n when available.

	* gmp-impl.h, mpn/generic/mul_n.c (mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, mpn_rsh1sub_n): Move descriptions to gmp-impl.h with
	the prototypes, for ease of locating.

2003-12-29  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin.

	* mpn/sparc64/README: Remove mpn_Xmul_2, done.
	Add blurb about L1 cache conflicts.

2003-12-29  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R.

2003-12-27  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO.

	* Makefile.am (AUTOMAKE_OPTIONS): Restore this, giving no directory on
	ansi2knr to avoid a circular build rule.
	* configure.in (AM_INIT_AUTOMAKE): Note options also in Makefile.am.

	* configure.in (cflags_maybe): Don't loop adding cflags_maybe if the
	user has set CFLAGS.

2003-12-23  Kevin Ryde  <kevin@swox.se>

	* configure.in (*sparc*-*-*): Test sizeof(long)==4 or 8 for ABIs, to
	get the right mode when the user sets the CFLAGS.
	(testlist): Introduce "any_<abi>_testlist" to apply to all compilers.

	* demos/perl/typemap (MPZ_ASSUME, MPQ_ASSUME, MPF_ASSUME): Remove
	output rules, these are only meant for inputs.
	(MPZ_MUTATE): Remove, not used since changes for magic.

	* demos/perl/GMP.xs (mpz_class_hv, mpq_class_hv, mpf_class_hv): New
	variables, initialized in BOOT.
	* demos/perl/GMP.xs, demos/perl/typemap: Use them and explicit
	sv_bless, to save a gv_stashpv for every new object.

2003-12-22  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/mode1o.c, mpn/alpha/dive_1.c: Moved from ev5/mode1o.c and
	ev5/dive_1.c, these are good for ev4, and would like them in a generic
	alpha build.

2003-12-21  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Integer Logic and Bit Fiddling): Say "bitwise" in
	mpz_and, mpz_ior and mpz_xor, to avoid any confusion with what C means
	by "logical".  Reported by Rüdiger Schütz.

	* gmp-h.in (_GMP_H_HAVE_FILE): Note why defined(EOF) is not good.

2003-12-20  Kevin Ryde  <kevin@swox.se>

	* tune/speed.h (SPEED_TMP_ALLOC_LIMBS): Correction to last change,
	don't want "- 1" on the TMP_ALLOC_LIMBS.

	* demos/expr/expr.h: Test #ifdef MPFR_VERSION_MAJOR for when mpfr.h is
	included, not GMP_RNDZ which is now an enum.

	* demos/expr/exprfra.c (e_mpfr_ulong_p): Use mpfr_integer_p and
	mpfr_fits_ulong_p.
	(e_mpfr_get_ui_fits): Use mpfr_get_ui.

	* mpfr/*: Update to mpfr cvs head 2003-12-20.

	* configure, config.in: Update to autoconf 2.59.
	* */Makefile.in, configure, aclocal.m4, ansi2knr.c, install-sh,
	doc/mdate-sh: Update to automake 1.8.

	* mkinstalldirs: Remove, not required by automake 1.8.
	* doc/gmp.texi (Build Options): HTML is a usual target in automake 1.8.

	* configure.in (AC_PREREQ): Require autoconf 2.59.
	(AM_INIT_AUTOMAKE): Require automake 1.8.
	(AC_C_INLINE): Use rather than GMP_C_INLINE, now has #ifndef
	__cplusplus we want.
	(gettimeofday): Use AC_CHECK_FUNCS rather than our workaround code,
	autoconf now ok.

	* acinclude.m4 (GMP_C_INLINE): Remove.
	(GMP_H_EXTERN_INLINE): Use AC_C_INLINE.
	(GMP_PROG_AR): Comment on automake $ARFLAGS.

2003-12-19  Torbjorn Granlund  <tege@swox.com>

	* tests/mpf/t-get_d.c: Print message before aborting.

	* mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails.

2003-12-18  Torbjorn Granlund  <tege@swox.com>

	* mpz/get_d.c: Don't include longlong.h.

	* tests/mpz/t-mul.c (ref_mpn_mul): Handle un == vn specially, to avoid
	a dummy r/w outside of allocated area.

2003-12-18  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/unicos.m4 (ALIGN): Add comments on what GCC does.

	* configure.in (fat setups), acinclude.m4 (GMP_INIT): Obscure
	include() from automake 1.8 aclocal.
	* acinclude.m4: Quote names in AC_DEFUN, for automake 1.8 aclocal.

2003-12-13  Kevin Ryde  <kevin@swox.se>

	* mpq/get_d.c: Amend comments per mpn_get_d change.
	(limb2dbl): Remove, no longer used.

	* gmp-impl.h (DIVREM_1_NORM_THRESHOLD etc) [nails]: Correction to
	comments, MP_SIZE_T_MAX means preinv never.

	* gmp-impl.h (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD) [nails]:
	Remove overrides, divexact_1 and modexact_1 have been nailified.

	* mpz/inp_str.c (mpz_inp_str_nowhite): Use ASSERT_ALWAYS for EOF value
	requirement.

	* tests/refmpn.c (refmpn_rsh1add_n, refmpn_rsh1sub_n): Parens around
	GMP_NUMB_BITS - 1 with ">>", to quieten gcc -Wall.
	* tests/t-constants.c (main), tests/t-count_zeros.c (check_clz),
	tests/t-modlinv.c (one), tests/mpz/t-jac.c (try_si_zi),
	tests/mpq/t-get_d.c (check_onebit): : Correction to printfs.
	* tests/mpn/t-fat.c: Add <string.h> for memcpy.
	* tests/mpz/t-scan.c (check_ref): Remove unused variable "isigned".
	* tests/mpq/t-get_d.c (check_onebit): Remove unused variable "limit".
	* tests/mpf/t-set_si.c, tests/mpf/t-set_ui.c (check_data): Braces for
	initializers.
	* tests/devel/try.c (mpn_divexact_by3_fun, mpn_modexact_1_odd_fun):
	Correction to return values.

	* doc/gmp.texi (Miscellaneous Integer Functions): Note mpz_sizeinbase
	can be used to locate the most significant bit.  Reword a bit for
	clarity.

2003-12-11  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h: Change asm => __asm__, tabify.
	* mpz/get_d_2exp.c: Likewise.
	* mpf/get_d_2exp.c: Likewise.

	* tests/cxx/t-ops.cc: #if .. #endif out tests that cause ambiguities.

2003-12-10  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Generate operands with sizes as a geometric
	progression, to allow for larger operands and less varying timing.

2003-12-10  Kevin Ryde  <kevin@swox.se>

	* demos/perl/test.pl: Should be $] for perl version in old perl.

	* configure.in (sparc64-*-*): Single block of gcc configs for all
	systems, on unknown systems try both ABI 32 and 64.

	* configure.in (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New AC_SUBSTs with
	options to generate .def files with windows DLLs.
	* Makefile.am (libgmp_la_LDFLAGS, libgmpxx_la_LDFLAGS): Use them.

	* mpn/generic/gcd.c: Use ABOVE_THRESHOLD / BELOW_THRESHOLD, to follow
	convention and cooperate with tune/tuneup.c.

	* tune/common.c, tune/speed.c, tune/speed.h, tune/speed-ext.c,
	tune/tuneup.c (SPEED_TMP_ALLOC_LIMBS): Take variable as parameter
	rather than returning a value, avoids alloca in a function call.
	* tune/common.c, tune/speed.h (speed_tmp_alloc_adjust): Remove, now
	inline in SPEED_TMP_ALLOC_LIMBS, and using ptr-NULL for alignment
	extraction.

	* gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal,
	__gmp_binary_less, __gmp_binary_less_equal, __gmp_binary_greater,
	__gmp_binary_greater_equal, __gmp_cmp_function): Use mpfr_cmp_si and
	mpfr_cmp_d.
	* tests/cxx/t-ops.cc: Exercise this.

	* demos/perl/Makefile.PL: Don't install sample.pl and test2.pl.

	* demos/perl/GMP.xs (use_sv): Prefer PV over IV or NV to avoid any
	rounding.
	* demos/perl/test.pl: Exercise this.

	* demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
	* demos/perl/test.pl: Exercise this.

2003-12-08  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP.pm: Correction to canonicalize example.

	* demos/perl/GMP.xs: New type check scheme, support magic scalars,
	support UV when available.  Remove some unused local variables.
	(coerce_long): Check range of double.
	(get_d_2exp): Remove stray printf.

	* demos/perl/test.pl: Exercise magic, rearrange to make it clearer
	what's being tested.

2003-12-07  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (mul_toom3_threshold): Use MUL_TOOM3_THRESHOLD_LIMIT,
	for the benefit of ASSERT in mpn_mul_n.

	* tune/tuneup.c (tune_mul): Correction to toom3 param.min_size, should
	use MPN_TOOM3_MUL_N_MINSIZE.

	* tune/speed.c (check_align_option): Correction to printf format.
	* tune/freq.c (freq_sysctl_hw_model): Remove unused "i" variable.

	* scanf/doscan.c: Correction to a couple of trace printfs.
	Add <stdlib.h> for strtol.

	* tests/misc/t-scanf.c (test_sscanf_eof_ok): New function.
	(check_misc): Use it to suppress tests broken by libc.
	And should be EOF rather than -1 in various places.

2003-12-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/get_str.c (mpn_get_str, POW2_P case):
	Don't append extra '\0' byte.

2003-12-05  Niels Möller  <niels@lysator.liu.se>

	* tune/speed.h (mpn_gcd_accel): Added prototype.

2003-12-05  Torbjorn Granlund  <tege@swox.com>

	* randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions
	inside "!=".

	* mpf/get_str.c: Remove unused variable "fracn".

2003-12-03  Kevin Ryde  <kevin@swox.se>

	* configure.in, Makefile.am (LIBGMP_LDFLAGS, LIBGMPXX_LDFLAGS): New
	AC_SUBSTs, use them to create .def files with Windows DLLs.
	* doc/gmp.texi (Notes for Particular Systems): Update notes on mingw
	DLL with MS C.

	* mpz/export.c: Allow NULL for countp.
	* doc/gmp.texi (Integer Import and Export): Describe this.
	Suggested by Jack Lloyd.

	* mpn/x86/p6/aors_n.asm: New file, grabbing the K7 code.
	Superiority of this reported by Patrick Pelissier.

2003-11-30  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/ev67/popcount.asm, mpn/alpha/ev67/hamdist.asm: New files.

	* mpn/alpha/ev67: New directory.
	* configure.in (alphaev67, alphaev68, alphaev7*): Use it.

	* doc/gmp.texi (GMPrefu, GMPpxrefu): Change back to plain ref and
	pxref, remove macros.
	(GMPreftopu, GMPpxreftopu): Remove URL parameter, rename to GMPreftop
	and GMPpxreftop.
	(Debugging): Remove debauch, seems to have disappeared.
	(Language Bindings): Corrections to URLs for CLN, Omni F77, Pike.

2003-11-29  Kevin Ryde  <kevin@swox.se>

	* demos/perl/GMP/Mpf.pm (overload_string): Use $OFMT to avoid warnings
	about $#.

	* demos/perl/GMP.xs (fits_slong_p): Use LONG_MAX+1 to avoid possible
	rounding of 0x7F..FF in a double on 64-bit systems.

	* configure.in (ppc601-*-*): Remove this case, it never matched
	anything, the name adopted is powerpc601.
	(powerpc601-*-*): Use gcc -mcpu=601, xlc -qarch=601.

	* configure.in: Introduce ${cc}_cflags_maybe, used if they work.
	(*sparc*-*-*) [ABI=32]: Add gcc_cflags_maybe=-m32 to force that mode.

	* doc/gmp.texi (Introduction to GMP): Add AMD64 to optimizations list.
	(Build Options): Add cpu types alphaev7 and amd64.  Update texinfo
	html cross reference.

2003-11-28  Niels Möller  <nisse@lysator.liu.se>

	* mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed
	for compilation with --enable-assert).

2003-11-27  Niels Möller  <nisse@lysator.liu.se>

	* tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we
	don't need to forward declare the array.

2003-11-26  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/t-gcd.c: Generate random operands up to 32767 bits;
	decrease # of test to 1000.
	(gcd_values): Remove oversize test case.

2003-11-26  Niels Möller  <niels@lysator.liu.se>

	* tests/mpz/t-gcd.c (main): Added some tests with non-random
	input.

2003-11-25  Niels Möller  <nisse@lysator.liu.se>

	* gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros.

2003-11-25  Kevin Ryde  <kevin@swox.se>

	* doc/gmp.texi (Language Bindings): Add Axiom.

2003-11-22  Kevin Ryde  <kevin@swox.se>

	* mpn/alpha/README: More notes on assembler syntax variations.

	* mpn/alpha/alpha-defs.m4, mpn/alpha/unicos.m4 (unop): Should be ldq_u
	not bis, and move to alpha-defs.m4 since it can be happily used
	everywhere.

	* mpn/alpha/alpha-defs.m4, mpn/alpha/default.m4, mpn/alpha/unicos.m4
	(bigend): Move to alpha-defs.m4 and base it on HAVE_LIMB_BIG_ENDIAN or
	HAVE_LIMB_LITTLE_ENDIAN, so as not to hard code system endianness.

	* mpn/alpha/alpha-defs.m4: New file.
	* configure.in (alpha*-*-*): Use it.

2003-11-21  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-21.

	* mpn/alpha/ev5/com_n.asm: Change "not" to "ornot r31", since "not"
	isn't recognised by on Cray Unicos.  Add missing "gp" to PROLOGUE.
	* mpn/alpha/README: Add a note on "not".

2003-11-19  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: Slightly rework feed-in code, avoiding
	spurious reads beyond operand limits.

	* mpn/alpha/ev5/com_n.asm: Add ASM_START/ASM_END.

	* mpn/generic/mul_fft.c (mpn_fft_zero_p): Remove unused function.
	(mpn_lshift_com): Make static, nailify properly.

2003-11-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/diveby3.c: Use a "q" variable to make it clearer what
	the code is doing.

	* mpn/powerpc32/750/lshift.asm, mpn/powerpc32/750/rshift.asm: New
	files.

	* mpn/alpha/ev5/com_n.asm: New file.

	* doc/gmp.texi (Assembler Functional Units, Assembler Writing Guide):
	New sections by Torbjorn, tweaked by me.

2003-11-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32: Add power4/powerpc970 cycle counts.
	Use cmpwi instead of cmpi to placate darwin.

2003-11-15  Kevin Ryde  <kevin@swox.se>

	* config.guess: Add comments on MacOS "machine" command.

	* tests/devel/try.c (main): Use gmp_randinit_default explicitly on
	__gmp_rands, since RANDS doesn't allow seeding.

	* doc/gmp.texi (Assigning Integers): Remove notes on possible change
	to disallow whitespace, this would be an incompatible change and
	really can't be made.
	(Toom 3-Way Multiplication): Updates for Paul's new code.

	* mpn/generic/mul_n.c (toom3_interpolate, mpn_toom3_mul_n): Put
	if/else braces around whole of #if code, for readability.

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps
	etc.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-15.

2003-11-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br".

2003-11-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/aorslsh1_n.asm: New file.

2003-11-12  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add case provoking AIX power2
	assembler, test code by Torbjorn.
	* configure.in (power*-*-*): Add a comment about -mcpu=rios2 fallback.

	* tune/speed.c (main): Use gmp_randinit_default explicitly on
	__gmp_rands, since RANDS doesn't allow seeding.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-12.

	* gmp-impl.h, randmt.h (__gmp_randinit_mt_noseed): Move prototype to
	gmp-impl.h, for use by RANDS.

	* mpn/Makeasm.am (.s, .S, .asm): Quote $< in test -f, per automake.
	(.obj): Use test -f and $(CYGPATH_W) as per automake.

2003-11-11  Kevin Ryde  <kevin@swox.se>

	* configure.in: Make umul and udiv standard-optional objects, rather
	than under various extra_functions.

	* mpn/pa32/hppa1_1/pa7100/add_n.asm,
	mpn/pa32/hppa1_1/pa7100/addmul_1.asm,
	mpn/pa32/hppa1_1/pa7100/lshift.asm,
	mpn/pa32/hppa1_1/pa7100/rshift.asm,
	mpn/pa32/hppa1_1/pa7100/sub_n.asm,
	mpn/pa32/hppa1_1/pa7100/submul_1.asm: Use LDEF for labels.

	* mpf/set_str.c: Don't use memcmp for decimal point testing, just a
	loop is enough and avoids any chance of memcmp reading past the end of
	the given string.

	* randmts.c, randmt.h: New files.
	* Makefile.am (libgmp_la_SOURCES): Add them.
	* randmt.c: Move seeding to randmts.c, common defines in randmt.h.
	* gmp-impl.h (RANDS): Use __gmp_randinit_mt_noseed.
	* tests/misc.c (tests_rand_start): Use gmp_randinit_default
	explicitly, not RANDS.

	* mpn/ia64/ia64-defs.m4 (PROLOGUE_cpu): Use 32-byte alignment, for the
	benefit of itanium 2.
	* mpn/ia64/gcd_1.asm: Remove own .align 32.

	* mpn/ia64/ia64-defs.m4 (ALIGN): New define, using IA64_ALIGN_OK.

	* acinclude.m4 (GMP_ASM_IA64_ALIGN_OK): New macro.
	* configure.in (IA64_PATTERN): Use it.
	* mpn/ia64/README: Add notes on gas big endian align problem.

2003-11-08  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/aors_n.asm: Align loop to a multiple of 16.  Also align
	M4_function_n to a multiple of 16, to minimize alignment padding.
	Update P6 cycle counts reflecting improvements with new alignment.

2003-11-07  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (HAVE_HOST_CPU_alpha_CIX): New define.
	(ULONG_PARITY, popc_limb): Use it, to pick up ev7 as well as 67 and 68.
	* longlong.h (count_leading_zeros, count_trailing_zeros): Ditto.

	* doc/gmp.texi (Notes for Package Builds): Add notes on multi-ABI
	system packaging.
	(ABI and ISA): Add GNU/Linux ABI=64.
	(Binary GCD): Add notes on 1x1 GCD algorithms.

	* mpn/alpha/README: Add some literature references.

	* mpn/ia64/mode1o.asm: Various corrections to initial checkin.
	* mpn/ia64/ia64-defs.m4 (ASSERT): Correction to arg quoting.

2003-11-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/linux64.m4: New file.
	* configure.in (POWERPC64_PATTERN): Handle *-*-linux*.
	Use linux64.m4.

2003-11-05  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model): Relax to just look for "%u MHz",
	for the benefit of sparc cypress under netbsd 1.6.1.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-11-05.

	* mpn/alpha/ev5/dive_1.c: New file.

	* configure.in (x86_64-*-*): Accept together with amd64-*-*.

	* tune/speed.c: Check range of -x,-y,-w,-W alignment specifiers.
	* tune/speed.h (CACHE_LINE_SIZE): Amend comments.

2003-11-04  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd.

2003-11-03  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/mode1o.asm: New file.
	* mpn/ia64/ia64-defs.m4 (ASSERT): New macro.

	* tests/mpz/t-set_d.c (check_2n_plus_1): New test.

2003-11-01  Kevin Ryde  <kevin@swox.se>

	* mpz/fac_ui.c (BSWAP_ULONG) [limb==2*long]: Remove this case, it
	provokes code gen problems on HP cc.
	(BSWAP_ULONG) [generic]: Rename __dst variable to avoid conflicts with
	BITREV_ULONG.
	Fix by Jason Moxham.

	* mpn/powerpc32/mode1o.asm: Use 16-bit i*i for early out, no need to
	truncate divisor.  Amend stated 750/7400 speeds, and note operands
	that give the extremes.

	* mpz/set_d.c: Don't use a special case for d < MP_BASE_AS_DOUBLE, gcc
	3.3 -mpowerpc64 on darwin gets ulonglong->double casts wrong.

	* mpn/generic/diveby3.c: Show a better style carry handling in the
	alternative pipelined sample code.

	Revert this, the longlong.h macros need -mpowerpc64:
	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
	when bad.

2003-10-31  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-31.

	* mpn/powerpc64/README: Add subdirectory organisation notes.

	* tests/mpn/t-get_d.c: Don't use limits.h, LONG_MIN is wrong on gcc
	2.95 with -mcpu=ultrasparc.

	* acinclude.m4 (GMP_GCC_POWERPC64): New macro.
	* configure.in (powerpc64-*-darwin*): Use it to exclude -mpowerpc64
	when bad.

	* configure.in (powerpc64-*-darwin*) [ABI=mode32]: Use gcc -mcpu flags.

	* mpn/ia64/gcd_1.asm: Use "C" for comments.
	* mpn/ia64/README, mpn/ia64/ia64-defs.m4: Note this.

	* mpn/ia64/ia64-defs.m4: Renamed from default.m4, per other defs files.
	* configure.in (IA64_PATTERN): Update GMP_INCLUDE_MPN.

	* doc/gmp.texi (Notes for Particular Systems): Remove m68k ABI notes
	for -mshort and PalmOS, now works.
	(References): Correction, GMP Square Root proof already there, just
	wanting URL from RRRR 4475.

2003-10-29  Kevin Ryde  <kevin@swox.se>

	* configure.in (sparc*-*-*): Use gcc -m32 when that option works, to
	force 32-bit mode on dual 32/64 configurations like GNU/Linux.
	(sparc64-*-linux*): Add support for ABI=64.

	* mpn/generic/pre_divrem_1.c: In fraction part, use CNST_LIMB(0) with
	udiv_qrnnd_preinv to avoid warning about shift > type.

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-29.

	* tests/cxx/t-istream.cc: Avoid tellg() checks if putback() doesn't
	update that, avoids certain g++ 2.96 problems.

	* tests/mpn/t-fat.c: New file.
	* tests/mpn/Makefile.am (check_PROGRAMS): Add it.

	* configure.in (CPUVEC_INSTALL, ITERATE_FAT_THRESHOLDS): New macros
	for fat.h.
	* mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Use CPUVEC_INSTALL instead
	of memcpy.  Correction to location of "initialized" set.  Improve
	various comments.

2003-10-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/mul_1.asm: Change addcc => add in a few places.
	* mpn/sparc64/addmul_1.asm: Likewise.

	* mpn/sparc32/v9/mul_1.asm: Apply cross-jumping.
	* mpn/sparc32/v9/addmul_1.asm: Likewise.
	* mpn/sparc32/v9/submul_1.asm: Likewise.
	* mpn/sparc32/v9/sqr_diagonal.asm: Likewise.

2003-10-27  Kevin Ryde  <kevin@swox.se>

	* tests/cxx/t-misc.cc: Don't use <climits>, on g++ 2.95.4 (debian 3.0)
	-mcpu=ultrasparc LONG_MIN is wrong and kills the compile.

	* tests/cxx/t-istream.cc: Correction to tellg tests, don't assume
	streampos is zero based.

	* configure.in (HAVE_HOST_CPU_FAMILY_alpha): New define for config.h.
	* mpn/generic/get_d.c: Use it instead of __alpha for alpha workaround,
	since Cray cc doesn't define __alpha.

	* mpn/x86/README: Revise PIC coding notes a bit, add gcc visibility
	attribute.

2003-10-25  Kevin Ryde  <kevin@swox.se>

	* mpn/ia64/gcd_1.asm: New file.

	* tune/many.pl: Allow for PROLOGUE(fun,...), as used on alpha.

	* doc/gmp.texi (C++ Formatted Input): Describe base indicator handling.

	* tests/cxx/t-istream.cc: New file.
	* tests/cxx/Makefile.am: Add it.

	* cxx/ismpznw.cc: New file, integer input without whitespace ...
	* cxx/ismpz.cc: ... from here.
	* gmp-impl.h (__gmpz_operator_in_nowhite): Add prototype.
	* cxx/ismpq.cc: Rewrite using mpz input routines.  Change to accept a
	separate base indicator on numerator and denominator.  Fix base
	indicator case where "123/0456" would stop at "123/0".
	* Makefile.am, cxx/Makefile.am: Add cxx/ismpznw.cc.

	* tests/mpz/t-set_d.c: New file, derived from tests/mpz/t-set_si.c
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.

	* mpn/m68k/lshift.asm, mpn/m68k/rshift.asm: Support 16-bit int and
	stack alignment.
	* mpn/m68k/README: Add notes on this.
	* configure.in (SIZEOF_UNSIGNED): New define in config.m4.
	* mpn/m68k/m68k-defs.m4 (m68k_definsn): Add cmpw, movew.
	Reported by Patrick Pelissier.

	* mpn/m68k/t-m68k-defs.pl: Don't use -> with hashes, to avoid
	deprecation warnings from perl 5.8.

	* configure.in (viac3-*-*): Use just x86/pentium in $path not x86/p6.
	If gcc is to be believed the old C3s don't have cmov.

	* Makefile.am: Amend comments about not building from libtool
	convenience libraries.

	* mpn/asm-defs.m4 (PROLOGUE): Use m4_file_seen, for correct filename
	in missing EPILOGUE error messages.
	(m4_file_seen): Amend comments about where used.

	* Makefile.am (CXX_OBJECTS): Remove $U, C++ files are not subject to
	ansi2knr rules.

	* gmp-h.in (mpn_divmod_1): Use __GMP_CAST, to avoid warnings in
	applications using g++ -Wold-style-cast.

	* mpn/z8000/README: New file.

2003-10-22  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c (CONST_1024, CONST_NEG_1023,
	CONST_NEG_1022_SUB_53): Replace ALPHA_WORKAROUND with a non-gcc-ism,
	and use on Cray Unicos alpha too, which has the same problem.

	* configure.in (powerpc64-*-darwin*): Make ABI=32 available as the
	final fallback, remove mode64 until we know how it will work.

	* doc/gmp.texi (Build Options): Add powerpc970 to available CPUs.
	(ABI and ISA): Add mode32 for Darwin.

	* configure.in (gettimeofday): Use an explicit AC_TRY_LINK, to avoid
	known autoconf 2.57 problems with gettimeofday in AC_CHECK_FUNCS on
	HP-UX.

	* configure.in (powerpc*-*-*): Use ABI=32 instead of ABI=standard for
	the default 32-bit ABI.  Fixes powerpc64-*-aix* which is documented as
	choices "aix64 32" but had "aix64 standard".

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-22.

	* doc/gmp.texi (Notes for Particular Systems): Note m68k gcc -mshort
	and PalmOS calling conventions not supported.  Reported by Patrick
	Pelissier.
	(References): Add Paul Zimmermann's Inria 4475 paper.

2003-10-21  Kevin Ryde  <kevin@swox.se>

	* tests/mpn/t-instrument.c: Add mpn_addlsh1_n, mpn_rsh1add_n,
	mpn_rsh1sub_n, mpn_sub_nc, mpn_sublsh1_n.  Typo in mpn_preinv_divrem_1
	conditional.

2003-10-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/mode32/add_n.asm: New file.
	* mpn/powerpc64/mode32/sub_n.asm: New file.
	* mpn/powerpc64/mode32/mul_1.asm: New file.
	* mpn/powerpc64/mode32/addmul_1.asm: New file.
	* mpn/powerpc64/mode32/submul_1.asm: New file.

2003-10-19  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (AMD64): __x86_64__ => __amd64__.
	(64-bit powerpc): Only define carry-dependent macros if
	!_LONG_LONG_LIMB.

	* acinclude.m4 (POWERPC64_PATTERN): Add powerpc970-*-*.

	* configure.in (POWERPC64_PATTERN): Handle *-*-darwin*.
	(POWERPC64_PATTERN, *-*-aix*): Prepend powerpc64/mode64 to path_aix64.

	* mpn/powerpc64/mode64/mul_1.asm: Change cal => addi.
	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
	* mpn/powerpc64/sqr_diagonal.asm: Likewise.

	* mpn/powerpc64/mode64/mul_1.asm: Move from "..".
	* mpn/powerpc64/mode64/addmul_1.asm: Likewise.
	* mpn/powerpc64/mode64/submul_1.asm: Likewise.
	* mpn/powerpc64/mode64/divrem_1.asm: Likewise.
	* mpn/powerpc64/mode64/rsh1sub_n.asm: Likewise.
	* mpn/powerpc64/mode64/add_n.asm: Likewise.
	* mpn/powerpc64/mode64/addsub_n.asm: Likewise.
	* mpn/powerpc64/mode64/sub_n.asm: Likewise.
	* mpn/powerpc64/mode64/addlsh1_n.asm: Likewise.
	* mpn/powerpc64/mode64/diveby3.asm: Likewise.
	* mpn/powerpc64/mode64/rsh1add_n.asm: Likewise.
	* mpn/powerpc64/mode64/sublsh1_n.asm: Likewise.

	* mpn/powerpc64/lshift.asm: Handle mode32 ABI.
	* mpn/powerpc64/rshift.asm: Likewise.
	* mpn/powerpc64/umul.asm: Likewise.

	* tune/powerpc64.asm: Make it actually work.

2003-10-19  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c: Add a workaround for alpha gcc signed constant
	comparison bug.

	* gmpxx.h (gmp_randclass gmp_randinit_lc_2exp_size constructor): Throw
	std::length_error if size is too big.
	* tests/cxx/t-rand.cc (check_randinit): Exercise this.

	* mpn/x86/pentium4/sse2/addlsh1_n.asm: New file, derived in part from
	mpn/x86/pentium4/sse2/add_n.asm.

	* doc/gmp.texi (C++ Interface Integers, C++ Interface Rationals, C++
	Interface Floats): Note std::invalid_argument exception for invalid
	strings to constructors and operator=.
	(C++ Interface Random Numbers): Note std::length_error exception for
	size too big in gmp_randinit_lc_2exp_size.

2003-10-18  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr-2-0-2-branch 2003-10-18.

	* gmpxx.h (mpz_class, mpq_class, mpf_class, mpfr_class constructors
	and operator= taking string or char*): Throw std::invalid_argument if
	string cannot be converted.
	* tests/cxx/t-constr.cc, tests/cxx/t-assign.cc: Exercise this.

	* cxx/ismpz.cc, cxx/ismpq.cc, cxx/ismpf.cc: Use istream std::locale
	ctype facet for isspace when available.  Only accept space at the
	start of the input, same as g++ libstdc++.  Use ASSERT_NOCARRY to
	check result of mpz_set_str etc.
	* cxx/ismpf.cc: Don't accept "@" for exponent indicator.

	* tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Remove
	_open and _mpn variants of mpn_toom3_mul_n, only one style now.
	* tune/mul_n_open.c, tune/mul_n_mpn.c: Remove files.

	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.

	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use octal for character
	constants, hex is an ANSI-ism.

	* mpn/alpha/ev5/mode1o.c: Corrections to ASSERTs, as per
	mpn/generic/mode1o.c.

	* mpn/generic/diveby3.c: Add commented out alternative code and notes
	for taking the multiply off the dependent chain.  Amend/clarify some
	of the other comments.

	* configure.in (powerpc970-*-*): Use gcc -mcpu=970 when available.
	(powerpc7400-*-*): Fallback on gcc -mcpu=750 if -mcpu=7400 not
	available.

	* doc/gmp.texi (C++ Formatted Input): Note locale digit grouping not
	supported.
	(C++ Formatted Input, C++ Formatted Output): Cross reference class
	interface on overloading.

	* mpn/m68k/README: Add various ideas from doc/tasks.html.

	* mpn/m88k/README: New file.

2003-10-16  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize powerpc970.

2003-10-15  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize powerpc970 under MacOS.

2003-10-15  Kevin Ryde  <kevin@swox.se>

	* configure.in, acinclude.m4 (GMP_C_RIGHT_SHIFT): New test.
	* gmp-impl.h (LIMB_HIGHBIT_TO_MASK): New macro.
	(udiv_qrnnd_preinv2, udiv_qrnnd_preinv2gen): Use it.

	* mpn/amd64/amd64-defs.m4: New file, with a non-aligning PROLOGUE.
	* configure.in (amd64-*-*): Use it.

	* mpfr/*: Update to mpfr cvs 2003-10-15.

	* mpn/generic/get_d.c: Rewrite, simplifying and truncating towards
	zero unconditionally.
	* tests/mpn/t-get_d.c: Add various further tests.
	* gmp-impl.h (FORCE_DOUBLE): New macro.

	* gmp-h.in (__mpz_struct): Add comment on __mpz_struct getting into
	C++ mangled function names.

	* doc/gmp.texi (Build Options): Update notes for new doc subdir.
	(Low-level Functions): Note mpn functions don't check for zero limbs
	etc, it's up to an application to strip.

	* doc/configuration (Configure): mdate-sh now in doc subdir, add
	generated fat.h.

2003-10-13  Kevin Ryde  <kevin@swox.se>

	* mpn/powerpc32/mod_34lsub1.asm: New file.

	* mpn/powerpc32/diveby3.asm, mpn/powerpc64/diveby3.asm: src[] in
	second operand of mullw, to allow possible early-out, which the
	0xAA..AB inverse cannot give.  This improvement noticed by Torbjorn.

	* acinclude.m4 (GMP_ASM_LSYM_PREFIX): Print to config.log whether
	local label is purely temporary or appears in object files, for
	development purposes.

	* doc/gmp.texi, doc/fdl.texi, doc/texinfo.tex, doc/mdate-sh: Moved
	from top-level.
	* doc/Makefile.am: New file.
	* configure.in (AC_OUTPUT): Add doc/Makefile.
	* Makefile.am (SUBDIRS): Move doc subdirectory from EXTRA_DIST.
	(info_TEXINFOS, gmp_TEXINFOS): Moved to doc/Makefile.am.
	* mpfr/Makefile.am (mpfr_TEXINFOS): fdl.texi now in doc subdir.
	(TEXINFO_TEX): texinfo.tex now in doc subdir.
	(AM_MAKEINFOFLAGS): Set -I to doc subdir.

	* mpz/and.c: For positive/positive, use mpn_and_n, rate a realloc as
	UNLIKELY.

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Don't test
	for high zero limbs.

2003-10-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/diveby3.asm: New file (trivial edits of
	powerpc32/diveby3.asm).

	* mpn/powerpc32/diveby3.asm: Update cycle counts with more processors.
	* mpn/powerpc32/sqr_diagonal.asm: Likewise.

	* mpn/pa64/add_n.asm: Correct PA8500 cycle counts.
	* mpn/pa64/sub_n.asm: Likewise.

	* mpn/m68k/aors_n.asm (INPUT PARAMETERS): Fix typo.
	* mpn/m68k/lshift.asm: Likewise.
	* mpn/m68k/rshift.asm: Likewise.

	* mpn/m68k/README: Correct an URL; add some STATUS comments.

	* mpn/powerpc32/addlsh1_n.asm: New file.
	* mpn/powerpc32/sublsh1_n.asm: New file.

2003-10-12  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/divrem_1.c, mpn/sparc64/mod_1.c: New files.
	* mpn/sparc64/sparc64.h (HALF_ENDIAN_ADJ, count_leading_zeros_32,
	invert_half_limb, udiv_qrnnd_half_preinv): New macros.

	* gmp-impl.h (udiv_qrnnd_preinv2): Use a ? : for getting the n1 bit,
	so as not to depend on signed right shifts being arithmetic.

	* mpn/powerpc32/diveby3.asm: New file.

	* mpn/generic/divrem_1.c: Use CNST_LIMB(0) to avoid warnings from
	udiv_qrnnd_preinv about shift count when int<long.  Do the same with
	udiv_qrnnd, for consistency.

	* Makefile.am (install-data-hook): Print a warning recommending "make
	check" to watch out for compiler bugs.  Proposed by Torbjorn.

2003-10-11  Torbjorn Granlund  <tege@swox.com>

	* mpn/asm-defs.m4: Handle rsh1aors_n.

	* configure.in (tmp_mulfunc): Handle rsh1aors_n.

2003-10-11  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/diveby3.asm: Remove non-PIC RODATA memory
	access for 0xAAAAAAAB constant.

	* gmp-impl.h (popc_limb, ULONG_PARITY) [ev67, ev68]: Add gcc asm
	versions using ctpop.

	* mpn/x86/k6/aorsmul_1.asm: Tweak some comments, remove M4_description
	and M4_desc_retval used only in comments.

	* mpn/x86/k6/mul_basecase.asm: Add comment on using mpn_mul_1.

2003-10-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/addlsh1_n.asm: Tweak for 0.25 c/l better loop speed.
	* mpn/powerpc64/sublsh1_n.asm: Likewise.

2003-10-09  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-10-09.

	* tests/devel/try.c (_SC_PAGESIZE): Define from _SC_PAGE_SIZE on
	systems which use that, eg. hpux 9.

2003-10-07  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model): Correction to last sscanf	change.

	* configure.in: Check for psp_iticksperclktick in struct pst_processor.
	* tune/freq.c (freq_pstat_getprocessor): Use this.

	* tests/devel/try.c (divisor_array): Add a couple of half-limb values.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Correction to last change, need to
	set result "yes" when cross compiling.

2003-10-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c: Use __GMPN_ADD_1/_GMPN_SUB_1 instead of
	mpn_add_1 and mpn_sub_1.

	* mpn/pa64/aorslsh1_n.asm: Schedule register save and restore code.

2003-10-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/pa64/mul_1.asm: Misc comment cleanups.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

	* mpn/pa64/README: Correct cycle counts.

	* mpn/pa64/aorslsh1_n.asm: New file.

2003-10-04  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_sysctl_hw_model, freq_sunos_sysinfo,
	freq_sco_etchw, freq_bsd_dmesg, freq_irix_hinv): Demand matching of
	MHz etc at end of sscanf format string.  In particular need this for
	freq_bsd_dmesg on i486-pc-freebsd4.7 to avoid the 486 cpu being used
	for the frequency.

	* tests/misc.c, tests/tests.h (tests_setjmp_sigfpe,
	tests_sigfpe_handler, tests_sigfpe_done, tests_sigfpe_target,
	tests_dbl_mant_bits): New.

	* configure.in (viac3*-*-*): Add gcc VIA c3 options.

	* mpfr/*: Update to mpfr cvs 2003-10-04.

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n,
	refmpn_rsh1add_n, refmpn_rsh1sub_n): Add ASSERTs for operand overlaps.
	* tests/tests.h (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
	refmpn_rsh1sub_n): Add prototypes.

	* tests/devel/try.c, tune/many.pl: Add mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, mpn_rsh1sub_n.

2003-10-03  Torbjorn Granlund  <tege@swox.com>

	* tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n,
	refmpn_rsh1sub_n): New functions.

2003-10-03  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (toom3_interpolate): Use mpn_add_1/mpn_sub_1
	instead of MPN_INCR_/MPN_DECR_U.

2003-10-02  Torbjorn Granlund  <tege@swox.com>

	* configure.in (ia64*-*-hpux*): Fall back to +O1, not +O.

2003-10-02  Kevin Ryde  <kevin@swox.se>

	* configure.in (ia64*-*-hpux*): For cc, let +O optimization level
	fallback if +O3 doesn't work.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add a test of __builtin_alloca
	when available, to pick up Itanium HP-UX cc internal errors in +O2.
	Provoking code by Torbjorn.

2003-10-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/asm-defs.m4: Handle aorslsh1_n.

	* configure.in (tmp_mulfunc): Handle aorslsh1_n.

2003-10-01  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Make bad ARM last byte into a
	separate case and consider it non-IEEE, since it looks like this is
	due to some sort of restricted or incorrect software floats.

	* demos/calc/Makefile.am: Use automake yacc/lex support, seems fine in
	separate objdir now.

	* cxx/dummy.cc: Moved from top-level dummy.cc.
	* Makefile.am (libgmpxx_la_SOURCES): Update to cxx/dummy.cc,
	correction to comment about this.

2003-09-30  Torbjorn Granlund  <tege@swox.com>

	* demos/pexpr.c: Correct documentation of -split.
	(TIME): Remove cast of result to double.
	(main): Change timing variables to int.
	(main): #ifdef LIMIT_RESOURCE_USAGE, don't convert numbers of more than
	100000 digits.

2003-09-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/*/*.asm: Clean up spacing, tabify.

	* mpn/alpha/rshift.asm: Table cycle counts.
	* mpn/alpha/lshift.asm: Likewise.
	* mpn/alpha/ev5/rshift.asm: Likewise.
	* mpn/alpha/ev5/lshift.asm: Likewise.
	* mpn/alpha/ev6/add_n.asm: Likewise.
	* mpn/alpha/ev6/sub_n.asm: Likewise.

	* mpn/pa64/mul_1.asm: Fix comment typo.
	* mpn/pa64/addmul_1.asm: Likewise.
	* mpn/pa64/submul_1.asm: Likewise.

2003-09-27  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info.

	* mpn/powerpc64/rshift.asm: Rewrite.
	* mpn/powerpc64/lshift.asm: Rewrite.

2003-09-25  Torbjorn Granlund  <tege@swox.com>

	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): Conditionalize on
	corresponding HAVE_NATIVE_*.

2003-09-25  Kevin Ryde  <kevin@swox.se>

	* mpz/combit.c: Use GMP_NUMB_BITS not BITS_PER_MP_LIMB.

	* demos/expr/exprfr.c: Allow for mpfr_inf_p, mpfr_nan_p and
	mpfr_number_p merely returning non-zero, rather than 1 or 0.

	* demos/expr/exprfr.c, demos/expr/t-expr.c: Add erf, integer_p, zeta.

	* demos/expr/Makefile.am (LDADD): Update comments on $(LIBM).

2003-09-24  Torbjorn Granlund  <tege@swox.com>

	* tune/speed.c (routine): Add entires for mpn_addlsh1_n, mpn_sublsh1_n,
	mpn_rsh1add_n, and mpn_rsh1sub_n.

	* tune/speed.h: Declare speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, and speed_mpn_rsh1sub_n.

	* tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n,
	speed_mpn_rsh1add_n, speed_mpn_rsh1sub_n): New functions.

	* gmp-impl.h: Declare mpn_addlsh1_n, mpn_sublsh1_n, mpn_rsh1add_n, and
	mpn_rsh1sub_n.

	* mpn/asm-defs.m4: Add define_mpn's for addlsh1_n, sublsh1_n,
	rsh1add_n, and rsh1sub_n.

	* mpn/powerpc64/*.asm: Add cycle counts in consistent style.  Misc
	styling edits.

	* configure.in: Add #undefs for HAVE_NATIVE_mpn_addlsh1_n,
	HAVE_NATIVE_mpn_sublsh1_n, HAVE_NATIVE_mpn_rsh1add_n,
	HAVE_NATIVE_mpn_rsh1sub_n.
	(gmp_mpn_functions_optional): List addlsh1_n, sublsh1_n, rsh1add_n,
	and rsh1sub_n.

2003-09-24  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-09-24.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files.

2003-09-23  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128.

2003-09-23  Kevin Ryde  <kevin@swox.se>

	* gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const.

2003-09-22  Torbjorn Granlund  <tege@swox.com>

	* tune/mul_n_mpn.c: (__gmpn_sqr_n): New #define.
	* tune/mul_n_open.c (__gmpn_sqr_n): New #define.

	* mpn/generic/mul.c (mpn_sqr_n): Move from here...
	* mpn/generic/mul_n.c (mpn_sqr_n): ...to here.
	(mpn_sqr_n): Allocate workspace for toom3 using	TMP_* mechanism except
	for very large operands when !WANT_FFT.

	* mpn/generic/mul_n.c: Add a missing ";". Misc comment fixes.

	* mpn/generic/mul.c: Remove spurious #include <stdio.h>.

	* mpn/x86/k7/gmp-mparam.h: Retune.

	* mpn/generic/mul_n.c (mpn_mul_n): Allocate workspace for toom3 using
	TMP_* mechanism except for very large operands when !WANT_FFT.

	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE):
	Define conditionally on WANT_FFT and HAVE_NATIVE_mpn_sublsh1_n.
	(MPN_TOOM3_MAX_N): New #define.

	* mpn/generic/sqr_basecase.c: Use mpn_addlsh1_n when available.

	* mpn/generic/mul_n.c: Use proper form for HAVE_NATIVE macros.

2003-09-22  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-09-22.

2003-09-21  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/gmp-mparam.h (USE_PREINV_DIVREM_1,
	USE_PREINV_MOD_1): Set to 1 for new asm versions.

	* mpfr/*: Update to mpfr cvs 2003-09-21.

2003-09-21  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n): Conditionally use
	mpn_sublsh1_n, mpn_rsh1add_n and mpn_rsh1sub_n, in addition to
	mpn_addlsh1_n.  Avoid all copying, at the expense of some additional
	workspace.

	* gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Accomodate
	latest toom3 code.

2003-09-19  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm:
	New files.

2003-09-16  Kevin Ryde  <kevin@swox.se>

	* tune/speed.c (run_one): Don't scale the -1.0 not-available return.
	Print "n/a" for times not-available.

2003-09-13  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (toom3_interpolate): New function.
	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Call toom3_interpolate.

2003-09-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove unused
	variables.
	(mpn_toom3_mul_n, mpn_toom3_sqr_n): Use offset `+ 1', not `+ 2' in last
	MPN_DECR_U calls.

2003-09-12  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite.

2003-09-12  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Reformulate
	to use the same form as MPN_TOOM3_MUL_N_TSIZE.
	(MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_SQR_N_TSIZE): Update for new Toom3
	code requirements.
	* mpn/generic/mul_n.c (evaluate3, interpolate3, add2Times): Remove.
	(USE_MORE_MPN): Remove.

2003-08-31  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-08-31.

2003-08-30  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-08-30.

2003-08-29  Torbjorn Granlund  <tege@swox.com>

	* mpn/amd64/README: New file.

2003-08-23  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_getsysinfo): Correction to speed_cycletime value
	established.

	* mpz/rootrem.c, gmp-h.in, gmp.texi (mpz_rootrem): Don't return
	exactness indication, can get that from testing the remainder.

	* mpn/x86/k7/aors_n.asm, mpn/x86/k7/mmx/copyi.asm: Amend to comments
	about loads and stores and what speed should be possible.

2003-08-19  Kevin Ryde  <kevin@swox.se>

	* longlong.h (add_ssaaaa, sub_ddmmss) [hppa 64]: Move down into main
	__GNUC__ block.  Exclude for _LONG_LONG_LIMB (ie. ABI=2.0n) since
	these forms are only for ABI=2.0w.

	* longlong.h (count_leading_zeros) [__mcpu32__]: Check __mcpu32__ to
	avoid bfffo on GCC 3.4 in CPU32 mode.  Reported by Bernardo Innocenti.

	* longlong.h (count_trailing_zeros) [x86_64]: Use "%q0" to force
	64-bit register destination.  Pointed out by Torbjorn.

	* mpz/combit.c: Correction to carry handling when extending a
	negative, and use __GMPN_ADD_1.  Correction to complement limb for a
	negative when there's a non-zero low limb.
	* tests/mpz/bit.c (check_clr_extend, check_com_negs): Exercise these.

	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add
	get_d_2exp.
	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Rand.pm,
	demos/perl/test.pl: Add gmp_urandomb_ui, gmp_urandomm_ui.
	(GMP::Rand::randstate): Accept a randstate object to copy.
	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/GMP/Mpz.pm,
	demos/perl/test.pl: Add combit, rootrem.

2003-08-19  Torbjorn Granlund  <tege@swox.com>

	* tune/Makefile.am (EXTRA_DIST): Add amd64.asm.

2003-08-17  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h [__MPFR_H]: Include full <iostream> for inlines.
	* tests/cxx/t-headfr.cc: New file, exercising this.
	* tests/cxx/Makefile.am: Add it.

	* tests/cxx/t-constr.cc: Include config.h for WANT_MPFR.

	* gmpxx.h: Correction to temp variable type in mpf -> mpfr assignment.
	Reported by Derrick Bass.
	* tests/cxx/t-assign.cc (check_mpfr): Exercise this.

	* configure.in (WANT_MPFR): AC_DEFINE this, for the benefit of
	tests/cxx/t-*.cc.  (Was always meant to have been defined.)
	* tests/cxx/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpfr.

	* gmpxx.h: __gmp_default_rounding_mode -> __gmpfr_default_rounding_mode
	(struct __gmp_hypot_function): Correction to mpfr_hypot addition.
	* tests/cxx/t-misc.cc (check_mpfr_hypot): Corrections to mpfr/long
	tests.

2003-08-16  Torbjorn Granlund  <tege@swox.com>

	* configure.in (amd64): New.

	* mpn/amd64/gmp-mparam.h: New file.

	* tune/amd64.asm: New file, derived in part from tune/pentium.asm.

2003-08-15  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_irix_hinv): Reinstate, for the benefit of IRIX 6.2.
	(freq_attr_get_invent): Conditionalize on INFO_LBL_DETAIL_INVENT too.

2003-08-14  Kevin Ryde  <kevin@swox.se>

	* mpq/get_d.c: Use mpn_get_d.
	* tests/mpq/t-get_d.c (check_onebit): New test.

	* gmp.texi (Notes for Particular Systems): Under x86 cpu types, note
	i386 is a fat binary, remove pentium4 recommendation since i386 is now
	quite reasonable for p4.
	(Notes for Particular Systems): Under Windows DLLs, remove caveat
	about --enable-cxx now ok, update .lib creation for new libtool,
	remove .exp not needed for MS C.
	(Notes for Package Builds): i386 is a fat binary.
	(Reentrancy): Remove SCO ctype.h note, don't want to list every system
	misfeature, and was quite possibly for non-threading mode anyway.
	(Autoconf): Remove notes on gmp 2 detection, too old to want to
	encourage anyone to use.
	(Karatsuba Multiplication): Correction to threshold increase/decrease
	for a and b terms.  Reported by Richard Brent and Paul Zimmermann.
	Also add various further index entries.

	* tune/freq.c (freq_attr_get_invent): New function.
	(freq_irix_hinv): Remove, in favour or freq_attr_get_invent.
	* configure.in (AC_CHECK_FUNCS): Add attr_get.
	(AC_CHECK_HEADERS): Add invent.h, sys/attributes.h, sys/iograph.h.

2003-08-03  Kevin Ryde  <kevin@swox.se>

	* tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT.

2003-08-02  Kevin Ryde  <kevin@swox.se>

	* mpn/asm-defs.m4: Tweak some comments, add hpux11 to m4wrap 0xFF
	problem systems.

	* configure.in (*-*-sco3.2v5*): Remove lt_cv_archive_cmds_need_lc=no,
	since libtool no longer uses it.  This was a workaround fixing ctype.h
	in SCO 5 shared libraries; not sure if libtool now gets it right on
	its own, let's hope so.

	* configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Remove, libtool no
	longer demands HOST_CC.

	* configure.in: When C or C++ compiler not found, refer user to
	config.log.

	* configure.in (i386-*-*): Turn i386 into a fat binary build.
	* mpn/x86/fat/fat.c, mpn/x86/fat/fat_entry.asm,
	mpn/x86/fat/gmp-mparam.h, mpn/x86/fat/gcd_1.c, mpn/x86/fat/mode1o.c:
	New files.
	* gmp-impl.h (struct cpuvec_t) [x86 fat]: New structure.
	* longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB) [x86 fat]: Define.
	* mpn/asm-defs.m4 (foreach): New macro.
	* mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): New define.
	* mpn/x86/sqr_basecase.asm: New file, primarily as a fallback for fat
	binaries.
	* mpn/x86/p6/gmp-mparam.h, mpn/x86/p6/mmx/gmp-mparam.h: Add comments
	about fat binary SQR_KARATSUBA_THRESHOLD for p6 and p6/mmx.

	* configure.in: Add various supports for fat binaries, via fat_path,
	fat_functions and fat_thresholds variables.
	* acinclude.m4 (GMP_STRIP_PATH): Mung $fat_path too.
	(GMP_FAT_SUFFIX, GMP_REMOVE_FROM_LIST): New macros.
	* gmp-impl.h: Add various supports for fat binaries.
	(DECL_add_n etc): New macros.
	(mpn_mul_basecase etc): Define only if not already defined.
	* mpn/asm-defs.m4 (m4_config_gmp_mparam): Mention fat binary.
	(MPN): Use m4_unquote, for the benefit of fat binary name expansion.
	* doc/configuration: Notes on fat binaries.
	* gmp-impl.h (MUL_TOOM3_THRESHOLD_LIMIT): Define always.
	(MUL_KARATSUBA_THRESHOLD_LIMIT): New define.
	* mpn/generic/mul.c, mpn/generic/mul_n.c: Use these.
	* tune/divrem1div.c, tune/divrem1inv.c, tune/mod_1_div.c,
	tune/mod_1_inv.c: Define OPERATION_divrem_1 and OPERATION_mod_1, to
	tell fat.h what's being done.

	* config.guess (alpha-*-*): Update comments on what configfsf.guess
	does and doesn't do for us.

2003-07-31  Kevin Ryde  <kevin@swox.se>

	* config.guess: Remove $dummy.o files everywhere, in case vendor
	compilers produce that even when not asked.

	* demos/perl/GMP.xs (class_or_croak): Rename "class" parameter to
	avoid C++ keyword.
	(coerce_ulong, coerce_long): Move croaks to stop g++ 3.3 complaining
	about uninitialized variables.

	* demos/perl/INSTALL: Add notes on building with a DLL.

	* longlong.h (count_trailing_zeros) [x86_64]: Ensure bsfq destination
	is a 64-bit register.  Diagnosed by Francois G. Dorais.

2003-07-31  Torbjorn Granlund  <tege@swox.com>

	* longlong.h [ppc]: Remove nested test for vxworks.

2003-07-24  Kevin Ryde  <kevin@swox.se>

	* gmpxx.h (struct __gmp_binary_multiplies): Use mpz_mul_si for
	mpz*long and long*mpz.
	* tests/cxx/t-ops.cc (check_mpz): Exercise mpz*long and mpz*ulong.

	* cxx/ismpf.cc: Use std::locale decimal point when available.  Expect
	localeconv available always.
	* tests/cxx/t-locale.cc: Enable check_input tests.

	* gmpxx.h (struct __gmp_hypot_function): Use mpfr_hypot.
	* tests/cxx/t-misc.cc (check_mpfr_hypot): New tests.

	* tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-ops.cc,
	tests/cxx/t-prec.cc, tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc:
	Include config.h for WANT_MPFR.

	* tests/mpz/bit.c (check_single): Correction to a diagnostic print.

2003-07-24  Niels Möller  <nisse@lysator.liu.se>

	* mpz/combit.c: New file.
	* Makefile.am, mpz/Makefile.am: Add it.
	* gmp-h.in (mpz_combit): Add prototype.
	* tests/mpz/bit.c (check_single): Exercise mpz_combit.

2003-07-16  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/get_d.c: Correction to infinity handling for large exp.

2003-07-14  Kevin Ryde  <kevin@swox.se>

	* mpz/get_d.c, mpz/get_d_2exp.c, mpf/get_d.c, mpf/get_d_2exp.c: Use
	mpn_get_d.

	* mpn/generic/get_d.c: New file, based on mpz/get_d.c and insert-dbl.c.
	* configure.in, mpn/Makefile.am: Add it.
	* gmp-impl.h (mpn_get_d): Add prototype.

	* tests/mpn/t-get_d.c: New file.
	* tests/mpn/Makefile.am: Add it.

	* tests/mpz/t-get_d_2exp.c (check_onebit, check_round): Test negatives.
	(check_onebit): Add a few more bit sizes.

	* tests/misc.c, tests/tests.h (tests_isinf): New function.

2003-07-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (GMP_PROG_CXX_WORKS): Include $CPPFLAGS, same as
	automake does in the actual build.

	* acinclude.m4 (GMP_PROG_CXX_WORKS): In the namespace test, declare
	namespace before trying to use.  In std iostream test, provoke a
	failure from Compaq C++ in pre-standard mode.

2003-07-08  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Use separate compiles for various
	known problems, and indicate to the user the reason for rejecting.
	(GMP_PROG_CXX_WORKS): Ditto, and insist on being able to execute each
	compiled program.

2003-07-05  Kevin Ryde  <kevin@swox.se>

	* config.sub: Add comments to our alias transformations.

	* configfsf.sub, configfsf.guess: Update to 2003-07-04.

	* acinclude.m4 (GMP_PROG_CC_WORKS, GMP_PROG_CC_WORKS_LONGLONG): Show
	failing program in config.log, per other autoconf tests.

	* configure.in (i786-*-*): Recognise as pentium4, per configfsf.sub.

2003-06-28  Kevin Ryde  <kevin@swox.se>

	* mpz/get_d_2exp.c, mpf/get_d_2exp.c: Avoid res==1.0 when floats round
	upwards.

	* tests/mpz/t-get_d_2exp.c: New file.
	* tests/mpz/Makefile.am (check_PROGRAMS): Add it.
	* tests/mpf/t-get_d_2exp.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.
	* tests/x86call.asm, test/tests.h (x86_fldcw, x86_fstcw): New
	functions.
	* tests/misc.c, tests/tests.h (tests_hardware_getround,
	tests_hardware_setround): New functions.

2003-06-25  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/dive_1.c: New file.

	* mpn/sparc64/sparc64.h: New file.
	* mpn/sparc64/mode1o.c: Remove things now in sparc64.h.

	* mpfr/*: Update to mpfr cvs 2003-06-25.

	* acinclude.m4 (GMP_PROG_CC_WORKS): In last change provoking gnupro
	gcc, don't use ANSI style function definition.

2003-06-22  Kevin Ryde  <kevin@swox.se>

	* mpn/pa32/hppa1_1/udiv.asm: Remove .proc, .entry, .exit and .procend,
	handled by PROLOGUE and EPILOGUE.  Comment out .callinfo, per other
	asm files.

	* gmpxx.h (mpz_class __gmp_binary_divides, __gmp_binary_modulus): Fix
	long/mpz and long%mpz for dividend==LONG_MIN divisor==-LONG_MIN.
	(mpz_class __gmp_binary_modulus): Fix mpz%long for negative dividend.
	* tests/cxx/t-ops.cc (check_mpz): Add test cases for these, merging
	operator/ and operator% sections for clarity.

2003-06-21  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-21.

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code by Torbjorn provoking an
	ICE from gcc 2.9-gnupro-99r1 under -O2 -mcpu=ev6.
	* configure.in (alpha*-*-* gcc_cflags_cpu): Fallback on -mcpu=ev56 for
	this compiler.

	* gmpxx.h (get_d): Remove comments about long double, double is
	correct for get_d, a future long double form would be get_ld.

2003-06-19  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-19.

	* mpn/generic/dive_1.c: Share src[0] fetch among all cases.  No need
	for separate final umul_ppmm in even case, make it part of the loop.

	* mpz/get_d_2exp.c, mpq/set_si.c, mpq/set_ui.c: Nailify.

	* mpf/iset_si.c: Rewrite using mpf/set_si.c code, in particular this
	nailifies it.
	* tests/mpf/t-set_si.c: Nailify tests.

	* mpf/iset_ui.c: Nailify, as per mpf/set_ui.c
	* tests/mpf/t-set_ui.c: New file.
	* tests/mpf/Makefile.am (check_PROGRAMS): Add it.

2003-06-15  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-15.

	* mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT.

2003-06-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (--enable-assert): Emit WANT_ASSERT to config.m4.
	* mpn/powerpc32/powerpc-defs.m4, mpn/x86/x86-defs.m4 (ASSERT): Check
	WANT_ASSERT is defined.

	* mpn/sparc32/v9/udiv.asm: Amend heading, this file is for sparc v9.

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): In libtool openbsd hack,
	disard error messages from cp, for the benefit of --disable-shared or
	systems not using names libgmp.so.*.

	* tests/devel/try.c (try_one): When overlapping, copy source data
	after filling dst.  Previously probably used only DEADVAL in
	overlapping cases.

2003-06-11  Torbjorn Granlund  <tege@swox.com>

	* mpf/random2.c: Rewrite.  Ignore sign of exp parameter.

2003-06-10  Kevin Ryde  <kevin@swox.se>

	* mpn/sparc64/mode1o.c: New file.

2003-06-09  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/lshift.asm: Add more cycle counts.
	* mpn/powerpc32/rshift.asm: Add more cycle counts.

	* gmp-impl.h (udiv_qrnnd_preinv1): New name for udiv_qrnnd_preinv.
	(udiv_qrnnd_preinv2): New name for udiv_qrnnd_preinv2norm.
	(udiv_qrnnd_preinv): New #define, making udiv_qrnnd_preinv2
	the default.
	* tune/speed.c: Corresponding changes.
	* tune/speed.h: Likewise.
	* tune/common.c: Likewise.

	* mpf/get_str.c: Simplify `off' computation.

	* longlong.h: Tabify.

2003-06-09  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (ABI and ISA): FreeBSD has sparc64 too, just say "BSD" to
	cover all flavours.
	* configure.in: Ditto in some comments.

	* mpfr/*: Update to mpfr cvs 2003-06-09.

	* tests/cxx/Makefile.am (LDADD): Add -L$(top_builddir)/$(LIBS), for
	the benefit of gcc 3.2 on itanium2-hp-hpux11.22.

	* tune/many.pl (mul_2): Add speed routine settings.
	(MAKEFILE): Close when done, for the benefit of development hackery.

2003-06-08  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-06-08.

	* mpn/x86/x86-defs.m4 (femms): Remove fallback to emms.
	(cmovCC, psadbw): Remove simulated versions.
	(cmov_available_p, psadbw_available_p): Remove.
	This trickery was only ever for development purposes on machines
	without those instructions.  Removing it simplifies gmp and in
	particular avoids complications for fat binary builds.  Development
	can be done with a wrapper around "as" if really needed.

	* mpn/x86/divrem_1.asm: Don't use loop_or_decljnz, now K6 has its own
	mpn/x86/k6/divrem_1.asm.  Amend K6 comments now moved to there.
	* mpn/x86/x86-defs.m4 (loop_or_decljnz): Remove, no longer used.

	* mpn/x86/k6/divrem_1.asm: New file, derived from mpn/x86/divrem_1.asm.

	* mpn/x86/k6/pre_mod_1.asm: Remove comments now in mpn/x86/mod_1.asm.

	* mpn/x86/mod_1.asm: Put mpn_mod_1c after mpn_mod_1 for better branch
	prediction.  Put done_zero at end for less wastage in alignment.  Use
	decl+jnz unconditionally since in fact it's ok on k6.  Amend comments.

2003-06-07  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mode1o.c: Fix ASSERTs on return value.

	* gmp.texi (Build Options): Add viac3 and viac32 cpu types.
	(ABI and ISA): Note on sparcv9 ABI=32 vs ABI=64 speed.  More indexing.

	* configfsf.guess, configfsf.sub: Update to 2003-06-06.
	* config.guess: Remove $RANDOM hack supporting netbsd 1.4, not needed
	by new configfsf.guess.


2003-06-05  Torbjorn Granlund  <tege@swox.com>

	* longlong.h (add_ssaaaa) [pa64]: Output zero operand as register 0.
	Allow more immediate operands.
	(sub_ddmmss) [pa64]: Likewise.
	(add_ssaaaa) [pa32]: Likewise.
	(sub_ddmmss) [pa32]: Likewise.

	* mpn/pa64: Change ".level 2.0W" to ".level 2.0w" to please
	picky GNU assembler.

2003-06-05  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Special Functions): In mpz_array_init, fix type
	shown for integer_array and give an example use.

2003-06-04  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on
	alpha.

2003-06-03  Kevin Ryde  <kevin@swox.se>

	* mpn/x86/pentium/README: Add 7 c/l mmx mul_1, tweak wordings.

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Use octal char constants in test
	program, hex is not supported by K&R.

2003-06-02  Torbjorn Granlund  <tege@swox.com>

	* mpn/mips64/divrem_1.asm: New file.

2003-06-01  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/lshift.asm: Reformat code.
	* mpn/powerpc32/rshift.asm: Reformat code.

2003-05-30  Kevin Ryde  <kevin@swox.se>

	* tests/misc.c (tests_start): Set stdout and stderr to unbuffered, to
	avoid any chance of losing output on segv etc.

2003-05-28  Torbjorn Granlund  <tege@swox.com>

	* mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE.
	Remove redundant variable prec.

2003-05-26  Torbjorn Granlund  <tege@swox.com>

	* tests/mpz/convert.c: Test bases up to 62.

	* tests/mpf/t-conv.c: Test bases up to 62.

	* demos/pexpr.c: Don't iterate to get accurate timing.

	* mpf/set_str.c (mpn_pow_1_highpart): Cleanup.

	* mp_dv_tab.c: Fix typo.

	* mpf/get_str.c: Rewrite (now sub-quadratic).

2003-05-22  Kevin Ryde  <kevin@swox.se>

	* tests/mpn/t-divrem_1.c: New file.
	* tests/mpn/Makefile.am: Add it.

2003-05-22  Torbjorn Granlund  <tege@swox.com>

	* config.sub: Recognize viac3* processors.

2003-05-20  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/addmul_2.asm: New file.

2003-05-19  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Recognize alphaev7* as alphaev67.

	* config.guess: Recognize viac3* processors.
	* configure.in: Set up path for viac3* processors.
	* acinclude.m4 (X86_PATTERN): Include viac3* processors.

2003-05-19  Kevin Ryde  <kevin@swox.se>

	* tune/freq.c (freq_pstat_getprocessor): New function.
	(freq_all): Use it.
	* configure.in (AC_CHECK_HEADERS): Add sys/pstat.h.
	(AC_CHECK_FUNCS): Add pstat_getprocessor.

2003-05-15  Kevin Ryde  <kevin@swox.se>

	* mpn/generic/mul_fft.c (mpn_mul_fft_decompose): Remove "inline",
	since the code is a bit too big.  gcc doesn't actually inline when
	alloca (TMP_ALLOC) is used anyway.

2003-05-13  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Notes for Particular Systems): Libtool directory is .libs
	not _libs for mingw dll.  Reported by Andreas Fabri.

2003-05-07  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_PROG_CC_WORKS): Add code to generate sse2/xmm code
	from gcc -march=pentium4, to check the assembler supports that.
	(GMP_GCC_PENTIUM4_SSE2, GMP_OS_X86_XMM): New macros.
	* configure.in (pentium4-*-*): Use them to see if gcc -march=pentium4
	(with sse2) is ok.

2003-05-06  Kevin Ryde  <kevin@swox.se>

	* mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1.

	* tune/freq.c (<sys/sysinfo.h>): Include only when needed for
	getsysinfo(), to avoid a problem with this file on AIX 5.1.

2003-05-03  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c: Do not ignore supposedly superfluous digits (in part
	reverting last change).

2003-05-03  Kevin Ryde  <kevin@swox.se>

	* gmp.texi: Use @code for files in @cindex entries, it looks nicer
	than @file.

	* Makefile.am: Note gmp 4.1.1 and 4.1.2 version info.

	* configure.in, acinclude.m4 (GMP_CRAY_OPTIONS): New macro for Cray
	system setups, letting AC_REQUIRE do its job instead of a hard coded
	AC_PROG_EGREP.

	* config.guess: Amend fake RANDOM to avoid ". configfsf.guess" which
	segfaults on Debian "ash" 0.4.16.

2003-05-01  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_CHECK_FUNCS): Add getsysinfo.
	(AC_CHECK_HEADERS): Add sys/sysinfo.h and machine/hal_sysinfo.h.
	* tune/freq.c (freq_getsysinfo): New function.
	(freq_all): Use it.
	(freq_sysctlbyname_i586_freq, freq_sysctlbyname_tsc_freq,
	freq_sysctl_hw_cpufrequency, freq_sysctl_hw_model): Set
	speed_cycletime before trying to print it, when verbose.

2003-04-28  Torbjorn Granlund  <tege@swox.com>

	* mpf/set_str.c: Major overhaul.
	(mpn_pow_1_highpart): New helper function, meat extracted from
	mpf_set_str.

2003-04-24  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_GCC_ARM_UMODSI): Quote result string against m4.

	* configure, ltmain.sh, aclocal.m4: Update to libtool 1.5.

	* longlong.h (add_ssaaaa) [all]: Remove first "%" commutative in each,
	since gcc only supports one per asm.

	* printf/doprnt.c: Add M for mp_limb_t.
	* tests/misc/t-printf.c: Exercise this.

	* tests/mpz/t-cmp_d.c: Test infinities.
	* tests/mpf/t-cmp_d.c: New file.
	* tests/mpf/Makefile.am: Add it.

	* mpz/cmp_d.c, mpz/cmpabs_d.c, mpf/cmp_d.c: NaN invalid, Inf bigger
	than any value.
	* mpz/set_d.c, mpq/set_d.c, mpf/set_d.c: Nan or Inf invalid.

	* configure.in (AC_CHECK_FUNCS): Add raise.
	* invalid.c: New file.
	* Makefile.am: Add it.
	* gmp-impl.h (__gmp_invalid_operation): Add prototype.
	(DOUBLE_NAN_INF_ACTION): New macro.

	* tests/trace.c, tests/tests.h (d_trace): New function.
	* tests/misc.c, tests/tests.h (tests_infinity_d): New function.
	* tests/misc.c (mpz_erandomb, mpz_errandomb): Use gmp_urandomm_ui.

	* tune/tuneup.c, tune/common.c, tests/devel/try.c: Cast various
	mp_size_t values for printf %ld in case mp_size_t==int.  Use
	gmp_printf for mp_limb_t values.

	* gmp.texi (Nomenclature and Types): Add mp_exp_t, mp_size_t,
	gmp_randstate_t.  Note ulong for bit counts and size_t for byte
	counts.  Don't bother with @noindent.
	(Debugging): New valgrind is getting MMX/SSE.
	(Integer Comparisons): mpz_cmp_d and mpz_cmpabs_d on NaNs and Infs.
	(Float Comparison): mpf_cmp_d behaviour on NaNs and Infs.
	(Low-level Functions): Note with mpn_hamdist what hamming distance is.
	(Formatted Output Strings): Add type M.
	(Internals): Remove remarks on ulong bits and size_t bytes.  Move int
	field remarks to ...
	(Integer Internals, Float Internals): ... here.

2003-04-19  Kevin Ryde  <kevin@swox.se>

	* configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions.

	* mpn/x86/p6/mul_basecase.asm: New file.

2003-04-18  Kevin Ryde  <kevin@swox.se>

	* configure.in (m68060-*-*): Fallback to gcc -m68000 when -m68060 not
	available, and don't use mpn/m68k/mc68020 asm routines.  (Avoids 32x32
	mul and 64/32 div which trap to the kernel on 68060.  Advice by
	Richard Zidlicky.)
	* mpn/m68k/README: Update notes on directory usage.

	* tests/cxx/Makefile.am (TESTS_ENVIRONMENT): Add a hack to let the
	test programs run with a shared libgmpxx on openbsd 3.2.

	* gmp.texi (Language Bindings): Add Guile.

2003-04-12  Kevin Ryde  <kevin@swox.se>

	* configure.in (cygwin*, mingw*, pw32*, os2*): Add
	-Wl,--export-all-symbols to GMP_LDFLAGS, no longer the default in
	latest mingw and libtool.

	* acinclude.m4 (GMP_ASM_COFF_TYPE): New macro.
	* configure.in (x86s): Use it.
	* mpn/x86/x86-defs.m4 (COFF_TYPE): New macro.
	(PROLOGUE_cpu): Use it, for the benefit of mingw DLLs.

	* gmp-impl.h (mpn_copyi, mpn_copyd): Add __GMP_DECLSPEC.

	* gmp.texi (Known Build Problems): Remove windows test program .exe
	repeated built, fixed by new libtool.  Remove MacOS C++ shared library
	creation, fixed by new libtool.
	(Notes for Package Builds, Known Build Problems): Remove DESTDIR notes
	on libgmpxx, fixed in new libtool.

2003-04-10  Torbjorn Granlund  <tege@swox.com>

	* configure.in: Match turbosparc.
	* config.guess: Recognize turbosparc (just for *bsd for now).

2003-04-09  Kevin Ryde  <kevin@swox.se>

	* mpf/mul_ui.c [nails]: Call mpf_mul to handle v > GMP_NUMB_MAX.

	* tests/mpz/t-mul.c (main): Don't try FFT sizes when FFT disabled via
	MP_SIZE_T_MAX, eg. for nails.

	* tests/cxx/t-ternary.cc: Split up tests to help compile speed and
	memory usage.

	* tests/devel/try.c: Print seed under -R, add -E to reseed, use ulong
	for seed not uint.

	* gmp.texi: Add @: after various abbreviations, more index entries.
	(leftarrow): New macro, for non-tex.
	(Random State Initialization): Remove commented gmp_randinit_lc, not
	going to be implemented.
	(Random Number Algorithms): New section.
	(References): Add Matsumoto and Nishimura on Mersenne Twister, add
	Bertot, Magaud and Zimmermann on GMP Square Root.

2003-04-06  Kevin Ryde  <kevin@swox.se>

	* tests/mpz/t-gcd_ui.c: New file.
	* tests/mpz/Makefile.am: Add it.

	* mpz/gcd_ui.c: Correction to return value on longlong limb systems,
	limb might not fit a ulong.

2003-04-04  Kevin Ryde  <kevin@swox.se>

	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
	2003-04-02.

2003-04-02  Kevin Ryde  <kevin@swox.se>

	* configure.in (*-*-cygwin*): No longer force lt_cv_sys_max_cmd_len,
	libtool has addressed this now.
	(AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): Remove this, libtool _LT_AC_LOCK
	no longer needs it.

	* acinclude.m4 (GMP_PROG_AR): Also set ac_cv_prog_AR and
	ac_cv_prog_ac_ct_AR when adding flags to AR, so they're not lost by
	libtool's call to AC_CHECK_TOOL.

2003-04-01  Kevin Ryde  <kevin@swox.se>

	* configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot
	2003-03-31.

	* configure.in (AC_PROG_F77): Add a dummy AC_PROVIDE to stop libtool
	running F77 probes.

	* randlc2x.c (gmp_rand_lc_struct): Add comments about what exactly is
	in each field.
	(randseed_lc): Rename seedp to seedz to avoid confusion with seedp in
	the lc function.  Suggested by Pedro Gimeno.
	(gmp_randinit_lc_2exp): Use __GMP_ALLOCATE_FUNC_TYPE.  No need for
	"+1" in mpz_init2 of _mp_seed.  Don't bother with mpz_init2 for _mp_a.

2003-03-29  Kevin Ryde  <kevin@swox.se>

	* configure.in (m68k-*-*): Use -O2, no longer need to fallback to -O.
	* acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): Remove macro.

	* configure.in (AC_CHECK_TYPES): Add notes on why tested.

	* gmp.texi (GMPrefu, GMPpxrefu, GMPreftopu, GMPpxreftopu): New macros,
	use them for all external references to get URLs into HTML output.
	(Random State Initialization): Add gmp_randinit_set.
	(Random State Miscellaneous): New section.

2003-03-29  Kevin Ryde  <kevin@swox.se>

	* randbui.c, randmui.c: New files.
	* Makefile.am: Add them.
	* gmp-h.in (gmp_urandomb_ui, gmp_urandomm_ui): Add prototypes.
	* tests/rand/t-urbui.c, tests/rand/t-urmui.c: New files.
	* tests/rand/Makefile.am: Add them.

	* gmp-impl.h (gmp_randstate_srcptr): New typedef.
	(gmp_randfnptr_t): Add randiset_fn.
	* randiset.c: New file.
	* Makefile.am: Add it.
	* gmp-h.in (gmp_randinit_set): Add prototype.
	* randlc2x.c, randmt.c: Add gmp_randinit_set support.
	* tests/rand/t-iset.c: New file.
	* tests/rand/Makefile.am: Add it.

	* tests/misc.c, tests/tests.h (call_rand_algs): New function.

2003-03-27  Kevin Ryde  <kevin@swox.se>

	* mpz/bin_uiui.c: Use plain "*" for kacc products rather than
	umul_ppmm since high not needed, except for an ASSERT now amended.

2003-03-26  Kevin Ryde  <kevin@swox.se>

	* demos/expr/exprfr.c (cbrt, cmpabs, exp2, gamma, nextabove,
	nextbelow, nexttoward): New functions.
	* demos/expr/t-expr.c: Exercise these.

	* mpfr/*: Update to mpfr cvs 2003-03-26.

	* gmp-impl.h (MPZ_REALLOC): Use UNLIKELY, to expect no realloc.

	* tune/time.c (cycles_works_p): Scope variables down to relevant part
	to avoid warnings about unused.

	* configfsf.guess, configfsf.sub: Update to 2003-02-22.
	* config.guess: Fake a $RANDOM variable when running configfsf.guess,
	to workaround a problem on m68k NetBSD 1.4.1.

	* mpz/fac_ui.c: Remove unused variable "z1".

	* tune/freq.c (freq_irix_hinv): Allow "Processor 0" line from IRIX 6.5.

2003-03-24  Torbjorn Granlund  <tege@swox.com>

	* randlc2x.c (randget_lc): Remove write-only variable rn.
	* mpf/eq.c: Remove write-only variable usign.
	* gen-psqr.c (main): Remove write-only variable numb_bits.

2003-03-17  Torbjorn Granlund  <tege@swox.com>

	* Makefile.am (libgmp_la_SOURCES): Add mp_dv_tab.c.
	(libmp_la_SOURCES): Add mp_dv_tab.c.

	* mpn/alpha/invert_limb.asm: Add a few comments.

	* mp_dv_tab.c: New file, defining __gmp_digit_value_tab.

	* mpz/set_str.c: Get rid of function digit_value_in_base and use table
	__gmp_digit_value_tab instead.
	* mpz/inp_str.c: Likewise.
	* mpf/set_str.c: Likewise.
	* mpbsd/min.c: Likewise.
	* mpbsd/xtom.c: Likewise.

	* mpz/set_str.c: Allow bases <= 62.  Return error for invalid bases.
	* mpz/inp_str.c: Likewise.
	* mpf/set_str.c: Likewise.
	* mpz/out_str.c: Likewise.
	* mpz/get_str.c: Likewise.
	* mpf/get_str.c: Likewise.

	* mpz/inp_str.c: Restucture to allocate more string space just
	before needed.
	* mpbsd/min.c: Likewise.

	* longlong.h (__udiv_qrnnd_c): Remove redundant casts.
	(32-bit sparc): Test HAVE_HOST_CPU_supersparc in addition to various
	sparc_v8 spellings.

2003-03-17  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-03-17.

2003-03-15  Kevin Ryde  <kevin@swox.se>

	* Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC
	sources, instead of a libdummy.la.

2003-03-16  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize supersparc and microsparc for *BSD systems.
	Generalize some superscalar recognition patterns.

2003-03-14  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/udiv.asm: New file.

2003-03-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64: Table cycle counts.  Update some comments.

2003-03-10  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c (mpn_mul): Don't blindly expect
	MUL_KARATSUBA_THRESHOLD to be a constant.

2003-03-07  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul.c (mpn_mul): New operand splitting code for
	avoiding cache misses when un >> MUL_KARATSUBA_THRESHOLD > vn.
	(MUL_BASECASE_MAX_UN): New #define, default to 500 for now.

2003-03-07  Kevin Ryde  <kevin@swox.se>

	* Makefile.am: Put gmp.h and mp.h under $(exec_prefix)/include.
	* gmp.texi (Build Options): Add notes on this.
	Reported by Vincent Lefèvre.

2003-03-06  Kevin Ryde  <kevin@swox.se>

	* configure.in (alpha*-*-* gcc): Add asm option before testing -mcpu,
	for the benefit of gcc 2.9-gnupro-99r1 on alphaev68-dec-osf5.1 which
	doesn't otherwise put the assembler in the right mode for -mcpu=ev6.

2003-03-05  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/powerpc-defs.m4: Set up renaming for v registers.

	* mpz/powm.c (redc): Instead of repeated mpn_incr_u invocations,
	accumulate carries and add at the end.
	(mpz_powm): Trim tp allocation, now as redc doesn't need carry guard.

2003-02-25  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/copyd.asm: Correct header comment.

	* mpn/arm/addmul_1.asm: Correct cycle counts.
	* mpn/arm/submul_1.asm: Likewise.

2003-02-20  Kevin Ryde  <kevin@swox.se>

	* demos/factorize.c (factor_using_pollard_rho): Test k>0 to avoid
	infinite loop if k=0 and gcd!=1 reveals a factor.  Reported by John
	Pongsajapan.

	* gmp.texi, fdl.texi: Update to FDL version 1.2.

2003-02-18  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/mul_1.asm: Fix typo introduced in last change.

2003-02-17  Torbjorn Granlund  <tege@swox.com>

	* mpn/sparc64/copyi.asm: Add some header comments.
	* mpn/sparc64/copyd.asm: Likewise.

	* mpn/arm/mul_1.asm: Put vl operand last for umull/umlal.
	Add some header comments.
	* mpn/arm/addmul_1.asm: Rewrite.
	* mpn/arm/submul_1.asm: Rewrite.
	* mpn/arm/gmp-mparam.h: Retune.

2003-02-16  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/copyi.asm: New file.
	* mpn/arm/copyd.asm: New file.

2003-02-16  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data
	byte seen on an arm system.

2003-02-15  Torbjorn Granlund  <tege@swox.com>

	* mpn/arm/gmp-mparam.h: Retune.

2003-02-13  Torbjorn Granlund  <tege@swox.com>

	* mpn/powerpc32/750/com_n.asm: Add more cycle counts.

2003-02-13  Kevin Ryde  <kevin@swox.se>

	* configure.in (AC_PREREQ): Bump to 2.57.

	* configure.in, acinclude.m4 (GMP_GCC_WA_OLDAS): New macro, applying
	-Wa,-oldas only when necessary.

	* configure.in (powerpc*-*-*): Don't use -Wa,-mppc with gcc, it
	overrides options recent gcc adds for -mcpu, making generated code
	fail to assemble.

	* tune/tuneup.c (mpn_fft_table): Remove definition, it's in mul_fft.c.

2003-02-12  Torbjorn Granlund  <tege@swox.com>

	* mpn/x86/pentium4/sse2/gmp-mparam.h: Retune.
	* mpn/x86/k7/gmp-mparam.h: Retune.
	* mpn/x86/k6/gmp-mparam.h: Retune.
	* mpn/x86/p6/gmp-mparam.h: Retune.
	* mpn/x86/p6/mmx/gmp-mparam.h: Retune.

	* tests/mpz/t-mul.c (main): Rewrite FFT testing code.

2003-02-10  Torbjorn Granlund  <tege@swox.com>

	* config.guess: Recognize "power2" systems.

	* mpn/powerpc64/gmp-mparam.h: Fix indentation.
	* mpn/power/gmp-mparam.h: Retune.
	* mpn/alpha/ev6/nails/gmp-mparam.h: Retune.
	* mpn/sparc64/gmp-mparam.h: Retune.
	* mpn/pa64/gmp-mparam.h: Retune.
	* mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune.
	* mpn/sparc32/v8/gmp-mparam.h: Retune.
	* mpn/mips64/gmp-mparam.h: Retune.
	* mpn/alpha/ev6/gmp-mparam.h: Retune.
	* mpn/powerpc32/gmp-mparam.h: Retune.
	* mpn/powerpc32/750/gmp-mparam.h: Retune.
	* mpn/alpha/ev5/gmp-mparam.h: Retune.
	* mpn/m68k/gmp-mparam.h: Retune.
	* mpn/cray/gmp-mparam.h: Set GET_STR_PRECOMPUTE_THRESHOLD.

	* configure.in: Undo this, problem doesn't happen any more:
	(mips64*-*-*): Pass just -O1 to cc, to work around compiler bug.

2003-02-03  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens
	around macro parameters.  Reported by Jason Moxham.

2003-02-01  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Low-level Functions): No overlap permitted by mpn_mul_n.
	Reported by Jason Moxham.
	(Formatted Input Strings): Correction to strtoul cross reference
	formatting.
	(BSD Compatible Functions): Add index entry for MINT.

2003-01-29  Torbjorn Granlund  <tege@swox.com>

	* gmp-impl.h (mpn_mul_fft): Now returns int.

2003-01-29  Paul Zimmermann  <Paul.Zimmermann@loria.fr>

	* mpn/generic/mul_fft.c: Major rewrite.

2003-01-25  Kevin Ryde  <kevin@swox.se>

	* config.guess (powerpc*-*-*): Remove $dummy.core file when mfpvr
	fails on NetBSD.
	(trap): Remove $dummy.core on abnormal termination too.

	* mpfr/*: Update to mpfr cvs 2003-01-25.

2003-01-18  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-01-18.

2003-01-17  Torbjorn Granlund  <tege@swox.com>

	* gmp.texi: Canonicalize URLs.

2003-01-15  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Notes for Particular Systems): Add hardware floating point
	precision mode.

	* mpfr/*, configure, aclocal.m4, config.in: Update to mpfr cvs
	2003-01-15.

2003-01-11  Kevin Ryde  <kevin@swox.se>

	* mpfr/*: Update to mpfr cvs 2003-01-11.

2003-01-09  Kevin Ryde  <kevin@swox.se>

	* mpfr/get_str.c: Update to mpfr cvs 2003-01-09.

	* doc/configuration: Various updates.

2003-01-06  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray.
	* mpn/alpha/copyd.asm: Likewise.

2003-01-05  Kevin Ryde  <kevin@swox.se>

	* demos/expr/t-expr.c (check_r): Tolerate mpfr_set_str new return
	value.

	* configure, aclocal.m4 (*-*-osf4*, *-*-osf5*): Regenerate with
	libtool patch to avoid bash printf option problem when building shared
	libraries with cxx.

	* configure.in (pentium4-*-*): Use "-march=pentium4 -mno-sse2" since
	sse2 causes buggy code from gcc 3.2.1 and is only supported on new
	enough kernels.

	* acinclude.m4 (GMP_PROG_NM): Add some notes about failures, per
	report by Krzysztof Kozminski.

	* gmp-h.in (mpz_mdivmod_ui, mpz_mmod_ui): Add parens around "r".

	* gmp-h.in (__GMP_CAST): New macro, clean to g++ -Wold-style-cast.
	(GMP_NUMB_MASK, mpz_cmp_si, mpq_cmp_si, mpz_odd_p, mpn_divexact_by3,
	mpn_divmod): Use it.  Reported by Krzysztof Kozminski.
	(mpz_odd_p): No need for the outermost cast to "int".
	* tests/cxx/t-cast.cc: New file.
	* tests/cxx/Makefile.am: Add it.

2003-01-04  Kevin Ryde  <kevin@swox.se>

	* mpfr/set_str.c: Update to mpfr cvs 2003-01-04.

	* demos/expr/exprfra.c (e_mpfr_number): Tolerate recent mpfr_set_str
	returning count of characters accepted.

2003-01-03  Torbjorn Granlund  <tege@swox.com>

	* mpn/alpha/copyi.asm: New file.
	* mpn/alpha/copyd.asm: New file.

2003-01-03  Kevin Ryde  <kevin@swox.se>

	* demos/expr/t-expr.c: Use __gmpfr on some mpfr internals that have
	changed.

	* mpfr/*, aclocal.m4, config.in, configure: Update to mpfr cvs
	2003-01-03.

	* gmp.texi (Introduction to GMP): Mention release announcements
	mailing list, and put home page and ftp before mailing lists.

2002-12-28  Torbjorn Granlund  <tege@swox.com>

	* mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify.

2002-12-28  Kevin Ryde  <kevin@swox.se>

	* acinclude.m4 (M68K_PATTERN): New macro.
	(GMP_GCC_M68K_OPTIMIZE): Use it to avoid m6811 and friends.
	* configure.in: Ditto.

	* tests/mpz/t-import.c, tests/mpz/t-export.c: Use '\xHH' to avoid
	warnings about char overflows.
	* acinclude.m4 (GMP_C_DOUBLE_FORMAT): Ditto.

2002-12-28  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randmt.c (randseed_mt, default_state): Fix off-by-one bug on padding.
	(randseed_mt): Add ASSERT checking result of mpz_export.

2002-12-24  Kevin Ryde  <kevin@swox.se>

	* gmp.texi (Integer Import and Export): Clarify treatment of signs,
	reported by Kent Boortz.

	* randmt.c: Use gmp_uint_least32_t.
	(randseed_mt): Add nails to mpz_export in case mt[i] more than 32 bits.

	* gmp-impl.h (gmp_uint_least32_t): New typedef, replacing GMP_UINT32.
	* configure.in (AC_CHECK_TYPES): Add uint_least32_t.
	(AC_CHECK_SIZEOF): Add unsigned short.

2002-12-22  Kevin Ryde  <kevin@swox.se>

	* gmp-impl.h (ULONG_PARITY) [generic C]: Mask result to a single bit.
	(ULONG_PARITY) [_CRAY, __ia64]: New macros.
	* tests/t-parity.c: New test.
	* tests/Makefile.am (check_PROGRAMS): Add it.

	* longlong.h (count_trailing_zeros) [ia64]: New macro.

	* tests/t-count_zeros.c (check_various): Remove unused variable "n".

	* mpn/x86/README: Revise notes on PIC, PLT and GOT.

	* demos/perl/GMP.xs, demos/perl/GMP.pm, demos/perl/test.pl: Add "mt"
	to GMP::Rand::randstate.

2002-12-22  Pedro Gimeno  <pggimeno@wanadoo.es>

	* randmt.c (randseed_mt): Fix bug that might cause the generator to
	return all zeros with certain seeds.  Fix WARM_UP==0 case.
	(gmp_randinit_mt): Initialize to a known state by default.
	(randget_mt): Remove check for uninitialized buffer: no longer needed.
	(recalc_buffer): Use ?: instead of two-element array.

	* tests/rand/t-mt.c: New test.
	* tests/rand/Makefile.am (check_PROGRAMS): Add it.

2002-12-21  Kevin Ryde  <kevin@swox.se>

	* cxx/osdoprnti.cc: Use <cstdarg> and <cstring> rather than <stdarg.h>
	and <string.h>.  No need for <stdio.h>.

	* demos/expr/expr.c, demos/expr/exprfa.c, demos/expr/exprfra.c,
	demos/expr/exprza.c: Use mp_get_memory_functions, not
	__gmp_allocate_func etc.
	* demos/expr/t-expr.c: Don't use gmp-impl.h.
	(numberof): New macro.

	* gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_realloca
Download .txt
gitextract_o7x9ziic/

├── .appveyor_msys_build.sh
├── .gdbinit
├── .gitattributes
├── .gitignore
├── .travis.yml
├── AUTHORS
├── COPYING
├── COPYING.LIB
├── ChangeLog
├── INSTALL
├── INSTALL.autoconf
├── Makefile.am
├── NEWS
├── README
├── acinclude.m4
├── appveyor.yml
├── assert.c
├── autogen.sh
├── cl_int.bat
├── clwrap
├── compat.c
├── config.guess
├── config.sub
├── configfsf.guess
├── configfsf.sub
├── configure.ac
├── configure.yasm
├── cpuid.c
├── cxx/
│   ├── Makefile.am
│   ├── dummy.cc
│   ├── isfuns.cc
│   ├── ismpf.cc
│   ├── ismpq.cc
│   ├── ismpz.cc
│   ├── ismpznw.cc
│   ├── osdoprnti.cc
│   ├── osfuns.cc
│   ├── osmpf.cc
│   ├── osmpq.cc
│   └── osmpz.cc
├── devel/
│   ├── configfsf.sub.diff
│   ├── gen-bases.c
│   ├── gen-fac_ui.c
│   ├── gen-fib.c
│   ├── gen-psqr.c
│   ├── regen
│   ├── setversion
│   └── yasm.diff
├── doc/
│   ├── Makefile.am
│   ├── devel/
│   │   ├── Configure.txt
│   │   ├── FILES.txt
│   │   ├── configuration
│   │   ├── gmp-h.txt
│   │   ├── gmp-impl-h.txt
│   │   ├── mpn_functions.txt
│   │   ├── projects.html
│   │   └── tasks.html
│   ├── fdl.texi
│   ├── isa_abi_headache
│   ├── mdate-sh
│   ├── mpir.texi
│   ├── texinfo.tex
│   └── version.texi
├── errno.c
├── extract-dbl.c
├── fft/
│   ├── Makefile.am
│   ├── adjust.c
│   ├── adjust_sqrt2.c
│   ├── butterfly_lshB.c
│   ├── butterfly_rshB.c
│   ├── combine_bits.c
│   ├── div_2expmod_2expp1.c
│   ├── fermat_to_mpz.c
│   ├── fft_mfa_trunc_sqrt2.c
│   ├── fft_mfa_trunc_sqrt2_inner.c
│   ├── fft_negacyclic.c
│   ├── fft_radix2.c
│   ├── fft_trunc.c
│   ├── fft_trunc_sqrt2.c
│   ├── ifft_mfa_trunc_sqrt2.c
│   ├── ifft_negacyclic.c
│   ├── ifft_radix2.c
│   ├── ifft_trunc.c
│   ├── ifft_trunc_sqrt2.c
│   ├── mul_2expmod_2expp1.c
│   ├── mul_fft_main.c
│   ├── mul_mfa_trunc_sqrt2.c
│   ├── mul_trunc_sqrt2.c
│   ├── mulmod_2expp1.c
│   ├── normmod_2expp1.c
│   ├── revbin.c
│   └── split_bits.c
├── gmp-impl.h
├── gpl-2.0.txt
├── invalid.c
├── lgpl-2.1.txt
├── longlong_post.h
├── longlong_pre.h
├── memory.c
├── mp_bpl.c
├── mp_clz_tab.c
├── mp_dv_tab.c
├── mp_get_fns.c
├── mp_minv_tab.c
├── mp_set_fns.c
├── mpf/
│   ├── Makefile.am
│   ├── abs.c
│   ├── add.c
│   ├── add_ui.c
│   ├── ceilfloor.c
│   ├── clear.c
│   ├── clears.c
│   ├── cmp.c
│   ├── cmp_d.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── cmp_z.c
│   ├── div.c
│   ├── div_2exp.c
│   ├── div_ui.c
│   ├── dump.c
│   ├── eq.c
│   ├── fits_s.h
│   ├── fits_si.c
│   ├── fits_sint.c
│   ├── fits_slong.c
│   ├── fits_sshort.c
│   ├── fits_u.h
│   ├── fits_ui.c
│   ├── fits_uint.c
│   ├── fits_ulong.c
│   ├── fits_ushort.c
│   ├── get_d.c
│   ├── get_d_2exp.c
│   ├── get_dfl_prec.c
│   ├── get_prc.c
│   ├── get_si.c
│   ├── get_str.c
│   ├── get_ui.c
│   ├── init.c
│   ├── init2.c
│   ├── inits.c
│   ├── inp_str.c
│   ├── int_p.c
│   ├── iset.c
│   ├── iset_d.c
│   ├── iset_si.c
│   ├── iset_str.c
│   ├── iset_ui.c
│   ├── mul.c
│   ├── mul_2exp.c
│   ├── mul_ui.c
│   ├── neg.c
│   ├── out_str.c
│   ├── pow_ui.c
│   ├── random2.c
│   ├── reldiff.c
│   ├── rrandomb.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_dfl_prec.c
│   ├── set_prc.c
│   ├── set_prc_raw.c
│   ├── set_q.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_ui.c
│   ├── set_z.c
│   ├── size.c
│   ├── sqrt.c
│   ├── sqrt_ui.c
│   ├── sub.c
│   ├── sub_ui.c
│   ├── swap.c
│   ├── trunc.c
│   ├── ui_div.c
│   ├── ui_sub.c
│   └── urandomb.c
├── mpir.net/
│   ├── build.vc/
│   │   └── check_config.bat
│   ├── build.vc11/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc12/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc14/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── build.vc15/
│   │   ├── mpir.net/
│   │   │   ├── mpir.net.vcxproj
│   │   │   └── mpir.net.vcxproj.filters
│   │   ├── mpir.net-tests/
│   │   │   └── mpir.net-tests.csproj
│   │   └── mpir.net.sln
│   ├── mpir.net/
│   │   ├── AssemblyInfo.cpp
│   │   ├── Common.cpp
│   │   ├── Common.h
│   │   ├── ExpressionMacros.h
│   │   ├── HugeFloat.cpp
│   │   ├── HugeFloat.h
│   │   ├── HugeInt.cpp
│   │   ├── HugeInt.h
│   │   ├── HugeRational.cpp
│   │   ├── HugeRational.h
│   │   ├── Random.cpp
│   │   ├── Random.h
│   │   ├── RandomFloat.cpp
│   │   ├── ReadMe.txt
│   │   ├── Stdafx.cpp
│   │   ├── Stdafx.h
│   │   ├── app.rc
│   │   └── resource.h
│   └── mpir.net-tests/
│       ├── HugeFloatTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   ├── IO.cs
│       │   ├── Math.cs
│       │   └── Precision.cs
│       ├── HugeIntTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Bitwise.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   ├── IO.cs
│       │   ├── Math.cs
│       │   └── NumberTheoretic.cs
│       ├── HugeRationalTests/
│       │   ├── Arithmetic.cs
│       │   ├── Assignment.cs
│       │   ├── Comparisons.cs
│       │   ├── ConstructionAndDisposal.cs
│       │   ├── Conversions.cs
│       │   ├── ExpressionTests.cs
│       │   └── IO.cs
│       ├── IntegrationTests/
│       │   └── XmlCommentsTests.cs
│       ├── OtherTests/
│       │   ├── MpirSettings.cs
│       │   └── Random.cs
│       ├── Properties/
│       │   └── AssemblyInfo.cs
│       └── Utilities/
│           ├── Accessors.cs
│           └── Platform.cs
├── mpirxx.h
├── mpn/
│   ├── Makeasm.am
│   ├── Makefile.am
│   ├── README
│   ├── alpha/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── alpha-defs.m4
│   │   ├── cntlz.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── default.m4
│   │   ├── divexact_1.c
│   │   ├── divexact_by3c.asm
│   │   ├── ev5/
│   │   │   ├── add_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── lshift.asm
│   │   │   ├── rshift.asm
│   │   │   └── sub_n.asm
│   │   ├── ev6/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── slot.pl
│   │   │   ├── sqr_diagonal.asm
│   │   │   ├── sub_n.asm
│   │   │   └── submul_1.asm
│   │   ├── ev67/
│   │   │   ├── gcd_1.asm
│   │   │   ├── hamdist.asm
│   │   │   └── popcount.asm
│   │   ├── invert_limb.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_34lsub1.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── arm/
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── arm-defs.m4
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── invert_limb.asm
│   │   ├── longlong_inc.h
│   │   ├── mul_1.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── udiv.asm
│   ├── asm-defs.m4
│   ├── cpp-ccas
│   ├── generic/
│   │   ├── add.c
│   │   ├── add_1.c
│   │   ├── add_err1_n.c
│   │   ├── add_err2_n.c
│   │   ├── add_n.c
│   │   ├── addadd_n.c
│   │   ├── addmul_1.c
│   │   ├── addsub_n.c
│   │   ├── and_n.c
│   │   ├── andn_n.c
│   │   ├── bdivmod.c
│   │   ├── binvert.c
│   │   ├── cmp.c
│   │   ├── com_n.c
│   │   ├── comb_tables.c
│   │   ├── copyd.c
│   │   ├── copyi.c
│   │   ├── dc_bdiv_q.c
│   │   ├── dc_bdiv_q_n.c
│   │   ├── dc_bdiv_qr.c
│   │   ├── dc_bdiv_qr_n.c
│   │   ├── dc_div_q.c
│   │   ├── dc_div_qr.c
│   │   ├── dc_div_qr_n.c
│   │   ├── dc_divappr_q.c
│   │   ├── divexact.c
│   │   ├── divexact_1.c
│   │   ├── divexact_by3c.c
│   │   ├── divexact_byff.c
│   │   ├── divexact_byfobm1.c
│   │   ├── divisible_p.c
│   │   ├── divrem.c
│   │   ├── divrem_1.c
│   │   ├── divrem_2.c
│   │   ├── divrem_euclidean_qr_1.c
│   │   ├── divrem_euclidean_qr_2.c
│   │   ├── divrem_euclidean_r_1.c
│   │   ├── divrem_hensel_qr_1.c
│   │   ├── divrem_hensel_qr_1_1.c
│   │   ├── divrem_hensel_qr_1_2.c
│   │   ├── divrem_hensel_r_1.c
│   │   ├── divrem_hensel_rsh_qr_1.c
│   │   ├── dump.c
│   │   ├── fib2_ui.c
│   │   ├── fib_table.c
│   │   ├── gcd.c
│   │   ├── gcd_1.c
│   │   ├── gcd_subdiv_step.c
│   │   ├── gcdext.c
│   │   ├── gcdext_1.c
│   │   ├── gcdext_lehmer.c
│   │   ├── get_d.c
│   │   ├── get_str.c
│   │   ├── hamdist.c
│   │   ├── hgcd.c
│   │   ├── hgcd2.c
│   │   ├── hgcd2_jacobi.c
│   │   ├── hgcd_appr.c
│   │   ├── hgcd_jacobi.c
│   │   ├── hgcd_matrix.c
│   │   ├── hgcd_reduce.c
│   │   ├── hgcd_step.c
│   │   ├── inv_div_q.c
│   │   ├── inv_div_qr.c
│   │   ├── inv_div_qr_n.c
│   │   ├── inv_divappr_q.c
│   │   ├── inv_divappr_q_n.c
│   │   ├── invert.c
│   │   ├── ior_n.c
│   │   ├── iorn_n.c
│   │   ├── jacobi.c
│   │   ├── jacobi_2.c
│   │   ├── jacobi_base.c
│   │   ├── longlong_inc.h
│   │   ├── lshift.c
│   │   ├── matrix22_mul.c
│   │   ├── matrix22_mul1_inverse_vector.c
│   │   ├── mod_1.c
│   │   ├── mod_1_1.c
│   │   ├── mod_1_2.c
│   │   ├── mod_1_3.c
│   │   ├── mod_34lsub1.c
│   │   ├── modexact_1c_odd.c
│   │   ├── mp_bases.c
│   │   ├── mul.c
│   │   ├── mul_1.c
│   │   ├── mul_basecase.c
│   │   ├── mul_fft.c
│   │   ├── mul_n.c
│   │   ├── mulhigh_n.c
│   │   ├── mullow_basecase.c
│   │   ├── mullow_n.c
│   │   ├── mullow_n_basecase.c
│   │   ├── mulmid.c
│   │   ├── mulmid_basecase.c
│   │   ├── mulmid_n.c
│   │   ├── mulmod_2expm1.c
│   │   ├── mulmod_2expp1_basecase.c
│   │   ├── mulmod_bexpp1.c
│   │   ├── nand_n.c
│   │   ├── neg_n.c
│   │   ├── nior_n.c
│   │   ├── nsumdiff_n.c
│   │   ├── perfect_square_p.c
│   │   ├── popcount.c
│   │   ├── pow_1.c
│   │   ├── powlo.c
│   │   ├── powm.c
│   │   ├── preinv_divrem_1.c
│   │   ├── preinv_mod_1.c
│   │   ├── random.c
│   │   ├── random2.c
│   │   ├── randomb.c
│   │   ├── redc_1.c
│   │   ├── redc_2.c
│   │   ├── redc_n.c
│   │   ├── rootrem.c
│   │   ├── rootrem_basecase.c
│   │   ├── rrandom.c
│   │   ├── rsh_divrem_hensel_qr_1.c
│   │   ├── rsh_divrem_hensel_qr_1_1.c
│   │   ├── rsh_divrem_hensel_qr_1_2.c
│   │   ├── rshift.c
│   │   ├── sb_bdiv_q.c
│   │   ├── sb_bdiv_qr.c
│   │   ├── sb_div_q.c
│   │   ├── sb_div_qr.c
│   │   ├── sb_divappr_q.c
│   │   ├── scan0.c
│   │   ├── scan1.c
│   │   ├── set_str.c
│   │   ├── sizeinbase.c
│   │   ├── sqr_basecase.c
│   │   ├── sqrtrem.c
│   │   ├── sub.c
│   │   ├── sub_1.c
│   │   ├── sub_err1_n.c
│   │   ├── sub_err2_n.c
│   │   ├── sub_n.c
│   │   ├── subadd_n.c
│   │   ├── submul_1.c
│   │   ├── sumdiff_n.c
│   │   ├── tdiv_q.c
│   │   ├── tdiv_qr.c
│   │   ├── toom3_mul.c
│   │   ├── toom3_mul_n.c
│   │   ├── toom42_mulmid.c
│   │   ├── toom4_mul.c
│   │   ├── toom4_mul_n.c
│   │   ├── toom8_sqr_n.c
│   │   ├── toom8h_mul.c
│   │   ├── toom_couple_handling.c
│   │   ├── toom_eval_dgr3_pm1.c
│   │   ├── toom_eval_dgr3_pm2.c
│   │   ├── toom_eval_pm1.c
│   │   ├── toom_eval_pm2.c
│   │   ├── toom_eval_pm2exp.c
│   │   ├── toom_eval_pm2rexp.c
│   │   ├── toom_interpolate_16pts.c
│   │   ├── udiv_w_sdiv.c
│   │   ├── urandomb.c
│   │   ├── urandomm.c
│   │   ├── xnor_n.c
│   │   ├── xor_n.c
│   │   ├── zero.c
│   │   └── zero_p.c
│   ├── ia64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── addmul_2.asm
│   │   ├── addmul_4.asm
│   │   ├── and_n.asm
│   │   ├── andn_n.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── divexact_1.asm
│   │   ├── divrem_2.asm
│   │   ├── divrem_euclidean_qr_1.asm
│   │   ├── gcd_1.asm
│   │   ├── hamdist.asm
│   │   ├── ia64-defs.m4
│   │   ├── invert_limb.asm
│   │   ├── ior_n.asm
│   │   ├── iorn_n.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── mul_2.asm
│   │   ├── nand_n.asm
│   │   ├── nior_n.asm
│   │   ├── popcount.asm
│   │   ├── rsh1add_n.asm
│   │   ├── rsh1sub_n.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.c
│   │   ├── xnor_n.asm
│   │   └── xor_n.asm
│   ├── m4-ccas
│   ├── mips32/
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mips-defs.m4
│   │   ├── mips.m4
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── mips64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── divrem_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   └── umul.asm
│   ├── powerpc32/
│   │   ├── 750/
│   │   │   ├── com_n.asm
│   │   │   ├── lshift.asm
│   │   │   └── rshift.asm
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addlsh1_n.asm
│   │   ├── addmul_1.asm
│   │   ├── aix.m4
│   │   ├── darwin.m4
│   │   ├── divexact_by3c.asm
│   │   ├── eabi.m4
│   │   ├── elf.m4
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_34lsub1.asm
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_1.asm
│   │   ├── powerpc-defs.m4
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   ├── sublsh1_n.asm
│   │   ├── submul_1.asm
│   │   ├── umul.asm
│   │   └── vmx/
│   │       ├── and_n.asm
│   │       ├── andn_n.asm
│   │       ├── copyd.asm
│   │       ├── copyi.asm
│   │       ├── ior_n.asm
│   │       ├── iorn_n.asm
│   │       ├── nand_n.asm
│   │       ├── nior_n.asm
│   │       ├── popcount.asm
│   │       ├── xnor_n.asm
│   │       └── xor_n.asm
│   ├── powerpc64/
│   │   ├── README
│   │   ├── aix.m4
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── darwin.m4
│   │   ├── elf.m4
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mode32/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── sub_n.asm
│   │   │   └── submul_1.asm
│   │   ├── mode64/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── submul_1.asm
│   │   │   └── umul.asm
│   │   ├── rshift.asm
│   │   ├── sqr_diagonal.asm
│   │   ├── umul.asm
│   │   └── vmx/
│   │       └── popcount.asm
│   ├── sparc32/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sparc-defs.m4
│   │   ├── sub_n.asm
│   │   ├── submul_1.asm
│   │   ├── udiv.asm
│   │   ├── udiv_nfp.asm
│   │   ├── umul.asm
│   │   └── v9/
│   │       ├── README
│   │       ├── add_n.asm.broken
│   │       ├── addmul_1.asm
│   │       ├── mul_1.asm
│   │       ├── sqr_diagonal.asm
│   │       ├── sub_n.asm.broken
│   │       ├── submul_1.asm
│   │       └── udiv.asm
│   ├── sparc64/
│   │   ├── README
│   │   ├── add_n.asm
│   │   ├── addmul_1.asm
│   │   ├── addmul_2.asm
│   │   ├── copyd.asm
│   │   ├── copyi.asm
│   │   ├── divexact_1.c
│   │   ├── divrem_1.c
│   │   ├── longlong_inc.h
│   │   ├── lshift.asm
│   │   ├── mod_1.c
│   │   ├── modexact_1c_odd.c
│   │   ├── mul_1.asm
│   │   ├── rshift.asm
│   │   ├── sparc64.h
│   │   ├── sqr_diagonal.asm
│   │   ├── sub_n.asm
│   │   └── submul_1.asm
│   ├── x86_64/
│   │   ├── add_err1_n.asm
│   │   ├── add_err2_n.asm
│   │   ├── atom/
│   │   │   ├── add_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.as
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rshift.as
│   │   │   ├── sqr_basecase.as
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── bobcat/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.as
│   │   │   ├── addsub_n.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── sqr_basecase.as
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.as
│   │   │   ├── sumdiff_n.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.asm
│   │   ├── bulldozer/
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mul_basecase.asm
│   │   │   └── rshift.asm
│   │   ├── core2/
│   │   │   ├── README
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh_n.as
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── penryn/
│   │   │   │   ├── mod_1_1.asm
│   │   │   │   └── sumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.as
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── divexact_by3c.as
│   │   ├── divexact_byfobm1.as
│   │   ├── divrem_2.as
│   │   ├── divrem_euclidean_qr_1.as
│   │   ├── divrem_euclidean_qr_2.as
│   │   ├── fat/
│   │   │   ├── add_err1_n.c
│   │   │   ├── add_err2_n.c
│   │   │   ├── add_n.c
│   │   │   ├── addmul_1.c
│   │   │   ├── copyd.c
│   │   │   ├── copyi.c
│   │   │   ├── divexact_1.c
│   │   │   ├── divexact_by3c.c
│   │   │   ├── divexact_byfobm1.c
│   │   │   ├── divrem_1.c
│   │   │   ├── divrem_2.c
│   │   │   ├── divrem_euclidean_qr_1.c
│   │   │   ├── divrem_euclidean_qr_2.c
│   │   │   ├── fat.c
│   │   │   ├── fat_entry.asm
│   │   │   ├── gcd_1.c
│   │   │   ├── lshift.c
│   │   │   ├── mod_1.c
│   │   │   ├── mod_34lsub1.c
│   │   │   ├── modexact_1c_odd.c
│   │   │   ├── mul_1.c
│   │   │   ├── mul_basecase.c
│   │   │   ├── mulmid_basecase.c
│   │   │   ├── preinv_divrem_1.c
│   │   │   ├── preinv_mod_1.c
│   │   │   ├── redc_1.c
│   │   │   ├── rshift.c
│   │   │   ├── sqr_basecase.c
│   │   │   ├── sub_err1_n.c
│   │   │   ├── sub_err2_n.c
│   │   │   ├── sub_n.c
│   │   │   ├── submul_1.c
│   │   │   └── sumdiff_n.c
│   │   ├── haswell/
│   │   │   ├── add_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── avx/
│   │   │   │   ├── addmul_1.as
│   │   │   │   ├── com_n.as
│   │   │   │   ├── copyd.as
│   │   │   │   ├── copyi.as
│   │   │   │   ├── lshift.as
│   │   │   │   ├── lshift1.as
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.as
│   │   │   │   ├── rshift.as
│   │   │   │   ├── rshift1.as
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   └── submul_1.as
│   │   │   ├── hgcd2.c
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.as
│   │   │   ├── nsumdiff_n.as
│   │   │   ├── sub_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   └── sumdiff_n.as
│   │   ├── k8/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.as
│   │   │   ├── addlsh1_n.as
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── copyd.as
│   │   │   ├── copyi.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── double.asm
│   │   │   ├── half.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.as
│   │   │   ├── k10/
│   │   │   │   ├── hamdist.asm
│   │   │   │   ├── karaadd.asm
│   │   │   │   ├── karasub.asm
│   │   │   │   ├── lshift.as
│   │   │   │   ├── popcount.asm
│   │   │   │   └── rshift.as
│   │   │   ├── k8only/
│   │   │   │   ├── lshift2.asm
│   │   │   │   ├── lshift3.asm
│   │   │   │   ├── lshift4.asm
│   │   │   │   ├── lshift5.asm
│   │   │   │   ├── lshift6.asm
│   │   │   │   └── rshift2.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.as
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.as
│   │   │   ├── sublsh1_n.as
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.asm
│   │   ├── longlong_inc.h
│   │   ├── modexact_1c_odd.as
│   │   ├── mullow_n_basecase.asm
│   │   ├── mulmid_basecase.asm
│   │   ├── nehalem/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.as
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh_n.as
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh1add_n.as
│   │   │   ├── rsh1sub_n.as
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.as
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.as
│   │   │   ├── submul_1.as
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── netburst/
│   │   │   ├── add_n.as
│   │   │   ├── addmul_1.as
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.as
│   │   │   ├── andn_n.as
│   │   │   ├── com_n.as
│   │   │   ├── divexact_byff.as
│   │   │   ├── ior_n.as
│   │   │   ├── iorn_n.as
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── mul_1.as
│   │   │   ├── mul_2.as
│   │   │   ├── mul_basecase.as
│   │   │   ├── nand_n.as
│   │   │   ├── nior_n.as
│   │   │   ├── redc_1.as
│   │   │   ├── rshift.as
│   │   │   ├── sub_n.as
│   │   │   ├── submul_1.as
│   │   │   ├── xnor_n.as
│   │   │   └── xor_n.as
│   │   ├── sandybridge/
│   │   │   ├── add_n.as
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.as
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.as
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.as
│   │   │   ├── lshift1.as
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.as
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.as
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.as
│   │   │   ├── store.asm
│   │   │   ├── sub_n.as
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── skylake/
│   │   │   ├── add_n.as
│   │   │   ├── avx/
│   │   │   │   ├── add_err1_n.as
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── mul_1.as
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   └── sub_err1_n.as
│   │   │   └── sub_n.as
│   │   ├── sqr_basecase.asm
│   │   ├── sub_err1_n.asm
│   │   ├── sub_err2_n.asm
│   │   └── x86_64-defs.m4
│   ├── x86_64w/
│   │   ├── add_err1_n.asm
│   │   ├── add_err2_n.asm
│   │   ├── addmul_2.asm
│   │   ├── atom/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   └── xnor_n.asm
│   │   ├── bobcat/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshift2.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── broadwell/
│   │   │   └── avx/
│   │   │       ├── addsub_n.asm
│   │   │       ├── and_n.asm
│   │   │       ├── andn_n.asm
│   │   │       ├── ior_n.asm
│   │   │       ├── iorn_n.asm
│   │   │       ├── nand_n.asm
│   │   │       ├── nior_n.asm
│   │   │       ├── subadd_n.asm
│   │   │       ├── xnor_n.asm
│   │   │       └── xor_n.asm
│   │   ├── bulldozer/
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mul_basecase.asm
│   │   │   └── rshift.asm
│   │   ├── core2/
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── penryn/
│   │   │   │   ├── mod_1_1.asm
│   │   │   │   └── sumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── udiv_qrnnd.asm
│   │   │   ├── umul_ppmm.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── divexact_1.asm
│   │   ├── divexact_by3c.asm
│   │   ├── divexact_byfobm1.asm
│   │   ├── divrem_2.asm
│   │   ├── divrem_euclidean_qr_1.asm
│   │   ├── divrem_euclidean_qr_2.asm
│   │   ├── fat/
│   │   │   ├── add_n.c
│   │   │   ├── addmul_1.c
│   │   │   ├── copyd.c
│   │   │   ├── copyi.c
│   │   │   ├── divexact_1.c
│   │   │   ├── divexact_by3c.c
│   │   │   ├── divexact_byfobm1.c
│   │   │   ├── divrem_1.c
│   │   │   ├── divrem_2.c
│   │   │   ├── divrem_euclidean_qr_1.c
│   │   │   ├── divrem_euclidean_qr_2.c
│   │   │   ├── fat.c
│   │   │   ├── fat_entry.asm
│   │   │   ├── gcd_1.c
│   │   │   ├── lshift.c
│   │   │   ├── mod_1.c
│   │   │   ├── mod_34lsub1.c
│   │   │   ├── modexact_1c_odd.c
│   │   │   ├── mul_1.c
│   │   │   ├── mul_basecase.c
│   │   │   ├── preinv_divrem_1.c
│   │   │   ├── preinv_mod_1.c
│   │   │   ├── redc_1.c
│   │   │   ├── rshift.c
│   │   │   ├── sqr_basecase.c
│   │   │   ├── sub_n.c
│   │   │   ├── submul_1.c
│   │   │   └── sumdiff_n.c
│   │   ├── haswell/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── avx/
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── addsub_n.asm
│   │   │   │   ├── and_n.asm
│   │   │   │   ├── andn_n.asm
│   │   │   │   ├── com_n.asm
│   │   │   │   ├── copyd.asm
│   │   │   │   ├── copyi.asm
│   │   │   │   ├── ior_n.asm
│   │   │   │   ├── iorn_n.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── lshift1.asm
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── nand_n.asm
│   │   │   │   ├── nior_n.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   ├── rshift1.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   ├── subadd_n.asm
│   │   │   │   ├── submul_1.asm
│   │   │   │   ├── xnor_n.asm
│   │   │   │   └── xor_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── nsumdiff_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── k8/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── divrem_hensel_r_1.asm
│   │   │   ├── double.asm
│   │   │   ├── half.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── k10/
│   │   │   │   ├── hamdist.asm
│   │   │   │   ├── karaadd.asm
│   │   │   │   ├── karasub.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── popcount.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   └── store.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshift2.asm
│   │   │   ├── lshift3.asm
│   │   │   ├── lshift4.asm
│   │   │   ├── lshift5.asm
│   │   │   ├── lshift6.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── not.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── rshift1.asm
│   │   │   ├── rshift2.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── sublsh_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── udiv_qrnnd.asm
│   │   │   ├── umul_ppmm.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── longlong_inc.h
│   │   ├── modexact_1c_odd.asm
│   │   ├── mul_2.asm
│   │   ├── mullow_n_basecase.asm
│   │   ├── mulmid_basecase.asm
│   │   ├── nehalem/
│   │   │   ├── add_err1_n.asm
│   │   │   ├── add_n.asm
│   │   │   ├── addadd_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addlsh_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── addsub_n.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_2.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh1add_n.asm
│   │   │   ├── rsh1sub_n.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_err1_n.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── subadd_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── netburst/
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── sandybridge/
│   │   │   ├── add_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── skylake/
│   │   │   ├── add_n.asm
│   │   │   ├── addlsh1_n.asm
│   │   │   ├── addmul_1.asm
│   │   │   ├── addmul_2.asm
│   │   │   ├── and_n.asm
│   │   │   ├── andn_n.asm
│   │   │   ├── avx/
│   │   │   │   ├── add_err1_n.asm
│   │   │   │   ├── add_n.asm
│   │   │   │   ├── addmul_1.asm
│   │   │   │   ├── addsub_n.asm
│   │   │   │   ├── and_n.asm
│   │   │   │   ├── andn_n.asm
│   │   │   │   ├── ior_n.asm
│   │   │   │   ├── iorn_n.asm
│   │   │   │   ├── lshift.asm
│   │   │   │   ├── lshift1.asm
│   │   │   │   ├── mul_1.asm
│   │   │   │   ├── mul_basecase.asm
│   │   │   │   ├── nand_n.asm
│   │   │   │   ├── nior_n.asm
│   │   │   │   ├── rshift.asm
│   │   │   │   ├── rshift1.asm
│   │   │   │   ├── sqr_basecase.asm
│   │   │   │   ├── sub_err1_n.asm
│   │   │   │   ├── sub_n.asm
│   │   │   │   ├── subadd_n.asm
│   │   │   │   ├── xnor_n.asm
│   │   │   │   └── xor_n.asm
│   │   │   ├── com_n.asm
│   │   │   ├── copyd.asm
│   │   │   ├── copyi.asm
│   │   │   ├── divexact_byff.asm
│   │   │   ├── divrem_hensel_qr_1_1.asm
│   │   │   ├── hamdist.asm
│   │   │   ├── ior_n.asm
│   │   │   ├── iorn_n.asm
│   │   │   ├── karaadd.asm
│   │   │   ├── karasub.asm
│   │   │   ├── lshift.asm
│   │   │   ├── lshift1.asm
│   │   │   ├── lshiftc.asm
│   │   │   ├── mod_1_1.asm
│   │   │   ├── mod_1_2.asm
│   │   │   ├── mod_1_3.asm
│   │   │   ├── mul_1.asm
│   │   │   ├── mul_2.asm
│   │   │   ├── mul_basecase.asm
│   │   │   ├── mullow_n_basecase.asm
│   │   │   ├── nand_n.asm
│   │   │   ├── nior_n.asm
│   │   │   ├── popcount.asm
│   │   │   ├── redc_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_1.asm
│   │   │   ├── rsh_divrem_hensel_qr_1_2.asm
│   │   │   ├── rshift.asm
│   │   │   ├── sqr_basecase.asm
│   │   │   ├── store.asm
│   │   │   ├── sub_n.asm
│   │   │   ├── sublsh1_n.asm
│   │   │   ├── submul_1.asm
│   │   │   ├── sumdiff_n.asm
│   │   │   ├── xnor_n.asm
│   │   │   └── xor_n.asm
│   │   ├── sqr_basecase.asm
│   │   ├── sub_err1_n.asm
│   │   ├── sub_err2_n.asm
│   │   ├── udiv_qrnnd.asm
│   │   └── umul_ppmm.asm
│   └── x86w/
│       ├── add_n.asm
│       ├── addmul_1.asm
│       ├── copyd.asm
│       ├── copyi.asm
│       ├── divexact_1.asm
│       ├── divexact_by3c.asm
│       ├── divrem_1.asm
│       ├── longlong_inc.h
│       ├── lshift.asm
│       ├── mod_1.asm
│       ├── mod_34lsub1.asm
│       ├── mul_1.asm
│       ├── mul_basecase.asm
│       ├── p3/
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── divrem_1.asm
│       │   ├── hamdist.asm
│       │   ├── lshift.asm
│       │   ├── mod_1.asm
│       │   ├── p3mmx/
│       │   │   ├── hamdist.asm
│       │   │   └── popcount.asm
│       │   ├── popcount.asm
│       │   └── submul_1.asm
│       ├── p4/
│       │   ├── add_n.asm
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── copyi.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── hamdist.asm
│       │   ├── lshift.asm
│       │   ├── mmx/
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   ├── mod_34lsub1.asm
│       │   ├── modexact_1c_odd.asm
│       │   ├── mul_1.asm
│       │   ├── mul_basecase.asm
│       │   ├── popcount.asm
│       │   ├── rshift.asm
│       │   ├── sqr_basecase.asm
│       │   ├── sse2/
│       │   │   ├── add_n.asm
│       │   │   ├── addmul_1.asm
│       │   │   ├── divexact_1.asm
│       │   │   ├── divexact_by3c.asm
│       │   │   ├── mod_34lsub1.asm
│       │   │   ├── modexact_1c_odd.asm
│       │   │   ├── mul_1.asm
│       │   │   ├── mul_basecase.asm
│       │   │   ├── sqr_basecase.asm
│       │   │   ├── sub_n.asm
│       │   │   └── submul_1.asm
│       │   ├── sub_n.asm
│       │   └── submul_1.asm
│       ├── p6/
│       │   ├── addmul_1.asm
│       │   ├── copyd.asm
│       │   ├── divexact_1.asm
│       │   ├── divexact_by3c.asm
│       │   ├── mmx/
│       │   │   ├── divrem_1.asm
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   ├── mod_1.asm
│       │   ├── modexact_1c_odd.asm
│       │   ├── p3mmx/
│       │   │   ├── hamdist.asm
│       │   │   └── popcount.asm
│       │   ├── sqr_basecase.asm
│       │   └── submul_1.asm
│       ├── pentium4/
│       │   ├── copyd.asm
│       │   ├── copyi.asm
│       │   ├── mmx/
│       │   │   ├── hamdist.asm
│       │   │   ├── lshift.asm
│       │   │   ├── popcount.asm
│       │   │   └── rshift.asm
│       │   └── sse2/
│       │       ├── add_n.asm
│       │       ├── addmul_1.asm
│       │       ├── divexact_1.asm
│       │       ├── divexact_by3c.asm
│       │       ├── mod_34lsub1.asm
│       │       ├── modexact_1c_odd.asm
│       │       ├── mul_1.asm
│       │       ├── mul_basecase.asm
│       │       ├── sqr_basecase.asm
│       │       ├── sub_n.asm
│       │       └── submul_1.asm
│       ├── rshift.asm
│       ├── sub_n.asm
│       ├── submul_1.asm
│       ├── udiv_qrnnd.asm
│       ├── umul_ppmm.asm
│       └── x86i.inc
├── mpq/
│   ├── Makefile.am
│   ├── abs.c
│   ├── aors.c
│   ├── canonicalize.c
│   ├── clear.c
│   ├── clears.c
│   ├── cmp.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── div.c
│   ├── equal.c
│   ├── get_d.c
│   ├── get_den.c
│   ├── get_num.c
│   ├── get_str.c
│   ├── init.c
│   ├── inits.c
│   ├── inp_str.c
│   ├── inv.c
│   ├── md_2exp.c
│   ├── mul.c
│   ├── neg.c
│   ├── out_str.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_den.c
│   ├── set_f.c
│   ├── set_num.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_ui.c
│   ├── set_z.c
│   └── swap.c
├── mpz/
│   ├── 2fac_ui.c
│   ├── Makefile.am
│   ├── abs.c
│   ├── add.c
│   ├── add_ui.c
│   ├── and.c
│   ├── aors.h
│   ├── aors_ui.h
│   ├── aorsmul.c
│   ├── aorsmul_i.c
│   ├── array_init.c
│   ├── bin_ui.c
│   ├── bin_uiui.c
│   ├── cdiv_q.c
│   ├── cdiv_q_ui.c
│   ├── cdiv_qr.c
│   ├── cdiv_qr_ui.c
│   ├── cdiv_r.c
│   ├── cdiv_r_ui.c
│   ├── cdiv_ui.c
│   ├── cfdiv_q_2exp.c
│   ├── cfdiv_r_2exp.c
│   ├── clear.c
│   ├── clears.c
│   ├── clrbit.c
│   ├── cmp.c
│   ├── cmp_d.c
│   ├── cmp_si.c
│   ├── cmp_ui.c
│   ├── cmpabs.c
│   ├── cmpabs_d.c
│   ├── cmpabs_ui.c
│   ├── com.c
│   ├── combit.c
│   ├── cong.c
│   ├── cong_2exp.c
│   ├── cong_ui.c
│   ├── dive_ui.c
│   ├── divegcd.c
│   ├── divexact.c
│   ├── divis.c
│   ├── divis_2exp.c
│   ├── divis_ui.c
│   ├── dump.c
│   ├── export.c
│   ├── fac_ui.c
│   ├── fdiv_q.c
│   ├── fdiv_q_ui.c
│   ├── fdiv_qr.c
│   ├── fdiv_qr_ui.c
│   ├── fdiv_r.c
│   ├── fdiv_r_ui.c
│   ├── fdiv_ui.c
│   ├── fib2_ui.c
│   ├── fib_ui.c
│   ├── fits_s.h
│   ├── fits_si.c
│   ├── fits_sint.c
│   ├── fits_slong.c
│   ├── fits_sshort.c
│   ├── fits_ui.c
│   ├── fits_uint.c
│   ├── fits_ulong.c
│   ├── fits_ushort.c
│   ├── gcd.c
│   ├── gcd_ui.c
│   ├── gcdext.c
│   ├── get_d.c
│   ├── get_d_2exp.c
│   ├── get_si.c
│   ├── get_str.c
│   ├── get_sx.c
│   ├── get_ui.c
│   ├── get_ux.c
│   ├── getlimbn.c
│   ├── hamdist.c
│   ├── import.c
│   ├── init.c
│   ├── init2.c
│   ├── inits.c
│   ├── inp_raw.c
│   ├── inp_str.c
│   ├── invert.c
│   ├── ior.c
│   ├── iset.c
│   ├── iset_d.c
│   ├── iset_si.c
│   ├── iset_str.c
│   ├── iset_sx.c
│   ├── iset_ui.c
│   ├── iset_ux.c
│   ├── jacobi.c
│   ├── kronsz.c
│   ├── kronuz.c
│   ├── kronzs.c
│   ├── kronzu.c
│   ├── lcm.c
│   ├── lcm_ui.c
│   ├── likely_prime_p.c
│   ├── limbs_finish.c
│   ├── limbs_modify.c
│   ├── limbs_read.c
│   ├── limbs_write.c
│   ├── lucnum2_ui.c
│   ├── lucnum_ui.c
│   ├── mfac_uiui.c
│   ├── miller_rabin.c
│   ├── millerrabin.c
│   ├── mod.c
│   ├── mul.c
│   ├── mul_2exp.c
│   ├── mul_i.h
│   ├── mul_si.c
│   ├── mul_ui.c
│   ├── n_pow_ui.c
│   ├── neg.c
│   ├── next_prime_candidate.c
│   ├── nextprime.c
│   ├── nthroot.c
│   ├── oddfac_1.c
│   ├── out_raw.c
│   ├── out_str.c
│   ├── perfpow.c
│   ├── perfsqr.c
│   ├── popcount.c
│   ├── pow_ui.c
│   ├── powm.c
│   ├── powm_ui.c
│   ├── pprime_p.c
│   ├── primorial_ui.c
│   ├── probable_prime_p.c
│   ├── prodlimbs.c
│   ├── realloc.c
│   ├── realloc2.c
│   ├── remove.c
│   ├── roinit_n.c
│   ├── root.c
│   ├── rootrem.c
│   ├── rrandomb.c
│   ├── scan0.c
│   ├── scan1.c
│   ├── set.c
│   ├── set_d.c
│   ├── set_f.c
│   ├── set_q.c
│   ├── set_si.c
│   ├── set_str.c
│   ├── set_sx.c
│   ├── set_ui.c
│   ├── set_ux.c
│   ├── setbit.c
│   ├── size.c
│   ├── sizeinbase.c
│   ├── sqrt.c
│   ├── sqrtrem.c
│   ├── sub.c
│   ├── sub_ui.c
│   ├── swap.c
│   ├── tdiv_q.c
│   ├── tdiv_q_2exp.c
│   ├── tdiv_q_ui.c
│   ├── tdiv_qr.c
│   ├── tdiv_qr_ui.c
│   ├── tdiv_r.c
│   ├── tdiv_r_2exp.c
│   ├── tdiv_r_ui.c
│   ├── tdiv_ui.c
│   ├── trial_division.c
│   ├── tstbit.c
│   ├── ui_pow_ui.c
│   ├── ui_sub.c
│   ├── urandomb.c
│   ├── urandomm.c
│   └── xor.c
├── nextprime.c
├── primesieve.c
├── printf/
│   ├── Makefile.am
│   ├── asprintf.c
│   ├── asprntffuns.c
│   ├── doprnt.c
│   ├── doprntf.c
│   ├── doprnti.c
│   ├── fprintf.c
│   ├── obprintf.c
│   ├── obprntffuns.c
│   ├── obvprintf.c
│   ├── printf.c
│   ├── printffuns.c
│   ├── repl-vsnprintf.c
│   ├── snprintf.c
│   ├── snprntffuns.c
│   ├── sprintf.c
│   ├── sprintffuns.c
│   ├── vasprintf.c
│   ├── vfprintf.c
│   ├── vprintf.c
│   ├── vsnprintf.c
│   └── vsprintf.c
├── randbui.c
├── randclr.c
├── randdef.c
├── randiset.c
├── randlc2s.c
├── randlc2x.c
├── randmt.c
├── randmt.h
├── randmts.c
├── randmui.c
├── rands.c
├── randsd.c
├── randsdui.c
├── scanf/
│   ├── Makefile.am
│   ├── doscan.c
│   ├── fscanf.c
│   ├── fscanffuns.c
│   ├── scanf.c
│   ├── sscanf.c
│   ├── sscanffuns.c
│   ├── vfscanf.c
│   ├── vscanf.c
│   └── vsscanf.c
├── strip_fPIC.sh
├── tal-debug.c
├── tal-notreent.c
├── tal-reent.c
├── tests/
│   ├── Makefile.am
│   ├── cxx/
│   │   ├── Makefile.am
│   │   ├── clocale.c
│   │   ├── t-assign.cc
│   │   ├── t-binary.cc
│   │   ├── t-cast.cc
│   │   ├── t-constr.cc
│   │   ├── t-headers.cc
│   │   ├── t-istream.cc
│   │   ├── t-locale.cc
│   │   ├── t-misc.cc
│   │   ├── t-ops.cc
│   │   ├── t-ostream.cc
│   │   ├── t-prec.cc
│   │   ├── t-rand.cc
│   │   ├── t-ternary.cc
│   │   └── t-unary.cc
│   ├── devel/
│   │   ├── Makefile.am
│   │   ├── README
│   │   ├── addmul_N.c
│   │   ├── anymul_1.c
│   │   ├── aors_n.c
│   │   ├── copy.c
│   │   ├── divmod_1.c
│   │   ├── logops_n.c
│   │   ├── mul_N.c
│   │   ├── shift.c
│   │   └── try.c
│   ├── fft/
│   │   ├── Makefile.am
│   │   ├── t-adjust.c
│   │   ├── t-adjust_sqrt2.c
│   │   ├── t-butterfly.c
│   │   ├── t-butterfly_lshB.c
│   │   ├── t-butterfly_rshB.c
│   │   ├── t-butterfly_sqrt2.c
│   │   ├── t-butterfly_twiddle.c
│   │   ├── t-div_2expmod_2expp1.c
│   │   ├── t-fft_ifft_mfa_trunc_sqrt2.c
│   │   ├── t-fft_ifft_negacyclic.c
│   │   ├── t-fft_ifft_radix2.c
│   │   ├── t-fft_ifft_trunc.c
│   │   ├── t-fft_ifft_trunc_sqrt2.c
│   │   ├── t-mul_2expmod_2expp1.c
│   │   ├── t-mul_fft_main.c
│   │   ├── t-mul_mfa_trunc_sqrt2.c
│   │   ├── t-mul_trunc_sqrt2.c
│   │   ├── t-mulmod_2expp1.c
│   │   ├── t-normmod_2expp1.c
│   │   └── t-split_combine_bits.c
│   ├── memory.c
│   ├── misc/
│   │   ├── Makefile.am
│   │   ├── t-locale.c
│   │   ├── t-printf.c
│   │   └── t-scanf.c
│   ├── misc.c
│   ├── mpf/
│   │   ├── Makefile.am
│   │   ├── reuse.c
│   │   ├── t-add.c
│   │   ├── t-cmp_d.c
│   │   ├── t-cmp_si.c
│   │   ├── t-conv.c
│   │   ├── t-div.c
│   │   ├── t-dm2exp.c
│   │   ├── t-eq.c
│   │   ├── t-fits.c
│   │   ├── t-get_d.c
│   │   ├── t-get_d_2exp.c
│   │   ├── t-get_si.c
│   │   ├── t-get_ui.c
│   │   ├── t-gsprec.c
│   │   ├── t-inp_str.c
│   │   ├── t-int_p.c
│   │   ├── t-mul_ui.c
│   │   ├── t-muldiv.c
│   │   ├── t-set.c
│   │   ├── t-set_q.c
│   │   ├── t-set_si.c
│   │   ├── t-set_ui.c
│   │   ├── t-sqrt.c
│   │   ├── t-sqrt_ui.c
│   │   ├── t-sub.c
│   │   ├── t-trunc.c
│   │   └── t-ui_div.c
│   ├── mpn/
│   │   ├── Makefile.am
│   │   ├── t-addadd_n.c
│   │   ├── t-addsub_n.c
│   │   ├── t-aors_1.c
│   │   ├── t-asmtype.c
│   │   ├── t-dc_bdiv_q.c
│   │   ├── t-dc_bdiv_q_n.c
│   │   ├── t-dc_bdiv_qr.c
│   │   ├── t-dc_bdiv_qr_n.c
│   │   ├── t-dc_div_q.c
│   │   ├── t-dc_div_qr.c
│   │   ├── t-dc_div_qr_n.c
│   │   ├── t-dc_divappr_q.c
│   │   ├── t-divebyff.c
│   │   ├── t-divebyfobm1.c
│   │   ├── t-divrem_1.c
│   │   ├── t-fat.c
│   │   ├── t-gcdext.c
│   │   ├── t-get_d.c
│   │   ├── t-hgcd.c
│   │   ├── t-instrument.c
│   │   ├── t-inv_div_q.c
│   │   ├── t-inv_div_qr.c
│   │   ├── t-inv_div_qr_n.c
│   │   ├── t-inv_divappr_q.c
│   │   ├── t-inv_divappr_q_n.c
│   │   ├── t-invert.c
│   │   ├── t-iord_u.c
│   │   ├── t-logic.c
│   │   ├── t-lorrshift1.c
│   │   ├── t-matrix22.c
│   │   ├── t-mp_bases.c
│   │   ├── t-mullow_basecase.c
│   │   ├── t-mullowhigh.c
│   │   ├── t-mulmid.c
│   │   ├── t-mulmod_2expm1.c
│   │   ├── t-mulmod_2expp1.c
│   │   ├── t-neg.c
│   │   ├── t-perfsqr.c
│   │   ├── t-redc_1.c
│   │   ├── t-sb_bdiv_q.c
│   │   ├── t-sb_bdiv_qr.c
│   │   ├── t-sb_div_q.c
│   │   ├── t-sb_div_qr.c
│   │   ├── t-sb_divappr_q.c
│   │   ├── t-scan.c
│   │   ├── t-sizeinbase.c
│   │   ├── t-subadd_n.c
│   │   ├── t-tdiv_q.c
│   │   └── t-tdiv_qr.c
│   ├── mpq/
│   │   ├── Makefile.am
│   │   ├── t-aors.c
│   │   ├── t-cmp.c
│   │   ├── t-cmp_si.c
│   │   ├── t-cmp_ui.c
│   │   ├── t-cmp_z.c
│   │   ├── t-equal.c
│   │   ├── t-get_d.c
│   │   ├── t-get_str.c
│   │   ├── t-inp_str.c
│   │   ├── t-md_2exp.c
│   │   ├── t-set_f.c
│   │   └── t-set_str.c
│   ├── mpz/
│   │   ├── Makefile.am
│   │   ├── bit.c
│   │   ├── convert.c
│   │   ├── dive.c
│   │   ├── dive_ui.c
│   │   ├── io.c
│   │   ├── logic.c
│   │   ├── reuse.c
│   │   ├── t-addsub.c
│   │   ├── t-aorsmul.c
│   │   ├── t-bin.c
│   │   ├── t-cdiv_ui.c
│   │   ├── t-cmp.c
│   │   ├── t-cmp_d.c
│   │   ├── t-cmp_si.c
│   │   ├── t-cong.c
│   │   ├── t-cong_2exp.c
│   │   ├── t-div_2exp.c
│   │   ├── t-divis.c
│   │   ├── t-divis_2exp.c
│   │   ├── t-export.c
│   │   ├── t-fac_ui.c
│   │   ├── t-fdiv.c
│   │   ├── t-fdiv_ui.c
│   │   ├── t-fib_ui.c
│   │   ├── t-fits.c
│   │   ├── t-gcd.c
│   │   ├── t-gcd_ui.c
│   │   ├── t-get_d.c
│   │   ├── t-get_d_2exp.c
│   │   ├── t-get_si.c
│   │   ├── t-get_sx.c
│   │   ├── t-get_ux.c
│   │   ├── t-hamdist.c
│   │   ├── t-import.c
│   │   ├── t-inp_str.c
│   │   ├── t-io_raw.c
│   │   ├── t-jac.c
│   │   ├── t-lcm.c
│   │   ├── t-likely_prime_p.c
│   │   ├── t-limbs.c
│   │   ├── t-lucnum_ui.c
│   │   ├── t-mfac_uiui.c
│   │   ├── t-mul.c
│   │   ├── t-mul_i.c
│   │   ├── t-next_prime_candidate.c
│   │   ├── t-oddeven.c
│   │   ├── t-perfpow.c
│   │   ├── t-perfsqr.c
│   │   ├── t-popcount.c
│   │   ├── t-pow.c
│   │   ├── t-powm.c
│   │   ├── t-powm_ui.c
│   │   ├── t-pprime_p.c
│   │   ├── t-primorial_ui.c
│   │   ├── t-root.c
│   │   ├── t-scan.c
│   │   ├── t-set_d.c
│   │   ├── t-set_f.c
│   │   ├── t-set_si.c
│   │   ├── t-set_str.c
│   │   ├── t-set_sx.c
│   │   ├── t-set_ux.c
│   │   ├── t-sizeinbase.c
│   │   ├── t-sqrtrem.c
│   │   ├── t-tdiv.c
│   │   ├── t-tdiv_ui.c
│   │   └── t-trial_division.c
│   ├── rand/
│   │   ├── Makefile.am
│   │   ├── findlc.c
│   │   ├── gen.c
│   │   ├── gmpstat.h
│   │   ├── spect.c
│   │   ├── stat.c
│   │   ├── statlib.c
│   │   ├── t-iset.c
│   │   ├── t-lc2exp.c
│   │   ├── t-mt.c
│   │   ├── t-rand.c
│   │   ├── t-urbui.c
│   │   ├── t-urmui.c
│   │   ├── t-urndmm.c
│   │   └── zdiv_round.c
│   ├── refmpf.c
│   ├── refmpn.c
│   ├── refmpq.c
│   ├── refmpz.c
│   ├── spinner.c
│   ├── t-bswap.c
│   ├── t-constants.c
│   ├── t-count_zeros.c
│   ├── t-gmpmax.c
│   ├── t-hightomask.c
│   ├── t-modlinv.c
│   ├── t-parity.c
│   ├── t-popc.c
│   ├── t-sub.c
│   ├── tests.h
│   ├── trace.c
│   ├── x86_64call.as
│   ├── x86_64check.c
│   ├── x86call.asm
│   └── x86check.c
├── tune/
│   ├── Makefile.am
│   ├── README
│   ├── aligntest
│   ├── alpha.asm
│   ├── benchmpn
│   ├── common.c
│   ├── divrem1div.c
│   ├── divrem1inv.c
│   ├── divrem2div.c
│   ├── divrem2inv.c
│   ├── fac_ui_large.c
│   ├── fac_ui_small.c
│   ├── freq.c
│   ├── gcdext_double.c
│   ├── gcdext_single.c
│   ├── gcdextod.c
│   ├── gcdextos.c
│   ├── hgcd_appr_lehmer.c
│   ├── hgcd_lehmer.c
│   ├── hgcd_reduce_1.c
│   ├── hgcd_reduce_2.c
│   ├── hppa.asm
│   ├── hppa2.asm
│   ├── hppa2w.asm
│   ├── ia64.asm
│   ├── jacbase1.c
│   ├── jacbase2.c
│   ├── jacbase3.c
│   ├── jacbase4.c
│   ├── many.pl
│   ├── mod_1_div.c
│   ├── mod_1_inv.c
│   ├── modlinv.c
│   ├── noop.c
│   ├── pentium.asm
│   ├── powerpc.asm
│   ├── powerpc64.asm
│   ├── powm_mod.c
│   ├── powm_redc.c
│   ├── preinv_divrem_1.c
│   ├── set_strb.c
│   ├── set_strp.c
│   ├── set_strs.c
│   ├── sparcv9.asm
│   ├── speed-ext.c
│   ├── speed.c
│   ├── speed.h
│   ├── time.c
│   ├── tuneup.c
│   └── x86_64.as
├── version.c
├── yasm_mac.inc.fat
├── yasm_mac.inc.nofat
├── yasm_macwin.inc.fat
├── yasm_macwin.inc.nofat
└── ylwrap
Download .txt
Showing preview only (225K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3713 symbols across 784 files)

FILE: assert.c
  function __gmp_assert_header (line 32) | void
  function __gmp_assert_fail (line 43) | void

FILE: compat.c
  function mp_limb_t (line 31) | mp_limb_t
  function mp_limb_t (line 41) | mp_limb_t
  function __gmpz_legendre (line 50) | int

FILE: cpuid.c
  function fake_cpuid (line 63) | long fake_cpuid(char *p,unsigned int level)
  type cpuvec_t (line 99) | struct cpuvec_t
  type cpuvec_t (line 100) | struct cpuvec_t

FILE: cxx/isfuns.cc
  function __gmp_istream_set_base (line 31) | int
  function __gmp_istream_set_digits (line 74) | void

FILE: cxx/ismpf.cc
  function istream (line 43) | istream &

FILE: cxx/ismpq.cc
  function istream (line 31) | istream &

FILE: cxx/ismpz.cc
  function istream (line 36) | istream &

FILE: cxx/ismpznw.cc
  function istream (line 34) | istream &

FILE: cxx/osdoprnti.cc
  function ostream (line 40) | ostream&

FILE: cxx/osfuns.cc
  type doprnt_funs_t (line 41) | struct doprnt_funs_t
  function __gmp_doprnt_params_from_ios (line 49) | void

FILE: cxx/osmpf.cc
  function ostream (line 39) | ostream&

FILE: cxx/osmpq.cc
  function ostream (line 32) | ostream&

FILE: cxx/osmpz.cc
  function ostream (line 32) | ostream&

FILE: devel/gen-bases.c
  function ulog2 (line 38) | unsigned int
  function generate (line 47) | void
  function header (line 78) | void
  function table (line 102) | void
  function main (line 144) | int

FILE: devel/gen-fac_ui.c
  function odd_products (line 29) | void
  function gen_consts (line 46) | int
  function main (line 140) | int

FILE: devel/gen-fib.c
  function generate (line 28) | void
  function header (line 71) | void
  function table (line 84) | void
  function main (line 110) | int

FILE: devel/gen-psqr.c
  type rawfactor_t (line 107) | struct rawfactor_t {
  type rawfactor_t (line 111) | struct rawfactor_t
  type factor_t (line 115) | struct factor_t {
  type factor_t (line 121) | struct factor_t
  function log2_ceil (line 125) | int
  function isprime (line 136) | int
  function mpz_preinv_invert (line 150) | void
  function mem_copyi (line 169) | void
  function mpz_invert_2exp (line 178) | void
  function mpz_invert_ui_2exp (line 207) | void
  function f_cmp_divisor (line 216) | int
  function f_cmp_fraction (line 230) | int
  function mul_2exp_mod (line 256) | int
  function neg_mod (line 266) | int
  function square_mask (line 275) | void
  function generate_sq_res_0x100 (line 292) | void
  function generate_mod (line 316) | void
  function print (line 518) | void
  function main (line 640) | int

FILE: errno.c
  function __gmp_exception (line 39) | void
  function __gmp_sqrt_of_negative (line 50) | void
  function __gmp_divide_by_zero (line 55) | void

FILE: extract-dbl.c
  function __gmp_extract_double (line 29) | int

FILE: fft/adjust.c
  function mpir_fft_adjust (line 35) | void mpir_fft_adjust(mp_ptr r, mp_ptr i1, mp_size_t i, mp_size_t limbs, ...

FILE: fft/adjust_sqrt2.c
  function mpir_fft_adjust_sqrt2 (line 35) | void mpir_fft_adjust_sqrt2(mp_ptr r, mp_ptr i1,

FILE: fft/butterfly_lshB.c
  function mpir_butterfly_lshB (line 34) | void mpir_butterfly_lshB(mp_ptr t, mp_ptr u, mp_ptr i1,

FILE: fft/butterfly_rshB.c
  function mpir_butterfly_rshB (line 34) | void mpir_butterfly_rshB(mp_ptr t, mp_ptr u, mp_ptr i1,

FILE: fft/combine_bits.c
  function mpir_fft_combine_limbs (line 35) | void
  function mpir_fft_combine_bits (line 53) | void

FILE: fft/div_2expmod_2expp1.c
  function mpn_div_2expmod_2expp1 (line 37) | void mpn_div_2expmod_2expp1(mp_ptr t, mp_srcptr i1, mp_size_t limbs, mp_...

FILE: fft/fermat_to_mpz.c
  function mpir_fermat_to_mpz (line 34) | void mpir_fermat_to_mpz(mpz_t m, mp_ptr i, mp_size_t limbs)

FILE: fft/fft_mfa_trunc_sqrt2.c
  function mpir_fft_butterfly_twiddle (line 34) | void mpir_fft_butterfly_twiddle(mp_ptr u, mp_ptr v,
  function mpir_fft_radix2_twiddle (line 65) | void mpir_fft_radix2_twiddle(mp_ptr * ii, mp_size_t is,
  function mpir_fft_trunc1_twiddle (line 111) | void mpir_fft_trunc1_twiddle(mp_ptr * ii, mp_size_t is,
  function mpir_fft_mfa_trunc_sqrt2 (line 142) | void mpir_fft_mfa_trunc_sqrt2(mp_ptr * ii, mp_size_t n,
  function mpir_fft_mfa_trunc_sqrt2_outer (line 253) | void mpir_fft_mfa_trunc_sqrt2_outer(mp_ptr * ii, mp_size_t n,

FILE: fft/fft_mfa_trunc_sqrt2_inner.c
  function mpir_fft_mfa_trunc_sqrt2_inner (line 34) | void mpir_fft_mfa_trunc_sqrt2_inner(mp_ptr * ii, mp_ptr * jj, mp_size_t n,

FILE: fft/fft_negacyclic.c
  function mpir_fft_negacyclic (line 34) | void mpir_fft_negacyclic(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,

FILE: fft/fft_radix2.c
  function mpir_fft_butterfly (line 34) | void mpir_fft_butterfly(mp_ptr s, mp_ptr t, mp_ptr i1,
  function mpir_fft_radix2 (line 48) | void mpir_fft_radix2(mp_ptr * ii,

FILE: fft/fft_trunc.c
  function mpir_fft_trunc1 (line 34) | void mpir_fft_trunc1(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,
  function mpir_fft_trunc (line 63) | void mpir_fft_trunc(mp_ptr * ii,  mp_size_t n, mp_bitcnt_t w,

FILE: fft/fft_trunc_sqrt2.c
  function mpir_fft_butterfly_sqrt2 (line 34) | void mpir_fft_butterfly_sqrt2(mp_ptr s, mp_ptr t,
  function mpir_fft_trunc_sqrt2 (line 78) | void mpir_fft_trunc_sqrt2(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,

FILE: fft/ifft_mfa_trunc_sqrt2.c
  function mpir_ifft_butterfly_twiddle (line 34) | void mpir_ifft_butterfly_twiddle(mp_ptr u, mp_ptr v,
  function mpir_ifft_radix2_twiddle (line 65) | void mpir_ifft_radix2_twiddle(mp_ptr * ii, mp_size_t is,
  function mpir_ifft_trunc1_twiddle (line 96) | void mpir_ifft_trunc1_twiddle(mp_ptr * ii, mp_size_t is,
  function mpir_ifft_mfa_trunc_sqrt2 (line 148) | void mpir_ifft_mfa_trunc_sqrt2(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,
  function mpir_ifft_mfa_trunc_sqrt2_outer (line 264) | void mpir_ifft_mfa_trunc_sqrt2_outer(mp_ptr * ii, mp_size_t n, mp_bitcnt...

FILE: fft/ifft_negacyclic.c
  function mpir_ifft_negacyclic (line 34) | void mpir_ifft_negacyclic(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,

FILE: fft/ifft_radix2.c
  function mpir_ifft_butterfly (line 34) | void mpir_ifft_butterfly(mp_ptr s, mp_ptr t, mp_ptr i1,
  function mpir_ifft_radix2 (line 48) | void mpir_ifft_radix2(mp_ptr * ii, mp_size_t n,

FILE: fft/ifft_trunc.c
  function mpir_ifft_trunc1 (line 34) | void mpir_ifft_trunc1(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,
  function mpir_ifft_trunc (line 85) | void mpir_ifft_trunc(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,

FILE: fft/ifft_trunc_sqrt2.c
  function mpir_ifft_butterfly_sqrt2 (line 34) | void mpir_ifft_butterfly_sqrt2(mp_ptr s, mp_ptr t, mp_ptr i1,
  function mpir_ifft_trunc_sqrt2 (line 79) | void mpir_ifft_trunc_sqrt2(mp_ptr * ii, mp_size_t n, mp_bitcnt_t w,

FILE: fft/mul_2expmod_2expp1.c
  function mpn_mul_2expmod_2expp1 (line 36) | void mpn_mul_2expmod_2expp1(mp_ptr t, mp_ptr i1, mp_size_t limbs, mp_bit...

FILE: fft/mul_fft_main.c
  function mpn_mul_fft_main (line 37) | void

FILE: fft/mul_mfa_trunc_sqrt2.c
  function mpn_mul_mfa_trunc_sqrt2 (line 34) | void

FILE: fft/mul_trunc_sqrt2.c
  function mpn_mul_trunc_sqrt2 (line 34) | void

FILE: fft/mulmod_2expp1.c
  function mpir_fft_naive_convolution_1 (line 37) | void mpir_fft_naive_convolution_1(mp_ptr r, mp_srcptr ii, mp_srcptr jj, ...
  function mpir_fft_mulmod_2expp1 (line 54) | void mpir_fft_mulmod_2expp1(mp_ptr r1, mp_srcptr i1, mp_srcptr i2,
  function mpir_si (line 181) | mpir_si mpir_fft_adjust_limbs(mp_size_t limbs)
  function mpn_mulmod_Bexpp1_fft (line 214) | int

FILE: fft/normmod_2expp1.c
  function mpn_normmod_2expp1 (line 34) | void

FILE: fft/revbin.c
  function mp_limb_t (line 45) | mp_limb_t mpir_revbin(mp_limb_t in, mp_limb_t bits)

FILE: fft/split_bits.c
  function mp_size_t (line 34) | mp_size_t
  function mp_size_t (line 55) | mp_size_t mpir_fft_split_bits(mp_ptr * poly, mp_srcptr limbs,

FILE: gmp-impl.h
  type uint_least32_t (line 343) | typedef uint_least32_t      gmp_uint_least32_t;
  type gmp_uint_least32_t (line 346) | typedef unsigned short      gmp_uint_least32_t;
  type gmp_uint_least32_t (line 349) | typedef unsigned            gmp_uint_least32_t;
  type gmp_uint_least32_t (line 351) | typedef unsigned long       gmp_uint_least32_t;
  type gmp_pi1_t (line 357) | typedef struct {mp_limb_t inv32;} gmp_pi1_t;
  type gmp_pi2_t (line 358) | typedef struct {mp_limb_t inv21, inv32, inv53;} gmp_pi2_t;
  type tmp_reentrant_t (line 448) | struct tmp_reentrant_t {
  type tmp_reentrant_t (line 452) | struct tmp_reentrant_t
  type tmp_reentrant_t (line 453) | struct tmp_reentrant_t
  type tmp_marker (line 485) | struct tmp_marker
  type tmp_marker (line 491) | struct tmp_marker
  type tmp_marker (line 492) | struct tmp_marker
  type tmp_debug_t (line 507) | struct tmp_debug_t {
  type tmp_debug_entry_t (line 512) | struct tmp_debug_entry_t {
  type tmp_debug_t (line 517) | struct tmp_debug_t
  type tmp_debug_t (line 518) | struct tmp_debug_t
  type tmp_debug_t (line 521) | struct tmp_debug_t
  type tmp_debug_t (line 524) | struct tmp_debug_t
  type tmp_debug_t (line 542) | struct tmp_debug_t
  type tmp_debug_t (line 542) | struct tmp_debug_t
  type __gmp_randstate_struct (line 1303) | typedef __gmp_randstate_struct *gmp_randstate_ptr;
  type __gmp_randstate_struct (line 1304) | typedef const __gmp_randstate_struct *gmp_randstate_srcptr;
  type gmp_randfnptr_t (line 1321) | typedef struct {
  function log_n_max (line 1785) | static inline unsigned
  type gmp_primesieve_t (line 1794) | typedef struct
  type bases (line 2639) | struct bases
  type __mpir_out_struct (line 2672) | typedef struct
  type __mpir_out_struct (line 2679) | typedef __mpir_out_struct mpir_out_struct[1];
  type __mpir_out_struct (line 2680) | typedef __mpir_out_struct *mpir_out_ptr;
  type UQItype (line 3340) | typedef unsigned int UQItype	__attribute__ ((mode (QI)));
  type SItype (line 3341) | typedef		 int SItype	__attribute__ ((mode (SI)));
  type USItype (line 3342) | typedef unsigned int USItype	__attribute__ ((mode (SI)));
  type DItype (line 3343) | typedef		 int DItype	__attribute__ ((mode (DI)));
  type UDItype (line 3344) | typedef unsigned int UDItype	__attribute__ ((mode (DI)));
  type UQItype (line 3346) | typedef unsigned char UQItype;
  type SItype (line 3347) | typedef		 long SItype;
  type USItype (line 3348) | typedef unsigned long USItype;
  type DItype (line 3350) | typedef	long long int DItype;
  type UDItype (line 3351) | typedef unsigned long long int UDItype;
  type DItype (line 3353) | typedef long int DItype;
  type UDItype (line 3354) | typedef unsigned long int UDItype;
  type mp_limb_t (line 3358) | typedef mp_limb_t UWtype;
  type UHWtype (line 3359) | typedef unsigned int UHWtype;
  function mpn_jacobi_init (line 3665) | static inline unsigned
  function mpn_jacobi_finish (line 3673) | static inline int
  function mpn_jacobi_update (line 3682) | static inline unsigned
  type hgcd_matrix1 (line 3756) | struct hgcd_matrix1
  type hgcd_matrix1 (line 3762) | struct hgcd_matrix1
  type hgcd_matrix1 (line 3765) | struct hgcd_matrix1
  type hgcd_matrix1 (line 3768) | struct hgcd_matrix1
  type hgcd_matrix1 (line 3771) | struct hgcd_matrix1
  type hgcd_matrix (line 3773) | struct hgcd_matrix
  type hgcd_matrix (line 3783) | struct hgcd_matrix
  type hgcd_matrix (line 3786) | struct hgcd_matrix
  type hgcd_matrix (line 3789) | struct hgcd_matrix
  type hgcd_matrix1 (line 3789) | struct hgcd_matrix1
  type hgcd_matrix (line 3792) | struct hgcd_matrix
  type hgcd_matrix (line 3792) | struct hgcd_matrix
  type hgcd_matrix (line 3795) | struct hgcd_matrix
  type hgcd_matrix (line 3798) | struct hgcd_matrix
  type hgcd_matrix (line 3801) | struct hgcd_matrix
  type hgcd_matrix (line 3810) | struct hgcd_matrix
  type hgcd_matrix (line 3816) | struct hgcd_matrix
  type hgcd_matrix (line 3819) | struct hgcd_matrix
  type gcdext_ctx (line 3829) | struct gcdext_ctx
  function mp_size_t (line 3879) | static inline mp_size_t
  type powers (line 3885) | struct powers
  type powers_t (line 3893) | typedef struct powers powers_t;
  type doprnt_params_t (line 4009) | struct doprnt_params_t {
  type doprnt_funs_t (line 4031) | struct doprnt_funs_t {
  type doprnt_funs_t (line 4038) | struct doprnt_funs_t
  type doprnt_funs_t (line 4039) | struct doprnt_funs_t
  type doprnt_funs_t (line 4040) | struct doprnt_funs_t
  type doprnt_funs_t (line 4041) | struct doprnt_funs_t
  type doprnt_funs_t (line 4042) | struct doprnt_funs_t
  type gmp_asprintf_t (line 4048) | struct gmp_asprintf_t {
  type gmp_asprintf_t (line 4081) | struct gmp_asprintf_t
  type gmp_asprintf_t (line 4082) | struct gmp_asprintf_t
  type gmp_asprintf_t (line 4083) | struct gmp_asprintf_t
  type gmp_snprintf_t (line 4088) | struct gmp_snprintf_t {
  type doprnt_funs_t (line 4129) | struct doprnt_funs_t
  type doprnt_funs_t (line 4130) | struct doprnt_funs_t
  type doprnt_params_t (line 4130) | struct doprnt_params_t
  type doprnt_funs_t (line 4133) | struct doprnt_funs_t
  type doprnt_params_t (line 4133) | struct doprnt_params_t
  type gmp_doscan_funs_t (line 4144) | struct gmp_doscan_funs_t {
  type gmp_doscan_funs_t (line 4150) | struct gmp_doscan_funs_t
  type gmp_doscan_funs_t (line 4151) | struct gmp_doscan_funs_t
  type gmp_doscan_funs_t (line 4154) | struct gmp_doscan_funs_t
  type cpuvec_t (line 4215) | struct cpuvec_t {
  function class (line 4562) | class gmp_allocated_string {
  type doprnt_params_t (line 4580) | struct doprnt_params_t
  type doprnt_funs_t (line 4582) | struct doprnt_funs_t

FILE: invalid.c
  function __gmp_invalid_operation (line 69) | void

FILE: memory.c
  function __gmp_default_free (line 121) | void

FILE: mp_get_fns.c
  function mp_get_memory_functions (line 26) | void

FILE: mp_set_fns.c
  function mp_set_memory_functions (line 26) | void

FILE: mpf/abs.c
  function mpf_abs (line 25) | void

FILE: mpf/add.c
  function mpf_add (line 25) | void

FILE: mpf/add_ui.c
  function mpf_add_ui (line 25) | void

FILE: mpf/ceilfloor.c
  function mpf_ceil_or_floor (line 31) | static void __gmpf_ceil_or_floor(REGPARM_2_1 (mpf_ptr r, mpf_srcptr u, i...
  function mpf_ceil (line 107) | void
  function mpf_floor (line 113) | void

FILE: mpf/clear.c
  function mpf_clear (line 26) | void

FILE: mpf/cmp.c
  function mpf_cmp (line 25) | int

FILE: mpf/cmp_d.c
  function mpf_cmp_d (line 31) | int

FILE: mpf/cmp_si.c
  function mpf_cmp_si (line 26) | int

FILE: mpf/cmp_ui.c
  function mpf_cmp_ui (line 25) | int

FILE: mpf/cmp_z.c
  function mpf_cmp_z (line 34) | int

FILE: mpf/div.c
  function mpf_div (line 57) | void

FILE: mpf/div_2exp.c
  function mpf_div_2exp (line 69) | void

FILE: mpf/div_ui.c
  function mpf_div_ui (line 27) | void

FILE: mpf/dump.c
  function mpf_dump (line 32) | void

FILE: mpf/eq.c
  function mpf_eq (line 28) | int

FILE: mpf/fits_s.h
  function FUNCTION (line 28) | int

FILE: mpf/fits_u.h
  function FUNCTION (line 28) | int

FILE: mpf/get_d.c
  function mpf_get_d (line 25) | double

FILE: mpf/get_d_2exp.c
  function mpir_si (line 29) | mpir_si
  function mpf_get_d_2exp (line 53) | double

FILE: mpf/get_dfl_prec.c
  function mp_bitcnt_t (line 26) | mp_bitcnt_t

FILE: mpf/get_prc.c
  function mp_bitcnt_t (line 25) | mp_bitcnt_t

FILE: mpf/get_si.c
  function mpir_si (line 45) | mpir_si

FILE: mpf/get_str.c
  function mp_size_t (line 48) | static mp_size_t

FILE: mpf/get_ui.c
  function mpir_ui (line 66) | mpir_ui

FILE: mpf/init.c
  function mpf_init (line 25) | void

FILE: mpf/init2.c
  function mpf_init2 (line 25) | void

FILE: mpf/inp_str.c
  function mpf_inp_str (line 28) | size_t

FILE: mpf/int_p.c
  function mpf_integer_p (line 28) | int

FILE: mpf/iset.c
  function mpf_init_set (line 25) | void

FILE: mpf/iset_d.c
  function mpf_init_set_d (line 25) | void

FILE: mpf/iset_si.c
  function mpf_init_set_si (line 26) | void

FILE: mpf/iset_str.c
  function mpf_init_set_str (line 25) | int

FILE: mpf/iset_ui.c
  function mpf_init_set_ui (line 26) | void

FILE: mpf/mul.c
  function mpf_mul (line 25) | void

FILE: mpf/mul_2exp.c
  function mpf_mul_2exp (line 63) | void

FILE: mpf/mul_ui.c
  function mpf_mul_ui (line 81) | void

FILE: mpf/neg.c
  function mpf_neg (line 25) | void

FILE: mpf/out_str.c
  function mpf_out_str (line 45) | size_t

FILE: mpf/pow_ui.c
  function mpf_pow_ui (line 25) | void

FILE: mpf/random2.c
  function mpf_random2 (line 28) | void

FILE: mpf/reldiff.c
  function mpf_reldiff (line 30) | void

FILE: mpf/rrandomb.c
  function mpf_rrandomb (line 30) | void

FILE: mpf/set.c
  function mpf_set (line 25) | void

FILE: mpf/set_d.c
  function mpf_set_d (line 32) | void

FILE: mpf/set_dfl_prec.c
  function mpf_set_default_prec (line 27) | void

FILE: mpf/set_prc.c
  function mpf_set_prec (line 32) | void

FILE: mpf/set_prc_raw.c
  function mpf_set_prec_raw (line 27) | void

FILE: mpf/set_q.c
  function mpf_set_q (line 64) | void

FILE: mpf/set_si.c
  function mpf_set_si (line 26) | void

FILE: mpf/set_str.c
  function mp_limb_t (line 56) | static mp_limb_t mpn_intdivrem (mp_ptr qp, mp_size_t qxn,
  function mp_size_t (line 136) | static mp_size_t
  function mpf_set_str (line 191) | int

FILE: mpf/set_ui.c
  function mpf_set_ui (line 25) | void

FILE: mpf/set_z.c
  function mpf_set_z (line 25) | void

FILE: mpf/size.c
  function mpf_size (line 26) | size_t

FILE: mpf/sqrt.c
  function mpf_sqrt (line 54) | void

FILE: mpf/sqrt_ui.c
  function mpf_sqrt_ui (line 61) | void

FILE: mpf/sub.c
  function mpf_sub (line 26) | void

FILE: mpf/sub_ui.c
  function mpf_sub_ui (line 25) | void

FILE: mpf/swap.c
  function mpf_swap (line 25) | void

FILE: mpf/trunc.c
  function mpf_trunc (line 29) | void

FILE: mpf/ui_div.c
  function mpf_ui_div (line 29) | void

FILE: mpf/ui_sub.c
  function mpf_ui_sub (line 26) | void

FILE: mpf/urandomb.c
  function mpf_urandomb (line 28) | void

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Arithmetic.cs
  class FloatAssert (line 24) | public static class FloatAssert
    method AreEqual (line 26) | public static void AreEqual(string expected, HugeFloat actual)
  class Arithmetic (line 65) | [TestClass]
    method Setup (line 68) | [ClassInitialize]
    method Cleanup (line 74) | [ClassCleanup]
    method FloatAddHugeFloat (line 82) | [TestMethod]
    method FloatAddLimb (line 95) | [TestMethod]
    method FloatAddSignedLimb (line 110) | [TestMethod]
    method FloatSubtractHugeFloat (line 129) | [TestMethod]
    method FloatSubtractLimb (line 142) | [TestMethod]
    method FloatSubtractSignedLimb (line 157) | [TestMethod]
    method FloatMultiplyByHugeFloat (line 176) | [TestMethod]
    method FloatMultiplyByLimb (line 189) | [TestMethod]
    method FloatMultiplyBySignedLimb (line 204) | [TestMethod]
    method FloatShiftLeft (line 223) | [TestMethod]
    method FloatShiftRight (line 239) | [TestMethod]
    method FloatNegate (line 255) | [TestMethod]
    method FloatMakeAbsolute (line 271) | [TestMethod]
    method FloatPower (line 287) | [TestMethod]
    method FloatSqrt (line 301) | [TestMethod]
    method FloatSqrtLimb (line 311) | [TestMethod]
    method FloatDivideHugeFloat (line 329) | [TestMethod]
    method FloatDivideLimb (line 344) | [TestMethod]
    method FloatDivideSignedLimb (line 355) | [TestMethod]
    method FloatDivideLimbBy (line 366) | [TestMethod]
    method FloatDivideSignedLimbBy (line 377) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Assignment.cs
  class Assignment (line 25) | [TestClass]
    method Setup (line 28) | [TestInitialize]
    method Cleanup (line 34) | [TestCleanup]
    method FloatAssignCopy (line 40) | [TestMethod]
    method FloatSwap (line 52) | [TestMethod]
    method FloatCompoundOperators (line 76) | [TestMethod]
    method FloatAssignInt (line 88) | [TestMethod]
    method FloatAssignDouble (line 99) | public void FloatAssignDouble()
    method FloatAssignRational (line 108) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Comparisons.cs
  class Comparisons (line 25) | [TestClass]
    method FloatCompareToHugeFloat (line 30) | [TestMethod]
    method FloatCompareToObject (line 43) | [TestMethod]
    method FloatCompareToExpression (line 56) | [TestMethod]
    method FloatCompareToNonExpression (line 69) | [TestMethod]
    method FloatCompareToLimb (line 79) | [TestMethod]
    method FloatCompareToSignedLimb (line 93) | [TestMethod]
    method FloatCompareToSignedDouble (line 107) | [TestMethod]
    method FloatOperatorLessThan (line 125) | [TestMethod]
    method FloatOperatorLessThanOrEqual (line 142) | [TestMethod]
    method FloatOperatorGreaterThan (line 158) | [TestMethod]
    method FloatOperatorGreaterThanOrEqual (line 174) | [TestMethod]
    method FloatOperatorLessThanLimb (line 194) | [TestMethod]
    method FloatOperatorLessThanOrEqualLimb (line 208) | [TestMethod]
    method FloatOperatorGreaterThanLimb (line 225) | [TestMethod]
    method FloatOperatorGreaterThanOrEqualLimb (line 239) | [TestMethod]
    method FloatOperatorLessThanSignedLimb (line 260) | [TestMethod]
    method FloatOperatorLessThanOrEqualSignedLimb (line 274) | [TestMethod]
    method FloatOperatorGreaterThanSignedLimb (line 291) | [TestMethod]
    method FloatOperatorGreaterThanOrEqualSignedLimb (line 305) | [TestMethod]
    method FloatOperatorLessThanDouble (line 326) | [TestMethod]
    method FloatOperatorLessThanOrEqualDouble (line 340) | [TestMethod]
    method FloatOperatorGreaterThanDouble (line 357) | [TestMethod]
    method FloatOperatorGreaterThanOrEqualDouble (line 371) | [TestMethod]
    method FloatEqualsHugeFloat (line 393) | [TestMethod]
    method FloatEqualsExpression (line 407) | [TestMethod]
    method FloatEqualsNonExpression (line 420) | [TestMethod]
    method FloatEqualsLimb (line 429) | [TestMethod]
    method FloatEqualsSignedLimb (line 441) | [TestMethod]
    method FloatEqualsDouble (line 453) | [TestMethod]
    method FloatEqualsHugeFloatApproximately (line 466) | [TestMethod]
    method FloatRelDiff (line 490) | [TestMethod]
    method FloatEqualsOperatorHugeFloat (line 507) | [TestMethod]
    method FloatNotEqualOperatorHugeFloat (line 520) | [TestMethod]
    method FloatEqualsOperatorLimb (line 537) | [TestMethod]
    method FloatNotEqualOperatorLimb (line 549) | [TestMethod]
    method FloatEqualsOperatorSignedLimb (line 565) | [TestMethod]
    method FloatNotEqualOperatorSignedLimb (line 577) | [TestMethod]
    method FloatEqualsOperatorDouble (line 593) | [TestMethod]
    method FloatNotEqualOperatorDouble (line 606) | [TestMethod]
    method FloatGetHashCodeTest (line 623) | [TestMethod]
    method FloatSign (line 638) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/ConstructionAndDisposal.cs
  class ConstructionAndDisposal (line 25) | [TestClass]
    method Setup (line 28) | [TestInitialize]
    method Cleanup (line 34) | [TestCleanup]
    method FloatDefaultConstructor (line 40) | [TestMethod]
    method FloatDispose (line 54) | [TestMethod]
    method FloatConstructorFromLong (line 64) | [TestMethod]
    method FloatConstructorFromLongNegative (line 77) | [TestMethod]
    method FloatConstructorFromULong (line 90) | [TestMethod]
    method FloatConstructorFromDouble (line 103) | [TestMethod]
    method FloatConstructorFromDoubleNegative (line 112) | [TestMethod]
    method FloatAllocate (line 121) | [TestMethod]
    method FloatDefaultConstructorHigherPrecision (line 136) | [TestMethod]
    method FloatStringConstructor (line 154) | [TestMethod]
    method FloatStringConstructorWithAlternativeExponentMarker (line 164) | [TestMethod]
    method FloatStringConstructorWithAlternativeExponentMarker2 (line 174) | [TestMethod]
    method FloatStringConstructorWithAlternativeExponentMarkerInvalid (line 184) | [TestMethod]
    method FloatStringConstructorInvalid (line 192) | [TestMethod]
    method FloatStringConstructorHex (line 199) | [TestMethod]
    method FloatStringConstructorHexExponentDecimal (line 209) | [TestMethod]
    method FloatStringConstructorHexPrefix (line 219) | [TestMethod]
    method FloatStringConstructorHexExponentInBase (line 227) | [TestMethod]
    method FloatConstructorFromExpression (line 238) | [TestMethod]
    method FloatConstructorFromIntExpression (line 248) | [TestMethod]
    method FloatSetPrecision (line 258) | [TestMethod]
    method FloatAllocatedPrecision (line 290) | [TestMethod]
    method FloatSettingPrecisionOverAllocated (line 307) | [TestMethod]
    method FloatReallocate (line 317) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Conversions.cs
  class Conversions (line 26) | [TestClass]
    method Init (line 31) | [ClassInitialize]
    method Cleanup (line 38) | [ClassCleanup]
    method FloatToStringDecimal (line 44) | [TestMethod]
    method FloatToStringHex (line 54) | [TestMethod]
    method FloatFromUlong (line 68) | [TestMethod]
    method FloatFromLong (line 79) | [TestMethod]
    method FloatToAndFromDouble (line 90) | [TestMethod]
    method FloatToAndFromDouble2 (line 104) | [TestMethod]
    method FloatToAndFromFloat (line 119) | [TestMethod]
    method FloatToAndFromUlong (line 134) | [TestMethod]
    method FloatToAndFromLong (line 149) | [TestMethod]
    method FloatToAndFromUint (line 163) | [TestMethod]
    method FloatToAndFromInt (line 178) | [TestMethod]
    method FloatToAndFromDoubleOutExp (line 193) | [TestMethod]
    method FloatToLong2 (line 213) | [TestMethod]
    method FloatToInt2 (line 234) | [TestMethod]
    method FloatFromString (line 256) | [TestMethod]
    method FloatFromStringExpDecimal (line 271) | [TestMethod]
    method FloatFromInvalidString (line 288) | [TestMethod]
    method FloatToStringTruncated (line 298) | [TestMethod]
    method FloatFitsUlong (line 313) | [TestMethod]
    method FloatFitsLong (line 333) | [TestMethod]
    method FloatFitsUint (line 354) | [TestMethod]
    method FloatFitsInt (line 374) | [TestMethod]
    method FloatFitsUshort (line 394) | [TestMethod]
    method FloatFitsShort (line 414) | [TestMethod]
    method FloatIsInteger (line 434) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/ExpressionTests.cs
  class ExpressionTests (line 30) | [TestClass]
    method Setup (line 33) | [ClassInitialize]
    method FloatTestAllExpressions (line 39) | [TestMethod]
    method VerifyPartialResult (line 90) | private void VerifyPartialResult(MpirRandom rnd, FloatExpression expr,...
    method MarkExpressionsUsed (line 105) | private void MarkExpressionsUsed(List<Type> allExpressions, FloatExpre...

FILE: mpir.net/mpir.net-tests/HugeFloatTests/IO.cs
  class IO (line 28) | [TestClass]
    method FloatInputOutputStr (line 31) | [TestMethod]
    method FloatInputOutputStrHex (line 54) | [TestMethod]
    method FloatInputOutputStrHexLower (line 77) | [TestMethod]
    method FloatInputOutputStrHexExpDecimal (line 100) | [TestMethod]
    method FloatInputOutputStr62 (line 123) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Math.cs
  class MiscMath (line 24) | [TestClass]
    method FloatFloor (line 27) | [TestMethod]
    method FloatCeiling (line 40) | [TestMethod]
    method FloatTruncate (line 53) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeFloatTests/Precision.cs
  class Precision (line 28) | [TestClass]
    method Setup (line 31) | [ClassInitialize]
    method Cleanup (line 37) | [ClassCleanup]
    method ExpressionsCalculatedToDestinationPrecision (line 45) | [TestMethod]
    method ExpressionsCalculatedToSpecificPrecisionForEquals (line 60) | [TestMethod]
    method ExpressionHashCodeCalculatedToDefaultPrecision (line 78) | [TestMethod]
    method ShiftLeftBy62 (line 96) | private static void ShiftLeftBy62(HugeFloat c)
    method CompareToCalculatedToDefaultPrecision (line 106) | [TestMethod]
    method CompareToPrimitiveCalculatedToDefaultPrecision (line 142) | [TestMethod]
    method EqualsToPrimitiveCalculatedToDefaultPrecision (line 164) | [TestMethod]
    method SignCalculatedToDefaultPrecision (line 186) | [TestMethod]
    method HugeIntSetToPerformedToDefaultPrecision (line 210) | [TestMethod]
    method HugeRationalSetToPerformedToDefaultPrecision (line 231) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Arithmetic.cs
  class Arithmetic (line 25) | [TestClass]
    method IntAddHugeInt (line 30) | [TestMethod]
    method IntAddLimb (line 42) | [TestMethod]
    method IntAddToLimb (line 53) | [TestMethod]
    method IntAddSignedLimb (line 64) | [TestMethod]
    method IntAddToSignedLimb (line 75) | [TestMethod]
    method IntAddToMaxSignedLimb (line 86) | [TestMethod]
    method IntAddExpressionHugeInt (line 97) | [TestMethod]
    method IntSubtractHugeInt (line 113) | [TestMethod]
    method IntSubtractLimb (line 124) | [TestMethod]
    method IntSubtractFromLimb (line 135) | [TestMethod]
    method IntSubtractPositiveSignedLimb (line 146) | [TestMethod]
    method IntSubtractFromPositiveSignedLimb (line 157) | [TestMethod]
    method IntSubtractSignedLimb (line 168) | [TestMethod]
    method IntSubtractFromSignedLimb (line 179) | [TestMethod]
    method IntMultiplyByHugeInt (line 194) | [TestMethod]
    method IntMultiplyByLimb (line 205) | [TestMethod]
    method IntMultiplyLimbBy (line 216) | [TestMethod]
    method IntMultiplyBySignedLimb (line 227) | [TestMethod]
    method IntMultiplySignedLimbBy (line 238) | [TestMethod]
    method IntAddProductHugeInt (line 253) | [TestMethod]
    method IntAddProductHugeInt2 (line 266) | [TestMethod]
    method IntAddProductLimb (line 279) | [TestMethod]
    method IntAddProductLimbTo (line 292) | [TestMethod]
    method IntAddProductLimbTo2 (line 305) | [TestMethod]
    method IntAddProductLimbTo3 (line 318) | [TestMethod]
    method IntAddProductSignedLimb (line 332) | [TestMethod]
    method IntAddProductSignedLimbTo (line 345) | [TestMethod]
    method IntAddProductSignedLimbTo2 (line 358) | [TestMethod]
    method IntAddProductSignedLimbTo3 (line 371) | [TestMethod]
    method IntAddProductSignedLimbTo4 (line 385) | [TestMethod]
    method IntSubtractProductHugeInt (line 402) | [TestMethod]
    method IntSubtractProductHugeIntFrom (line 415) | [TestMethod]
    method IntSubtractProductLimb (line 428) | [TestMethod]
    method IntSubtractProductLimbFrom (line 441) | [TestMethod]
    method IntSubtractProductSignedLimb (line 454) | [TestMethod]
    method IntSubtractProductSignedLimbFrom (line 467) | [TestMethod]
    method IntSubtractProductSignedLimb2 (line 480) | [TestMethod]
    method IntSubtractProductSignedLimb3 (line 492) | [TestMethod]
    method IntSubtractProductSignedLimbFrom3 (line 505) | [TestMethod]
    method IntSubtractProductSignedLimb4 (line 517) | [TestMethod]
    method IntShiftLeft (line 533) | [TestMethod]
    method IntShiftRight (line 548) | [TestMethod]
    method IntShiftRightCeiling (line 559) | [TestMethod]
    method IntShiftRightNegativeCeiling (line 570) | [TestMethod]
    method IntShiftRightFloor (line 581) | [TestMethod]
    method IntShiftRightNegativeFloor (line 592) | [TestMethod]
    method IntShiftRightTruncate (line 603) | [TestMethod]
    method IntShiftRightNegativeTruncate (line 614) | [TestMethod]
    method IntNegate (line 629) | [TestMethod]
    method IntMakeAbsolute (line 645) | [TestMethod]
    method IntDivideHugeInt (line 663) | [TestMethod]
    method IntDivideHugeIntCeiling (line 674) | [TestMethod]
    method IntDivideHugeIntNegativeCeiling (line 685) | [TestMethod]
    method IntDivideHugeIntFloor (line 696) | [TestMethod]
    method IntDivideHugeIntNegativeFloor (line 707) | [TestMethod]
    method IntDivideHugeIntTruncate (line 718) | [TestMethod]
    method IntDivideHugeIntNegativeTruncate (line 729) | [TestMethod]
    method IntDivideHugeIntCeilingWithMod (line 744) | [TestMethod]
    method IntDivideHugeIntNegativeCeilingWithMod (line 757) | [TestMethod]
    method IntDivideHugeIntFloorWithMod (line 770) | [TestMethod]
    method IntDivideHugeIntNegativeFloorWithMod (line 783) | [TestMethod]
    method IntDivideHugeIntTruncateWithMod (line 796) | [TestMethod]
    method IntDivideHugeIntNegativeTruncateWithMod (line 809) | [TestMethod]
    method IntDivideLimb (line 826) | [TestMethod]
    method IntDivideLimbCeiling (line 837) | [TestMethod]
    method IntDivideLimbNegativeCeiling (line 848) | [TestMethod]
    method IntDivideLimbFloor (line 859) | [TestMethod]
    method IntDivideLimbNegativeFloor (line 870) | [TestMethod]
    method IntDivideLimbTruncate (line 881) | [TestMethod]
    method IntDivideLimbNegativeTruncate (line 892) | [TestMethod]
    method IntDivideLimbWithMod (line 907) | [TestMethod]
    method IntDivideLimbCeilingWithMod (line 920) | [TestMethod]
    method IntDivideLimbNegativeCeilingWithMod (line 933) | [TestMethod]
    method IntDivideLimbFloorWithMod (line 946) | [TestMethod]
    method IntDivideLimbNegativeFloorWithMod (line 959) | [TestMethod]
    method IntDivideLimbTruncateWithMod (line 972) | [TestMethod]
    method IntDivideLimbNegativeTruncateWithMod (line 985) | [TestMethod]
    method IntDivideLimbWithMod2 (line 1002) | [TestMethod]
    method IntDivideLimbCeilingWithMod2 (line 1017) | [TestMethod]
    method IntDivideLimbNegativeCeilingWithMod2 (line 1032) | [TestMethod]
    method IntDivideLimbFloorWithMod2 (line 1047) | [TestMethod]
    method IntDivideLimbNegativeFloorWithMod2 (line 1062) | [TestMethod]
    method IntDivideLimbTruncateWithMod2 (line 1077) | [TestMethod]
    method IntDivideLimbNegativeTruncateWithMod2 (line 1092) | [TestMethod]
    method IntDivideLimbWithMod3 (line 1111) | [TestMethod]
    method IntDivideLimbCeilingWithMod3 (line 1124) | [TestMethod]
    method IntDivideLimbNegativeCeilingWithMod3 (line 1137) | [TestMethod]
    method IntDivideLimbFloorWithMod3 (line 1150) | [TestMethod]
    method IntDivideLimbNegativeFloorWithMod3 (line 1163) | [TestMethod]
    method IntDivideLimbTruncateWithMod3 (line 1176) | [TestMethod]
    method IntDivideLimbNegativeTruncateWithMod3 (line 1189) | [TestMethod]
    method IntDivideExactlyHugeInt (line 1206) | [TestMethod]
    method IntDivideExactlyLimb (line 1218) | [TestMethod]
    method IntIsDivisibleByHugeInt (line 1234) | [TestMethod]
    method IntIsDivisibleByLimb (line 1247) | [TestMethod]
    method IntIsDivisibleByPowerOf2 (line 1260) | [TestMethod]
    method IntIsCongruentToHugeInt (line 1276) | [TestMethod]
    method IntIsCongruentToLimb (line 1290) | [TestMethod]
    method IntIsCongruentToPowerOf2 (line 1304) | [TestMethod]
    method IntModHugeInt (line 1327) | [TestMethod]
    method IntModHugeIntCeiling (line 1338) | [TestMethod]
    method IntModHugeIntNegativeCeiling (line 1349) | [TestMethod]
    method IntModHugeIntFloor (line 1360) | [TestMethod]
    method IntModHugeIntNegativeFloor (line 1371) | [TestMethod]
    method IntModHugeIntTruncate (line 1382) | [TestMethod]
    method IntModHugeIntNegativeTruncate (line 1393) | [TestMethod]
    method IntModHugeIntCeilingWithQuotient (line 1408) | [TestMethod]
    method IntModHugeIntNegativeCeilingWithQuotient (line 1421) | [TestMethod]
    method IntModHugeIntFloorWithQuotient (line 1434) | [TestMethod]
    method IntModHugeIntNegativeFloorWithQuotient (line 1447) | [TestMethod]
    method IntModHugeIntTruncateWithQuotient (line 1460) | [TestMethod]
    method IntModHugeIntNegativeTruncateWithQuotient (line 1473) | [TestMethod]
    method IntModLimb (line 1490) | [TestMethod]
    method IntModLimbCeiling (line 1501) | [TestMethod]
    method IntModLimbNegativeCeiling (line 1512) | [TestMethod]
    method IntModLimbFloor (line 1523) | [TestMethod]
    method IntModLimbNegativeFloor (line 1534) | [TestMethod]
    method IntModLimbTruncate (line 1545) | [TestMethod]
    method IntModLimbNegativeTruncate (line 1556) | [TestMethod]
    method IntModLimbWithQuotient (line 1571) | [TestMethod]
    method IntModLimbCeilingWithQuotient (line 1584) | [TestMethod]
    method IntModLimbNegativeCeilingWithQuotient (line 1597) | [TestMethod]
    method IntModLimbFloorWithQuotient (line 1610) | [TestMethod]
    method IntModLimbNegativeFloorWithQuotient (line 1623) | [TestMethod]
    method IntModLimbTruncateWithQuotient (line 1636) | [TestMethod]
    method IntModLimbNegativeTruncateWithQuotient (line 1649) | [TestMethod]
    method IntModLimbWithQuotient2 (line 1666) | [TestMethod]
    method IntModLimbCeilingWithQuotient2 (line 1681) | [TestMethod]
    method IntModLimbNegativeCeilingWithQuotient2 (line 1696) | [TestMethod]
    method IntModLimbFloorWithQuotient2 (line 1711) | [TestMethod]
    method IntModLimbNegativeFloorWithQuotient2 (line 1726) | [TestMethod]
    method IntModLimbTruncateWithQuotient2 (line 1741) | [TestMethod]
    method IntModLimbNegativeTruncateWithQuotient2 (line 1756) | [TestMethod]
    method IntModLimbWithQuotient3 (line 1776) | [TestMethod]
    method IntModLimbCeilingWithQuotient3 (line 1789) | [TestMethod]
    method IntModLimbNegativeCeilingWithQuotient3 (line 1802) | [TestMethod]
    method IntModLimbFloorWithQuotient3 (line 1815) | [TestMethod]
    method IntModLimbNegativeFloorWithQuotient3 (line 1828) | [TestMethod]
    method IntModLimbTruncateWithQuotient3 (line 1841) | [TestMethod]
    method IntModLimbNegativeTruncateWithQuotient3 (line 1854) | [TestMethod]
    method IntModLimbFunction (line 1872) | [TestMethod]
    method IntModLimbFunctionCeiling (line 1884) | [TestMethod]
    method IntModLimbFunctionNegativeCeiling (line 1896) | [TestMethod]
    method IntModLimbFunctionFloor (line 1908) | [TestMethod]
    method IntModLimbFunctionNegativeFloor (line 1920) | [TestMethod]
    method IntModLimbFunctionTruncate (line 1932) | [TestMethod]
    method IntModLimbFunctionNegativeTruncate (line 1944) | [TestMethod]
    method IntShiftRightRemainder (line 1960) | [TestMethod]
    method IntShiftRightRemainderCeiling (line 1971) | [TestMethod]
    method IntShiftRightRemainderNegativeCeiling (line 1982) | [TestMethod]
    method IntShiftRightRemainderFloor (line 1993) | [TestMethod]
    method IntShiftRightRemainderNegativeFloor (line 2004) | [TestMethod]
    method IntShiftRightRemainderTruncate (line 2015) | [TestMethod]
    method IntShiftRightRemainderNegativeTruncate (line 2026) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Assignment.cs
  class Assignment (line 25) | [TestClass]
    method IntAssignCopy (line 28) | [TestMethod]
    method IntAssignRational (line 39) | [TestMethod]
    method IntSwap (line 50) | [TestMethod]
    method IntCompoundOperators (line 68) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Bitwise.cs
  class Bitwise (line 25) | [TestClass]
    method IntAndHugeInt (line 28) | [TestMethod]
    method IntOrHugeInt (line 40) | [TestMethod]
    method IntXorHugeInt (line 52) | [TestMethod]
    method IntNot (line 64) | [TestMethod]
    method IntPopCount (line 75) | [TestMethod]
    method IntHammingDistance (line 86) | [TestMethod]
    method IntFindBit (line 100) | [TestMethod]
    method IntSetBit (line 136) | [TestMethod]
    method IntGetBit (line 156) | [TestMethod]
    method IntComplementBit (line 179) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Comparisons.cs
  class Comparisons (line 25) | [TestClass]
    method IntCompareToHugeInt (line 30) | [TestMethod]
    method IntCompareToObject (line 43) | [TestMethod]
    method IntCompareToExpression (line 56) | [TestMethod]
    method IntCompareToNonExpression (line 69) | [TestMethod]
    method IntCompareToLimb (line 79) | [TestMethod]
    method IntCompareToSignedLimb (line 92) | [TestMethod]
    method IntCompareToSignedDouble (line 106) | [TestMethod]
    method IntOperatorLessThan (line 124) | [TestMethod]
    method IntOperatorLessThanOrEqual (line 140) | [TestMethod]
    method IntOperatorGreaterThan (line 156) | [TestMethod]
    method IntOperatorGreaterThanOrEqual (line 172) | [TestMethod]
    method IntOperatorLessThanLimb (line 192) | [TestMethod]
    method IntOperatorLessThanOrEqualLimb (line 206) | [TestMethod]
    method IntOperatorGreaterThanLimb (line 223) | [TestMethod]
    method IntOperatorGreaterThanOrEqualLimb (line 237) | [TestMethod]
    method IntOperatorLessThanSignedLimb (line 258) | [TestMethod]
    method IntOperatorLessThanOrEqualSignedLimb (line 272) | [TestMethod]
    method IntOperatorGreaterThanSignedLimb (line 289) | [TestMethod]
    method IntOperatorGreaterThanOrEqualSignedLimb (line 303) | [TestMethod]
    method IntOperatorLessThanDouble (line 324) | [TestMethod]
    method IntOperatorLessThanOrEqualDouble (line 338) | [TestMethod]
    method IntOperatorGreaterThanDouble (line 355) | [TestMethod]
    method IntOperatorGreaterThanOrEqualDouble (line 369) | [TestMethod]
    method IntEqualsHugeInt (line 391) | [TestMethod]
    method IntEqualsExpression (line 405) | [TestMethod]
    method IntEqualsNonExpression (line 418) | [TestMethod]
    method IntEqualsLimb (line 427) | [TestMethod]
    method IntEqualsSignedLimb (line 441) | [TestMethod]
    method IntEqualsDouble (line 455) | [TestMethod]
    method IntEqualsOperatorHugeInt (line 472) | [TestMethod]
    method IntNotEqualOperatorHugeInt (line 485) | [TestMethod]
    method IntEqualsOperatorLimb (line 502) | [TestMethod]
    method IntNotEqualOperatorLimb (line 514) | [TestMethod]
    method IntEqualsOperatorSignedLimb (line 530) | [TestMethod]
    method IntNotEqualOperatorSignedLimb (line 542) | [TestMethod]
    method IntEqualsOperatorDouble (line 558) | [TestMethod]
    method IntNotEqualOperatorDouble (line 571) | [TestMethod]
    method IntGetHashCodeTest (line 588) | [TestMethod]
    method IntCompareAbsToHugeInt (line 603) | [TestMethod]
    method IntCompareAbsToLimb (line 617) | [TestMethod]
    method IntCompareAbsToDouble (line 632) | [TestMethod]
    method IntSign (line 653) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/ConstructionAndDisposal.cs
  class ConstructionAndDisposal (line 25) | [TestClass]
    method IntDefaultConstructor (line 28) | [TestMethod]
    method IntDispose (line 40) | [TestMethod]
    method IntConstructorFromLong (line 50) | [TestMethod]
    method IntConstructorFromLongNegative (line 62) | [TestMethod]
    method IntConstructorFromULong (line 74) | [TestMethod]
    method IntConstructorFromDouble (line 86) | [TestMethod]
    method IntConstructorFromPower (line 95) | [TestMethod]
    method IntConstructorFromDoubleNegative (line 104) | [TestMethod]
    method IntAllocate (line 113) | [TestMethod]
    method IntReallocate (line 124) | [TestMethod]
    method IntStringConstructor (line 146) | [TestMethod]
    method IntStringConstructorInvalid (line 157) | [TestMethod]
    method IntStringConstructorHex (line 164) | [TestMethod]
    method IntStringConstructorHexPrefix (line 173) | [TestMethod]
    method IntStringAssignmentHexPrefix (line 183) | [TestMethod]
    method IntConstructorFromExpression (line 197) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Conversions.cs
  class Conversions (line 26) | [TestClass]
    method IntToStringDecimal (line 29) | [TestMethod]
    method IntToStringHex (line 39) | [TestMethod]
    method IntToAndFromUlong (line 51) | [TestMethod]
    method IntToAndFromLong (line 66) | [TestMethod]
    method IntToAndFromUint (line 80) | [TestMethod]
    method IntToAndFromInt (line 95) | [TestMethod]
    method IntToAndFromDouble (line 110) | [TestMethod]
    method IntFromString (line 142) | [TestMethod]
    method IntFromInvalidString (line 157) | [TestMethod]
    method IntToStringTruncated (line 167) | [TestMethod]
    method IntFitsUlong (line 181) | [TestMethod]
    method IntFitsLong (line 196) | [TestMethod]
    method IntFitsUint (line 212) | [TestMethod]
    method IntFitsInt (line 227) | [TestMethod]
    method IntFitsUshort (line 242) | [TestMethod]
    method IntFitsShort (line 257) | [TestMethod]
    method IntApproximateSizeInBase (line 272) | [TestMethod]
    method AssertEither (line 285) | private void AssertEither(int expected1, int expected2, long actual)

FILE: mpir.net/mpir.net-tests/HugeIntTests/ExpressionTests.cs
  class ExpressionTests (line 30) | [TestClass]
    method IntTestAllExpressions (line 33) | [TestMethod]
    method VerifyPartialResult (line 81) | private void VerifyPartialResult(MpirRandom rnd, IntegerExpression exp...
    method MarkExpressionsUsed (line 92) | private void MarkExpressionsUsed(List<Type> allExpressions, IntegerExp...

FILE: mpir.net/mpir.net-tests/HugeIntTests/IO.cs
  class IO (line 28) | [TestClass]
    method IntInputOutputRaw (line 31) | [TestMethod]
    method IntInputOutputRawNegative (line 48) | [TestMethod]
    method IntInputOutputStr (line 65) | [TestMethod]
    method IntInputOutputStrHex (line 86) | [TestMethod]
    method IntInputOutputStrHexLower (line 111) | [TestMethod]
    method IntInputOutputStrOctal (line 136) | [TestMethod]
    method IntInputOutputStrBinary (line 161) | [TestMethod]
    method IntInputOutputStr62 (line 186) | [TestMethod]
    method IntImportExport (line 208) | [TestMethod]
    method IntImportExportAllocating (line 232) | [TestMethod]
    method IntImportExportAllocatingShort (line 254) | [TestMethod]
    method IntImportExportAllocatingZero (line 276) | [TestMethod]
    method IntSize (line 296) | [TestMethod]
    method IntAllocatedSize (line 307) | [TestMethod]
    method IntGetLimb (line 324) | [TestMethod]
    method IntReadLimbs (line 334) | [TestMethod]
    method IntModifyLimbs (line 350) | [TestMethod]
    method IntModifyLimbsWithGap (line 377) | [TestMethod]
    method IntWriteLimbs (line 400) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/Math.cs
  class Math (line 25) | [TestClass]
    method IntPowerModHugeInt (line 30) | [TestMethod]
    method IntPowerModLimb (line 42) | [TestMethod]
    method IntPowerLimb (line 53) | [TestMethod]
    method IntRoot (line 67) | [TestMethod]
    method IntSquareRoot (line 95) | [TestMethod]
    method IntIsPerfectPower (line 115) | [TestMethod]
    method IntIsPerfectSquare (line 132) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeIntTests/NumberTheoretic.cs
  class NumberTheoretic (line 28) | [TestClass]
    method IntIsProbablePrime (line 31) | [TestMethod]
    method IntIsLikelyPrime (line 43) | [TestMethod]
    method IntNextPrimeCandidate (line 55) | [TestMethod]
    method IntGcd (line 65) | [TestMethod]
    method IntGcdExt (line 78) | [TestMethod]
    method IntGcdExt1 (line 94) | [TestMethod]
    method IntGcdExt2 (line 108) | [TestMethod]
    method IntGcdLimb (line 122) | [TestMethod]
    method IntLcm (line 132) | [TestMethod]
    method IntLcmLimb (line 143) | [TestMethod]
    method IntInvert (line 153) | [TestMethod]
    method IntJacobi (line 166) | [TestMethod]
    method IntLegendre (line 176) | [TestMethod]
    method IntKronecker (line 186) | [TestMethod]
    method IntRemoveFactors (line 201) | [TestMethod]
    method IntFactorial (line 214) | [TestMethod]
    method IntPrimorial (line 234) | [TestMethod]
    method IntBinomial (line 254) | [TestMethod]
    method IntFibonacci (line 266) | [TestMethod]
    method IntLucas (line 286) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeRationalTests/Arithmetic.cs
  class Arithmetic (line 25) | [TestClass]
    method RationalAddHugeRational (line 30) | [TestMethod]
    method RationalAddHugeInt (line 42) | [TestMethod]
    method RationalAddLimb (line 57) | [TestMethod]
    method RationalAddToLimb (line 70) | [TestMethod]
    method RationalAddSignedLimb (line 83) | [TestMethod]
    method RationalAddToSignedLimb (line 96) | [TestMethod]
    method RationalAddToMaxSignedLimb (line 109) | [TestMethod]
    method RationalAddExpressionHugeRational (line 122) | [TestMethod]
    method RationalSubtractHugeRational (line 139) | [TestMethod]
    method RationalSubtractHugeInt (line 151) | [TestMethod]
    method RationalSubtractLimb (line 166) | [TestMethod]
    method RationalSubtractFromLimb (line 178) | [TestMethod]
    method RationalSubtractPositiveSignedLimb (line 190) | [TestMethod]
    method RationalSubtractFromPositiveSignedLimb (line 202) | [TestMethod]
    method RationalSubtractSignedLimb (line 214) | [TestMethod]
    method RationalSubtractFromSignedLimb (line 226) | [TestMethod]
    method RationalMultiplyByHugeRational (line 242) | [TestMethod]
    method RationalMultiplytHugeInt (line 254) | [TestMethod]
    method RationalMultiplyByLimb (line 269) | [TestMethod]
    method RationalMultiplyLimbBy (line 283) | [TestMethod]
    method RationalMultiplyBySignedLimb (line 297) | [TestMethod]
    method RationalMultiplySignedLimbBy (line 311) | [TestMethod]
    method RationalShiftLeft (line 329) | [TestMethod]
    method RationalShiftRight (line 344) | [TestMethod]
    method RationalNegate (line 359) | [TestMethod]
    method RationalMakeAbsolute (line 375) | [TestMethod]
    method RationalInvert (line 391) | [TestMethod]
    method RationalPower (line 407) | [TestMethod]
    method RationalDivideHugeRational (line 426) | [TestMethod]
    method RationalDivideHugeRational2 (line 437) | [TestMethod]
    method RationalDivideHugeInt (line 449) | [TestMethod]
    method RationalDivideLimb (line 471) | [TestMethod]
    method RationalDivideSignedLimb (line 485) | [TestMethod]
    method RationalDivideLimbBy (line 499) | [TestMethod]
    method RationalDivideSignedLimbBy (line 513) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeRationalTests/Assignment.cs
  class Assignment (line 25) | [TestClass]
    method RationalAssignCopy (line 28) | [TestMethod]
    method RationalSwap (line 39) | [TestMethod]
    method RationalCompoundOperators (line 65) | [TestMethod]
    method RationalAssignFloat (line 76) | [TestMethod]
    method RationalAssignInt (line 87) | [TestMethod]
    method RationalAssignInt2 (line 98) | [TestMethod]
    method RationalAssignFloat2 (line 113) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeRationalTests/Comparisons.cs
  class Comparisons (line 25) | [TestClass]
    method RationalCompareToHugeRational (line 30) | [TestMethod]
    method RationalCompareToHugeInt (line 44) | [TestMethod]
    method RationalCompareToObject (line 71) | [TestMethod]
    method RationalCompareToExpression (line 85) | [TestMethod]
    method RationalCompareToNonExpression (line 99) | [TestMethod]
    method RationalCompareToLimb (line 109) | [TestMethod]
    method RationalCompareToLimb2 (line 122) | [TestMethod]
    method RationalCompareToSignedLimb (line 137) | [TestMethod]
    method RationalCompareToSignedLimb2 (line 151) | [TestMethod]
    method RationalCompareToSignedDouble (line 167) | [TestMethod]
    method RationalOperatorLessThan (line 185) | [TestMethod]
    method RationalOperatorLessThanOrEqual (line 201) | [TestMethod]
    method RationalOperatorGreaterThan (line 217) | [TestMethod]
    method RationalOperatorGreaterThanOrEqual (line 233) | [TestMethod]
    method RationalOperatorLessThanLimb (line 253) | [TestMethod]
    method RationalOperatorLessThanOrEqualLimb (line 267) | [TestMethod]
    method RationalOperatorGreaterThanLimb (line 284) | [TestMethod]
    method RationalOperatorGreaterThanOrEqualLimb (line 298) | [TestMethod]
    method RationalOperatorLessThanSignedLimb (line 319) | [TestMethod]
    method RationalOperatorLessThanOrEqualSignedLimb (line 333) | [TestMethod]
    method RationalOperatorGreaterThanSignedLimb (line 350) | [TestMethod]
    method RationalOperatorGreaterThanOrEqualSignedLimb (line 364) | [TestMethod]
    method RationalOperatorLessThanDouble (line 385) | [TestMethod]
    method RationalOperatorLessThanOrEqualDouble (line 399) | [TestMethod]
    method RationalOperatorGreaterThanDouble (line 416) | [TestMethod]
    method RationalOperatorGreaterThanOrEqualDouble (line 430) | [TestMethod]
    method RationalEqualsHugeRational (line 452) | [TestMethod]
    method RationalEqualsHugeInt (line 467) | [TestMethod]
    method RationalEqualsExpression (line 489) | [TestMethod]
    method RationalEqualsNonExpression (line 503) | [TestMethod]
    method RationalEqualsLimb (line 512) | [TestMethod]
    method RationalEqualsSignedLimb (line 524) | [TestMethod]
    method RationalEqualsLimb2 (line 536) | [TestMethod]
    method RationalEqualsSignedLimb2 (line 549) | [TestMethod]
    method RationalEqualsDouble (line 562) | [TestMethod]
    method RationalEqualsOperatorHugeRational (line 579) | [TestMethod]
    method RationalNotEqualOperatorHugeRational (line 593) | [TestMethod]
    method RationalEqualsOperatorLimb (line 611) | [TestMethod]
    method RationalNotEqualOperatorLimb (line 623) | [TestMethod]
    method RationalEqualsOperatorSignedLimb (line 639) | [TestMethod]
    method RationalNotEqualOperatorSignedLimb (line 651) | [TestMethod]
    method RationalEqualsOperatorDouble (line 667) | [TestMethod]
    method RationalNotEqualOperatorDouble (line 680) | [TestMethod]
    method RationalGetHashCodeTest (line 697) | [TestMethod]
    method RationalSign (line 712) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeRationalTests/ConstructionAndDisposal.cs
  class ConstructionAndDisposal (line 25) | [TestClass]
    method RationalDefaultConstructor (line 28) | [TestMethod]
    method RationalNumerator (line 45) | [TestMethod]
    method RationalDenominator (line 56) | [TestMethod]
    method RationalDispose (line 67) | [TestMethod]
    method RationalConstructorFromLong (line 82) | [TestMethod]
    method RationalConstructorFromLongNegative (line 98) | [TestMethod]
    method RationalConstructorFromULong (line 114) | [TestMethod]
    method RationalConstructorFromDouble (line 131) | [TestMethod]
    method RationalConstructorFromDoubleNegative (line 140) | [TestMethod]
    method RationalAllocate (line 149) | [TestMethod]
    method RationalCanonicalize (line 162) | [TestMethod]
    method RationalStringConstructor (line 174) | [TestMethod]
    method RationalStringConstructorNumeratorOnly (line 185) | [TestMethod]
    method RationalStringConstructorInvalid (line 196) | [TestMethod]
    method RationalStringConstructorInvalid2 (line 203) | [TestMethod]
    method RationalStringConstructorHex (line 210) | [TestMethod]
    method RationalStringConstructorHexPrefix (line 226) | [TestMethod]
    method RationalStringAssignmentHexPrefix (line 241) | [TestMethod]
    method RationalConstructorFromExpression (line 259) | [TestMethod]
    method RationalConstructorFromFloatExpression (line 269) | [TestMethod]
    method RationalConstructorFromIntExpression (line 279) | [TestMethod]
    method RationalConstructorFromIntExpression2 (line 289) | [TestMethod]

FILE: mpir.net/mpir.net-tests/HugeRationalTests/Conversions.cs
  class Conversions (line 26) | [TestClass]
    method RationalToStringDecimal (line 29) | [TestMethod]
    method RationalToStringHex (line 41) | [TestMethod]
    method RationalFromUlong (line 54) | [TestMethod]
    method RationalFromLong (line 69) | [TestMethod]
    method RationalToAndFromDouble (line 84) | [TestMethod]
    method RationalToAndFromFloat (line 97) | [TestMethod]
    method RationalFromString (line 111) | [TestMethod]
    method RationalFromInvalidString (line 130) | [TestMethod]
    method RationalFromInvalidString2 (line 140) | [TestMethod]
    method RationalToStringTruncated (line 150) | [TestMethod]
    method RationalApproximateSizeInBase (line 168) | [TestMethod]
    method AssertBetween (line 181) | private void AssertBetween(int min, int max, long actual)

FILE: mpir.net/mpir.net-tests/HugeRationalTests/ExpressionTests.cs
  class ExpressionTests (line 30) | [TestClass]
    method RationalTestAllExpressions (line 33) | [TestMethod]
    method VerifyPartialResult (line 73) | private void VerifyPartialResult(MpirRandom rnd, RationalExpression ex...
    method MarkExpressionsUsed (line 84) | private void MarkExpressionsUsed(List<Type> allExpressions, RationalEx...

FILE: mpir.net/mpir.net-tests/HugeRationalTests/IO.cs
  class IO (line 28) | [TestClass]
    method RationalInputOutputRaw (line 31) | [TestMethod]
    method RationalInputOutputStr (line 47) | [TestMethod]
    method RationalInputOutputStrHex (line 68) | [TestMethod]
    method RationalInputOutputStrHexPrefix (line 90) | [TestMethod]
    method RationalInputOutputStrHexLower (line 116) | [TestMethod]
    method RationalInputOutputStrOctal (line 137) | [TestMethod]
    method RationalInputOutputStrBinary (line 159) | [TestMethod]
    method RationalInputOutputStr62 (line 181) | [TestMethod]

FILE: mpir.net/mpir.net-tests/IntegrationTests/XmlCommentsTests.cs
  class XmlCommentsTests (line 34) | [TestClass]
    method TestComments (line 39) | [TestMethod]
  class XmlCommentsDoc (line 64) | [Serializable]
    method Deserialize (line 73) | public static XmlCommentsDoc Deserialize(string path)
  class XmlCommentsMember (line 86) | [Serializable]
    method Validate (line 103) | public IEnumerable<string> Validate(MemberInfo member)
    method IsIncluded (line 139) | public static bool IsIncluded(MemberInfo member)
    method Signature (line 157) | public static string Signature(MemberInfo member)
    method FormatParameterType (line 190) | public static string FormatParameterType(ParameterInfo p)
    method ToString (line 204) | public override string ToString()
  class XmlCommentsParam (line 210) | [Serializable]

FILE: mpir.net/mpir.net-tests/OtherTests/MpirSettings.cs
  class MpirSettingsTests (line 28) | [TestClass]
    method BitsPerLimb (line 31) | [TestMethod]
    method Version (line 42) | [TestMethod]
    method ToStringDigits (line 49) | [TestMethod]
    method RoundingMode (line 66) | [TestMethod]

FILE: mpir.net/mpir.net-tests/OtherTests/Random.cs
  class RandomTests (line 28) | [TestClass]
    method TestRandom (line 32) | private void TestRandom(MpirRandom r, ulong seed, Action<MpirRandom> a...
    method TestRandom (line 34) | private void TestRandom(MpirRandom r, uint seed, Action<MpirRandom> as...
    method RandomSeedingMersenneTwister (line 71) | [TestMethod]
    method RandomSeedingDefault (line 92) | [TestMethod]
    method RandomSeedingLCSize (line 113) | [TestMethod]
    method RandomSeedingLC (line 134) | [TestMethod]
    method RandomHugeIntBits (line 158) | [TestMethod]
    method RandomHugeInt1 (line 170) | [TestMethod]
    method RandomHugeIntBitsChunky (line 182) | [TestMethod]
    method RandomHugeFloat (line 194) | [TestMethod]
    method RandomHugeFloatBits (line 206) | [TestMethod]
    method RandomHugeFloatChunky (line 218) | [TestMethod]
    method RandomHugeFloatLimbsChunky (line 230) | [TestMethod]

FILE: mpir.net/mpir.net-tests/Utilities/Accessors.cs
  class Accessors (line 29) | internal static class Accessors<T>
    method Accessors (line 34) | static Accessors()
    method GetAccessor (line 41) | internal static FieldInfo GetAccessor(string name)
    method _value (line 46) | internal static IntPtr _value(T x)
  class IntAccessors (line 52) | internal static class IntAccessors
    method _value (line 54) | internal static IntPtr _value(this HugeInt x)
    method NumberOfLimbsAllocated (line 59) | internal static int NumberOfLimbsAllocated(this HugeInt x)
    method NumberOfLimbsUsed (line 67) | internal static int NumberOfLimbsUsed(this HugeInt x)
    method Limbs (line 78) | internal static IntPtr Limbs(this HugeInt x)
  class RationalAccessors (line 90) | internal static class RationalAccessors
    method _value (line 92) | internal static IntPtr _value(this HugeRational x)
    method NumeratorNumberOfLimbsAllocated (line 97) | internal static int NumeratorNumberOfLimbsAllocated(this HugeRational x)
    method NumeratorNumberOfLimbsUsed (line 108) | internal static int NumeratorNumberOfLimbsUsed(this HugeRational x)
    method NumeratorLimbs (line 119) | internal static IntPtr NumeratorLimbs(this HugeRational x)
    method DenominatorNumberOfLimbsAllocated (line 130) | internal static int DenominatorNumberOfLimbsAllocated(this HugeRationa...
    method DenominatorNumberOfLimbsUsed (line 141) | internal static int DenominatorNumberOfLimbsUsed(this HugeRational x)
    method DenominatorLimbs (line 152) | internal static IntPtr DenominatorLimbs(this HugeRational x)
  class FloatAccessors (line 164) | internal static class FloatAccessors
    method _value (line 166) | internal static IntPtr _value(this HugeFloat x)
    method NumberOfLimbsAllocated (line 171) | internal static int NumberOfLimbsAllocated(this HugeFloat x)
    method NumberOfLimbsUsed (line 182) | internal static int NumberOfLimbsUsed(this HugeFloat x)
    method Exponent (line 193) | internal static int Exponent(this HugeFloat x)
    method Limbs (line 204) | internal static IntPtr Limbs(this HugeFloat x)

FILE: mpir.net/mpir.net-tests/Utilities/Platform.cs
  class Platform (line 32) | internal static class Platform
    method Ui (line 35) | public static ulong Ui(ulong win64, uint win32) { return win64; }
    method Si (line 36) | public static long Si(long win64, int win32) { return win64; }
    method Select (line 37) | public static string Select(string win64, string win32) { return win64; }
    method Select (line 38) | public static double Select(double win64, double win32) { return win64; }
    method Ui (line 40) | public static uint Ui(ulong win64, uint win32) { return win32; }
    method Si (line 41) | public static int Si(long win64, int win32) { return win32; }
    method Select (line 42) | public static string Select(string win64, string win32) { return win32; }
    method Select (line 43) | public static double Select(double win64, double win32) { return win32; }

FILE: mpir.net/mpir.net/Common.h
  function class (line 89) | class Endianness : __int8
  function __int32 (line 100) | enum EvaluationOptions : __int32

FILE: mpir.net/mpir.net/HugeFloat.cpp
  type MPIR (line 28) | namespace MPIR

FILE: mpir.net/mpir.net/HugeFloat.h
  function namespace (line 57) | namespace MPIR
  function property (line 827) | static property mp_bitcnt_t DefaultPrecision
  function virtual (line 940) | virtual String^ ToString() override { return ToString(10, false, MpirSet...
  function mpir_ui (line 983) | mpir_ui ToUlong() { return MP(get_ui)(_value); }
  function mpir_si (line 991) | mpir_si ToLong() { return MP(get_si)(_value); }
  function mpir_ui (line 1000) | mpir_ui ToUint() { return MP(get_ui)(_value); }
  function mpir_si (line 1008) | mpir_si ToInt() { return MP(get_si)(_value); }
  function ToDouble (line 1017) | double ToDouble() { return MP(get_d)(_value); }
  function property (line 1069) | property MPEXPR_NAME^ Value
  function SetTo (line 1080) | void SetTo(mpir_ui value) { MP(set_ui)(_value, value); }
  function SetTo (line 1087) | void SetTo(mpir_si value) { MP(set_si)(_value, value); }
  function SetTo (line 1094) | void SetTo(double value) { MP(set_d)(_value, value); }
  function SetTo (line 1104) | void SetTo(String^ value) { SetTo(value, 0); }
  function SetTo (line 1115) | void SetTo(String^ value, int base) { SetTo(value, base, true); }
  function SetTo (line 1135) | void SetTo(IntegerExpression^ value)
  function Swap (line 1155) | void Swap(MPTYPE^ a)
  function property (line 1178) | property mp_bitcnt_t Precision
  function property (line 1197) | property mp_bitcnt_t AllocatedPrecision
  function Reallocate (line 1208) | void Reallocate(mp_bitcnt_t precision)
  function FitsLong (line 1221) | bool FitsLong() { return MP(fits_si_p)(_value) != 0; }
  function FitsUlong (line 1228) | bool FitsUlong() { return MP(fits_ui_p)(_value) != 0; }
  function FitsInt (line 1235) | bool FitsInt() { return MP(fits_sint_p)(_value) != 0; }
  function FitsUint (line 1241) | bool FitsUint() { return MP(fits_uint_p)(_value) != 0; }
  function FitsShort (line 1247) | bool FitsShort() { return MP(fits_sshort_p)(_value) != 0; }
  function FitsUshort (line 1253) | bool FitsUshort() { return MP(fits_ushort_p)(_value) != 0; }
  function IsInteger (line 1259) | bool IsInteger() { return MP(integer_p)(_value) != 0; }
  function Write (line 1274) | size_t Write(TextWriter^ writer) { return Write(writer, 10, 0, false, tr...
  function Write (line 1287) | size_t Write(TextWriter^ writer, int base) { return Write(writer, base, ...
  function Write (line 1303) | size_t Write(TextWriter^ writer, int base, bool lowercase) { return Writ...
  function Read (line 1334) | size_t Read(TextReader^ reader) { return Read(reader, 0, true); }
  function Read (line 1348) | size_t Read(TextReader^ reader, int base) { return Read(reader, base, tr...
  function MPEXPR_NAME (line 1373) | static MPEXPR_NAME^ SquareRoot(mpir_ui a) { return gcnew MPEXPR(SquareRo...

FILE: mpir.net/mpir.net/HugeInt.cpp
  type MPIR (line 29) | namespace MPIR
  function AddTo (line 477) | void MPEXPR(MultiplyIntInt)::AddTo(MP(ptr) destination)
  function AddTo (line 483) | void MPEXPR(MultiplyIntUi)::AddTo(MP(ptr) destination)
  function AddTo (line 489) | void MPEXPR(MultiplyIntSi)::AddTo(MP(ptr) destination)
  function SubtractFrom (line 499) | void MPEXPR(MultiplyIntInt)::SubtractFrom(MP(ptr) destination)
  function SubtractFrom (line 505) | void MPEXPR(MultiplyIntUi)::SubtractFrom(MP(ptr) destination)
  function SubtractFrom (line 511) | void MPEXPR(MultiplyIntSi)::SubtractFrom(MP(ptr) destination)
  function DEFINE_ASSIGNMENT_PROLOG (line 520) | DEFINE_ASSIGNMENT_PROLOG(AddIntInt)
  function DEFINE_ASSIGNMENT_PROLOG (line 543) | DEFINE_ASSIGNMENT_PROLOG(SubtractIntInt)
  function mpir_ui (line 567) | mpir_ui MPEXPR_NAME::Mod(mpir_ui d, RoundingModes rounding)
  function DEFINE_ASSIGNMENT_PROLOG (line 842) | DEFINE_ASSIGNMENT_PROLOG(NextPrimeCandidateIntRnd)
  function DEFINE_ASSIGNMENT_PROLOG (line 853) | DEFINE_ASSIGNMENT_PROLOG(InvertIntInt)
  function DEFINE_ASSIGNMENT_PROLOG (line 861) | DEFINE_ASSIGNMENT_PROLOG(RemoveFactorsIntInt)
  function DEFINE_ASSIGNMENT_PROLOG (line 871) | DEFINE_ASSIGNMENT_PROLOG(FactorialUiUi)
  function DEFINE_ASSIGNMENT_PROLOG (line 893) | DEFINE_ASSIGNMENT_PROLOG(FibonacciUi)
  function DEFINE_ASSIGNMENT_PROLOG (line 900) | DEFINE_ASSIGNMENT_PROLOG(LucasUi)

FILE: mpir.net/mpir.net/HugeInt.h
  function namespace (line 56) | namespace MPIR
  function abstract (line 1030) | abstract sealed
  function class (line 1100) | class MPEXPR(Multiply) abstract : MPEXPR_NAME
  function class (line 1133) | class MPEXPR(Divide) abstract : MPEXPR(DivMod)
  function class (line 1182) | class MPEXPR(Mod) abstract : MPEXPR(DivMod)
  function class (line 1231) | class MPEXPR(ShiftRight) abstract : MPEXPR(DivMod)
  function class (line 1255) | class MPEXPR(SquareRoot) abstract : MPEXPR_NAME
  function class (line 1304) | class MPEXPR(Gcd) abstract : MPEXPR_NAME
  function class (line 1359) | class MPEXPR(Sequence) abstract : MPEXPR_NAME
  function Reallocate (line 1559) | void Reallocate(mp_bitcnt_t bits) { MP(realloc2)(_value, bits); }
  function property (line 1586) | property int AllocatedSize
  function virtual (line 1602) | virtual String^ ToString() override { return ToString(10, false, MpirSet...
  function mpir_ui (line 1632) | mpir_ui ToUlong() { return MP(get_ui)(_value); }
  function mpir_si (line 1641) | mpir_si ToLong() { return MP(get_si)(_value); }
  function mpir_ui (line 1650) | mpir_ui ToUint() { return MP(get_ui)(_value); }
  function mpir_si (line 1659) | mpir_si ToInt() { return MP(get_si)(_value); }
  function ToDouble (line 1668) | double ToDouble() { return MP(get_d)(_value); }
  function property (line 1718) | property MPEXPR_NAME^ Value
  function SetTo (line 1729) | void SetTo(mpir_ui value) { MP(set_ui)(_value, value); }
  function SetTo (line 1736) | void SetTo(mpir_si value) { MP(set_si)(_value, value); }
  function SetTo (line 1743) | void SetTo(double value) { MP(set_d)(_value, value); }
  function SetTo (line 1751) | void SetTo(String^ value) { SetTo(value, 0); }
  function Swap (line 1784) | void Swap(MPTYPE^ a)
  function SetBit (line 1800) | void SetBit(mp_bitcnt_t position, bool value) { value ? MP(setbit)(_valu...
  function GetBit (line 1810) | bool GetBit(mp_bitcnt_t position) { return MP(tstbit)(_value, position) ...
  function ComplementBit (line 1818) | void ComplementBit(mp_bitcnt_t position) { MP(combit)(_value, position); }
  function FitsUlong (line 1830) | bool FitsUlong() { return MP(fits_ui_p)(_value) != 0; }
  function FitsLong (line 1837) | bool FitsLong() { return MP(fits_si_p)(_value) != 0; }
  function FitsUint (line 1844) | bool FitsUint() { return MP(fits_uint_p)(_value) != 0; }
  function FitsInt (line 1850) | bool FitsInt() { return MP(fits_sint_p)(_value) != 0; }
  function FitsUshort (line 1856) | bool FitsUshort() { return MP(fits_ushort_p)(_value) != 0; }
  function FitsShort (line 1862) | bool FitsShort() { return MP(fits_sshort_p)(_value) != 0; }
  function mp_size_t (line 1878) | mp_size_t ApproximateSizeInBase(int base) { return MP(sizeinbase)(_value...
  function Write (line 1915) | size_t Write(TextWriter^ writer) { return Write(writer, 0, false); }
  function Write (line 1929) | size_t Write(TextWriter^ writer, int base) { return Write(writer, base, ...
  function Read (line 1957) | size_t Read(TextReader^ reader) { return Read(reader, 0); }
  function Jacobi (line 2136) | static int Jacobi(MPTYPE^ a, MPTYPE^ b) { return MP(jacobi)(a->_value, b...
  function Legendre (line 2145) | static int Legendre(MPTYPE^ a, MPTYPE^ b) { return MP(legendre)(a->_valu...
  function Kronecker (line 2156) | static int Kronecker(MPTYPE^ a, MPTYPE^ b) { return MP(kronecker)(a->_va...
  function Kronecker (line 2167) | static int Kronecker(MPTYPE^ a, mpir_ui b) { return MP(kronecker_ui)(a->...
  function Kronecker (line 2178) | static int Kronecker(MPTYPE^ a, mpir_si b) { return MP(kronecker_si)(a->...
  function Kronecker (line 2189) | static int Kronecker(mpir_ui a, MPTYPE^ b) { return MP(ui_kronecker)(a, ...
  function Kronecker (line 2200) | static int Kronecker(mpir_si a, MPTYPE^ b) { return MP(si_kronecker)(a, ...
  function MPEXPR_NAME (line 2209) | static MPEXPR_NAME^ Power(mpir_ui value, mpir_ui power) { return gcnew M...
  function MPEXPR_NAME (line 2217) | static MPEXPR_NAME^ Factorial(mpir_ui a) { return gcnew MPEXPR(Factorial...
  function MPEXPR_NAME (line 2226) | static MPEXPR_NAME^ Factorial(mpir_ui a, mpir_ui order) { return gcnew M...
  function MPEXPR_NAME (line 2234) | static MPEXPR_NAME^ Primorial(mpir_ui a) { return gcnew MPEXPR(Primorial...
  function MPEXPR_NAME (line 2243) | static MPEXPR_NAME^ Binomial(mpir_ui n, mpir_ui k) { return gcnew MPEXPR...
  function MPEXPR_NAME (line 2255) | static MPEXPR_NAME^ Binomial(MPEXPR_NAME^ n, mpir_ui k) { return gcnew M...
  function Fibonacci (line 2268) | static MPEXPR(Sequence)^ Fibonacci(mpir_ui n) { return gcnew MPEXPR(Fibo...
  function Lucas (line 2281) | static MPEXPR(Sequence)^ Lucas(mpir_ui n) { return gcnew MPEXPR(LucasUi)...

FILE: mpir.net/mpir.net/HugeRational.cpp
  type MPIR (line 29) | namespace MPIR
    function DEFINE_ASSIGNMENT_PROLOG (line 371) | DEFINE_ASSIGNMENT_PROLOG(PowerRatUi)

FILE: mpir.net/mpir.net/HugeRational.h
  function namespace (line 56) | namespace MPIR
  function class (line 832) | class MPTYPE : MPEXPR_NAME
  function virtual (line 857) | virtual void AssignTo(MP(ptr) destination) override
  function Canonicalize (line 958) | void Canonicalize() { MP(canonicalize)(_value); }
  function virtual (line 987) | virtual String^ ToString() override { return ToString(10, false, MpirSet...
  function ToDouble (line 1015) | double ToDouble() { return MP(get_d)(_value); }
  function property (line 1023) | property HugeInt^ Numerator
  function property (line 1034) | property HugeInt^ Denominator
  function property (line 1072) | property MPEXPR_NAME^ Value
  function SetTo (line 1085) | void SetTo(mpir_ui numerator, mpir_ui denominator) { MP(set_ui)(_value, ...
  function SetTo (line 1092) | void SetTo(mpir_ui value) { SetTo(value, 1); }
  function SetTo (line 1101) | void SetTo(mpir_si numerator, mpir_ui denominator) { MP(set_si)(_value, ...
  function SetTo (line 1108) | void SetTo(mpir_si value) { SetTo(value, 1); }
  function SetTo (line 1115) | void SetTo(double value) { MP(set_d)(_value, value); }
  function SetTo (line 1126) | void SetTo(String^ value) { SetTo(value, 0); }
  function SetTo (line 1145) | void SetTo(IntegerExpression^ value)
  function SetTo (line 1158) | void SetTo(IntegerExpression^ numerator, IntegerExpression^ denominator)
  function Swap (line 1181) | void Swap(MPTYPE^ a)
  function mp_size_t (line 1202) | mp_size_t ApproximateSizeInBase(int base) { return mpz_sizeinbase(&_valu...
  function Write (line 1241) | size_t Write(TextWriter^ writer) { return Write(writer, 0, false); }
  function Write (line 1255) | size_t Write(TextWriter^ writer, int base) { return Write(writer, base, ...
  function Read (line 1283) | size_t Read(TextReader^ reader) { return Read(reader, 0); }

FILE: mpir.net/mpir.net/Random.cpp
  type MPIR (line 24) | namespace MPIR
    function DEFINE_ASSIGNMENT_PROLOG (line 26) | DEFINE_ASSIGNMENT_PROLOG(Random)
    function DEFINE_ASSIGNMENT_PROLOG (line 32) | DEFINE_ASSIGNMENT_PROLOG(RandomBits)
    function DEFINE_ASSIGNMENT_PROLOG (line 37) | DEFINE_ASSIGNMENT_PROLOG(RandomBitsChunky)

FILE: mpir.net/mpir.net/Random.h
  function namespace (line 24) | namespace MPIR

FILE: mpir.net/mpir.net/RandomFloat.cpp
  type MPIR (line 26) | namespace MPIR
    function DEFINE_ASSIGNMENT_PROLOG (line 33) | DEFINE_ASSIGNMENT_PROLOG(Random)
    function DEFINE_ASSIGNMENT_PROLOG (line 38) | DEFINE_ASSIGNMENT_PROLOG(RandomBits)
    function DEFINE_ASSIGNMENT_PROLOG (line 43) | DEFINE_ASSIGNMENT_PROLOG(RandomChunky)
    function DEFINE_ASSIGNMENT_PROLOG (line 50) | DEFINE_ASSIGNMENT_PROLOG(RandomLimbsChunky)

FILE: mpirxx.h
  function __mpz_set_ui_safe (line 106) | inline void __mpz_set_ui_safe(mpz_ptr p, mpir_ui l)
  function __mpz_set_si_safe (line 117) | inline void __mpz_set_si_safe(mpz_ptr p, mpir_si l)
  function mpir_ui (line 164) | inline mpir_ui __gmpxx_abs_ui (mpir_si l)
  function eval (line 176) | struct __gmp_unary_plus
  function eval (line 180) | static void eval(mpf_ptr f, mpf_srcptr g) { mpf_set(f, g); }
  function eval (line 183) | struct __gmp_unary_minus
  function eval (line 187) | static void eval(mpf_ptr f, mpf_srcptr g) { mpf_neg(f, g); }
  type __gmp_unary_com (line 190) | struct __gmp_unary_com
  function eval (line 195) | struct __gmp_binary_plus
  function eval (line 211) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 213) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 220) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 222) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 224) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 227) | static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s)
  function eval (line 230) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_ui l)
  function eval (line 248) | static void eval(mpq_ptr q, mpir_ui l, mpq_srcptr r)
  function eval (line 252) | static void eval(mpq_ptr q, mpir_si l, mpq_srcptr r)
  function eval (line 254) | static void eval(mpq_ptr q, mpq_srcptr r, double d)
  function eval (line 262) | static void eval(mpq_ptr q, double d, mpq_srcptr r)
  function eval (line 265) | static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z)
  function eval (line 276) | static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r)
  function eval (line 279) | static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h)
  function eval (line 282) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_ui l)
  function eval (line 284) | static void eval(mpf_ptr f, mpir_ui l, mpf_srcptr g)
  function eval (line 286) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_si l)
  function eval (line 293) | static void eval(mpf_ptr f, mpir_si l, mpf_srcptr g)
  function eval (line 295) | static void eval(mpf_ptr f, mpf_srcptr g, double d)
  function eval (line 303) | static void eval(mpf_ptr f, double d, mpf_srcptr g)
  function eval (line 307) | struct __gmp_binary_minus
  function eval (line 321) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 330) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 337) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 347) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 349) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 352) | static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s)
  function eval (line 355) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_ui l)
  function eval (line 373) | static void eval(mpq_ptr q, mpir_ui l, mpq_srcptr r)
  function eval (line 375) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_si l)
  function eval (line 382) | static void eval(mpq_ptr q, mpir_si l, mpq_srcptr r)
  function eval (line 384) | static void eval(mpq_ptr q, mpq_srcptr r, double d)
  function eval (line 392) | static void eval(mpq_ptr q, double d, mpq_srcptr r)
  function eval (line 401) | static void eval(mpq_ptr q, mpq_srcptr r, mpz_srcptr z)
  function eval (line 412) | static void eval(mpq_ptr q, mpz_srcptr z, mpq_srcptr r)
  function eval (line 415) | static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h)
  function eval (line 418) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_ui l)
  function eval (line 420) | static void eval(mpf_ptr f, mpir_ui l, mpf_srcptr g)
  function eval (line 422) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_si l)
  function eval (line 429) | static void eval(mpf_ptr f, mpir_si l, mpf_srcptr g)
  function eval (line 437) | static void eval(mpf_ptr f, mpf_srcptr g, double d)
  function eval (line 445) | static void eval(mpf_ptr f, double d, mpf_srcptr g)
  function eval (line 456) | inline void
  type __gmp_binary_lshift (line 465) | struct __gmp_binary_lshift
  function eval (line 476) | static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l)
  function eval (line 485) | static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l)
  type __gmp_binary_rshift (line 489) | struct __gmp_binary_rshift
  function eval (line 500) | static void eval(mpq_ptr q, mpq_srcptr r, mp_bitcnt_t l)
  function eval (line 509) | static void eval(mpf_ptr f, mpf_srcptr g, mp_bitcnt_t l)
  function eval (line 513) | struct __gmp_binary_multiplies
  function eval (line 537) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 539) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 554) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 556) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 558) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 561) | static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s)
  function eval (line 564) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_ui l)
  function eval (line 585) | static void eval(mpq_ptr q, mpir_ui l, mpq_srcptr r)
  function eval (line 587) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_si l)
  function eval (line 605) | static void eval(mpq_ptr q, mpir_si l, mpq_srcptr r)
  function eval (line 607) | static void eval(mpq_ptr q, mpq_srcptr r, double d)
  function eval (line 615) | static void eval(mpq_ptr q, double d, mpq_srcptr r)
  function eval (line 618) | static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h)
  function eval (line 621) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_ui l)
  function eval (line 623) | static void eval(mpf_ptr f, mpir_ui l, mpf_srcptr g)
  function eval (line 625) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_si l)
  function eval (line 635) | static void eval(mpf_ptr f, mpir_si l, mpf_srcptr g)
  function eval (line 637) | static void eval(mpf_ptr f, mpf_srcptr g, double d)
  function eval (line 645) | static void eval(mpf_ptr f, double d, mpf_srcptr g)
  function eval (line 649) | struct __gmp_binary_divides
  function eval (line 672) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 693) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 703) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 714) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 716) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 719) | static void eval(mpq_ptr q, mpq_srcptr r, mpq_srcptr s)
  function eval (line 722) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_ui l)
  function eval (line 734) | static void eval(mpq_ptr q, mpir_ui l, mpq_srcptr r)
  function eval (line 736) | static void eval(mpq_ptr q, mpq_srcptr r, mpir_si l)
  function eval (line 754) | static void eval(mpq_ptr q, mpir_si l, mpq_srcptr r)
  function eval (line 756) | static void eval(mpq_ptr q, mpq_srcptr r, double d)
  function eval (line 764) | static void eval(mpq_ptr q, double d, mpq_srcptr r)
  function eval (line 773) | static void eval(mpf_ptr f, mpf_srcptr g, mpf_srcptr h)
  function eval (line 776) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_ui l)
  function eval (line 778) | static void eval(mpf_ptr f, mpir_ui l, mpf_srcptr g)
  function eval (line 780) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_si l)
  function eval (line 790) | static void eval(mpf_ptr f, mpir_si l, mpf_srcptr g)
  function eval (line 800) | static void eval(mpf_ptr f, mpf_srcptr g, double d)
  function eval (line 808) | static void eval(mpf_ptr f, double d, mpf_srcptr g)
  function eval (line 818) | struct __gmp_binary_modulus
  function eval (line 825) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 843) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 847) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 858) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 860) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 864) | struct __gmp_binary_and
  function eval (line 871) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 873) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 875) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 877) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 879) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 883) | struct __gmp_binary_ior
  function eval (line 889) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 891) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 893) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 895) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 897) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 901) | struct __gmp_binary_xor
  function eval (line 907) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 909) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 911) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 913) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 915) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 919) | struct __gmp_binary_equal
  function eval (line 925) | static bool eval(mpir_ui l, mpz_srcptr z)
  function eval (line 927) | static bool eval(mpz_srcptr z, mpir_si l)
  function eval (line 929) | static bool eval(mpir_si l, mpz_srcptr z)
  function eval (line 931) | static bool eval(mpz_srcptr z, double d)
  function eval (line 933) | static bool eval(double d, mpz_srcptr z)
  function eval (line 936) | static bool eval(mpq_srcptr q, mpq_srcptr r)
  function eval (line 939) | static bool eval(mpq_srcptr q, mpir_ui l)
  function eval (line 941) | static bool eval(mpir_ui l, mpq_srcptr q)
  function eval (line 943) | static bool eval(mpq_srcptr q, mpir_si l)
  function eval (line 945) | static bool eval(mpir_si l, mpq_srcptr q)
  function eval (line 947) | static bool eval(mpq_srcptr q, double d)
  function eval (line 957) | static bool eval(double d, mpq_srcptr q)
  function eval (line 962) | static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) == 0; }
  function eval (line 964) | static bool eval(mpf_srcptr f, mpir_ui l)
  function eval (line 966) | static bool eval(mpir_ui l, mpf_srcptr f)
  function eval (line 968) | static bool eval(mpf_srcptr f, mpir_si l)
  function eval (line 970) | static bool eval(mpir_si l, mpf_srcptr f)
  function eval (line 972) | static bool eval(mpf_srcptr f, double d)
  function eval (line 974) | static bool eval(double d, mpf_srcptr f)
  function eval (line 978) | struct __gmp_binary_less
  function eval (line 984) | static bool eval(mpir_ui l, mpz_srcptr z)
  function eval (line 986) | static bool eval(mpz_srcptr z, mpir_si l)
  function eval (line 988) | static bool eval(mpir_si l, mpz_srcptr z)
  function eval (line 990) | static bool eval(mpz_srcptr z, double d)
  function eval (line 992) | static bool eval(double d, mpz_srcptr z)
  function eval (line 995) | static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) < 0; }
  function eval (line 997) | static bool eval(mpq_srcptr q, mpir_ui l)
  function eval (line 999) | static bool eval(mpir_ui l, mpq_srcptr q)
  function eval (line 1001) | static bool eval(mpq_srcptr q, mpir_si l)
  function eval (line 1003) | static bool eval(mpir_si l, mpq_srcptr q)
  function eval (line 1005) | static bool eval(mpq_srcptr q, double d)
  function eval (line 1015) | static bool eval(double d, mpq_srcptr q)
  function eval (line 1026) | static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) < 0; }
  function eval (line 1028) | static bool eval(mpf_srcptr f, mpir_ui l)
  function eval (line 1030) | static bool eval(mpir_ui l, mpf_srcptr f)
  function eval (line 1032) | static bool eval(mpf_srcptr f, mpir_si l)
  function eval (line 1034) | static bool eval(mpir_si l, mpf_srcptr f)
  function eval (line 1036) | static bool eval(mpf_srcptr f, double d)
  function eval (line 1038) | static bool eval(double d, mpf_srcptr f)
  function eval (line 1042) | struct __gmp_binary_greater
  function eval (line 1048) | static bool eval(mpir_ui l, mpz_srcptr z)
  function eval (line 1050) | static bool eval(mpz_srcptr z, mpir_si l)
  function eval (line 1052) | static bool eval(mpir_si l, mpz_srcptr z)
  function eval (line 1054) | static bool eval(mpz_srcptr z, double d)
  function eval (line 1056) | static bool eval(double d, mpz_srcptr z)
  function eval (line 1059) | static bool eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r) > 0; }
  function eval (line 1061) | static bool eval(mpq_srcptr q, mpir_ui l)
  function eval (line 1063) | static bool eval(mpir_ui l, mpq_srcptr q)
  function eval (line 1065) | static bool eval(mpq_srcptr q, mpir_si l)
  function eval (line 1067) | static bool eval(mpir_si l, mpq_srcptr q)
  function eval (line 1069) | static bool eval(mpq_srcptr q, double d)
  function eval (line 1079) | static bool eval(double d, mpq_srcptr q)
  function eval (line 1090) | static bool eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g) > 0; }
  function eval (line 1092) | static bool eval(mpf_srcptr f, mpir_ui l)
  function eval (line 1094) | static bool eval(mpir_ui l, mpf_srcptr f)
  function eval (line 1096) | static bool eval(mpf_srcptr f, mpir_si l)
  function eval (line 1098) | static bool eval(mpir_si l, mpf_srcptr f)
  function eval (line 1100) | static bool eval(mpf_srcptr f, double d)
  function eval (line 1102) | static bool eval(double d, mpf_srcptr f)
  function eval (line 1106) | struct __gmp_unary_increment
  function eval (line 1111) | static void eval(mpf_ptr f) { mpf_add_ui(f, f, 1); }
  function eval (line 1114) | struct __gmp_unary_decrement
  function eval (line 1119) | static void eval(mpf_ptr f) { mpf_sub_ui(f, f, 1); }
  function eval (line 1122) | struct __gmp_abs_function
  function eval (line 1126) | static void eval(mpf_ptr f, mpf_srcptr g) { mpf_abs(f, g); }
  type __gmp_trunc_function (line 1129) | struct __gmp_trunc_function
  type __gmp_floor_function (line 1134) | struct __gmp_floor_function
  type __gmp_ceil_function (line 1139) | struct __gmp_ceil_function
  function eval (line 1144) | struct __gmp_sqrt_function
  function eval (line 1150) | struct __gmp_hypot_function
  function eval (line 1174) | static void eval(mpf_ptr f, mpir_ui l, mpf_srcptr g)
  function eval (line 1176) | static void eval(mpf_ptr f, mpf_srcptr g, mpir_si l)
  function eval (line 1187) | static void eval(mpf_ptr f, mpir_si l, mpf_srcptr g)
  function eval (line 1189) | static void eval(mpf_ptr f, mpf_srcptr g, double d)
  function eval (line 1200) | static void eval(mpf_ptr f, double d, mpf_srcptr g)
  function eval (line 1204) | struct __gmp_sgn_function
  function eval (line 1208) | static int eval(mpf_srcptr f) { return mpf_sgn(f); }
  function eval (line 1211) | struct __gmp_gcd_function
  function eval (line 1221) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 1225) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 1229) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 1233) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 1237) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 1243) | struct __gmp_lcm_function
  function eval (line 1253) | static void eval(mpz_ptr z, mpir_ui l, mpz_srcptr w)
  function eval (line 1257) | static void eval(mpz_ptr z, mpz_srcptr w, mpir_si l)
  function eval (line 1261) | static void eval(mpz_ptr z, mpir_si l, mpz_srcptr w)
  function eval (line 1265) | static void eval(mpz_ptr z, mpz_srcptr w, double d)
  function eval (line 1269) | static void eval(mpz_ptr z, double d, mpz_srcptr w)
  function eval (line 1275) | struct __gmp_cmp_function
  function eval (line 1281) | static int eval(mpir_ui l, mpz_srcptr z)
  function eval (line 1283) | static int eval(mpz_srcptr z, mpir_si l)
  function eval (line 1285) | static int eval(mpir_si l, mpz_srcptr z)
  function eval (line 1287) | static int eval(mpz_srcptr z, double d)
  function eval (line 1289) | static int eval(double d, mpz_srcptr z)
  function eval (line 1292) | static int eval(mpq_srcptr q, mpq_srcptr r) { return mpq_cmp(q, r); }
  function eval (line 1294) | static int eval(mpq_srcptr q, mpir_ui l)
  function eval (line 1296) | static int eval(mpir_ui l, mpq_srcptr q)
  function eval (line 1298) | static int eval(mpq_srcptr q, mpir_si l)
  function eval (line 1300) | static int eval(mpir_si l, mpq_srcptr q)
  function eval (line 1302) | static int eval(mpq_srcptr q, double d)
  function eval (line 1312) | static int eval(double d, mpq_srcptr q)
  function eval (line 1323) | static int eval(mpf_srcptr f, mpf_srcptr g) { return mpf_cmp(f, g); }
  function eval (line 1325) | static int eval(mpf_srcptr f, mpir_ui l)
  function eval (line 1327) | static int eval(mpir_ui l, mpf_srcptr f)
  function eval (line 1329) | static int eval(mpf_srcptr f, mpir_si l)
  function eval (line 1331) | static int eval(mpir_si l, mpf_srcptr f)
  function eval (line 1333) | static int eval(mpf_srcptr f, double d)
  function eval (line 1335) | static int eval(double d, mpf_srcptr f)
  function eval (line 1339) | struct __gmp_rand_function
  function eval (line 1345) | static void eval(mpf_ptr f, gmp_randstate_t s, mp_bitcnt_t prec)
  function __gmp_alloc_cstring (line 1359) | struct __gmp_alloc_cstring
  type T (line 1381) | typedef T ref_type;
  function mpz_t (line 1395) | struct __gmp_resolve_expr<mpz_t>
  function mpq_t (line 1403) | struct __gmp_resolve_expr<mpq_t>
  function mpf_t (line 1411) | struct __gmp_resolve_expr<mpf_t>
  type __gmp_resolve_expr (line 1419) | struct __gmp_resolve_expr
  type mpq_t (line 1421) | typedef mpq_t value_type;
  type __gmp_resolve_expr (line 1425) | struct __gmp_resolve_expr
  type mpq_t (line 1427) | typedef mpq_t value_type;
  type __gmp_resolve_expr (line 1431) | struct __gmp_resolve_expr
  type mpf_t (line 1433) | typedef mpf_t value_type;
  type __gmp_resolve_expr (line 1437) | struct __gmp_resolve_expr
  type mpf_t (line 1439) | typedef mpf_t value_type;
  type __gmp_resolve_expr (line 1443) | struct __gmp_resolve_expr
  type mpf_t (line 1445) | typedef mpf_t value_type;
  type __gmp_resolve_expr (line 1449) | struct __gmp_resolve_expr
  type mpf_t (line 1451) | typedef mpf_t value_type;
  function namespace (line 1455) | namespace std {
  function val (line 1504) | __gmp_unary_expr(const T &v) : val(v) { }
  function explicit (line 1643) | explicit __gmp_expr(mpz_srcptr z) { mpz_init_set(mp, z); }
  function swap (line 1647) | void swap(__gmp_expr& z) __GMPXX_NOEXCEPT { std::swap(*mp, *z.mp); }
  function set_str (line 1708) | int set_str(const char *s, int base)
  function set_str (line 1710) | int set_str(const std::string &s, int base)
  function __gmp_alloc_cstring (line 1714) | __gmp_alloc_cstring temp(mpz_get_str(0, base, mp));
  function mpz_ptr (line 1720) | mpz_ptr __get_mp() { return mp; }
  function mpz_ptr (line 1722) | mpz_ptr get_mpz_t() { return mp; }
  function canonicalize (line 1785) | void canonicalize() { mpq_canonicalize(mp); }
  function swap (line 1869) | void swap(__gmp_expr& q) __GMPXX_NOEXCEPT { std::swap(*mp, *q.mp); }
  function set_str (line 1929) | int set_str(const char *s, int base)
  function set_str (line 1931) | int set_str(const std::string &s, int base)
  function mpq_ptr (line 1954) | mpq_ptr __get_mp() { return mp; }
  function mpq_ptr (line 1956) | mpq_ptr get_mpq_t() { return mp; }
  function mpz_ptr (line 1959) | mpz_ptr get_num_mpz_t() { return mpq_numref(mp); }
  function mpz_ptr (line 1961) | mpz_ptr get_den_mpz_t() { return mpq_denref(mp); }
  function set_prec (line 1996) | void set_prec(mp_bitcnt_t prec) { mpf_set_prec(mp, prec); }
  function set_prec_raw (line 1997) | void set_prec_raw(mp_bitcnt_t prec) { mpf_set_prec_raw(mp, prec); }
  function explicit (line 2063) | explicit __gmp_expr(const char *s)
  function explicit (line 2080) | explicit __gmp_expr(const std::string &s)
  function explicit (line 2098) | explicit __gmp_expr(mpf_srcptr f)
  function swap (line 2105) | void swap(__gmp_expr& f) __GMPXX_NOEXCEPT { std::swap(*mp, *f.mp); }
  function set_str (line 2160) | int set_str(const char *s, int base)
  function set_str (line 2162) | int set_str(const std::string &s, int base)
  function mpf_ptr (line 2172) | mpf_ptr __get_mp() { return mp; }
  function mpf_ptr (line 2174) | mpf_ptr get_mpf_t() { return mp; }
  function __gmp_set_expr (line 2286) | void __gmp_set_expr(mpz_ptr z, const __gmp_expr<mpf_t, T> &expr)
  function __gmp_set_expr (line 2292) | inline void __gmp_set_expr(mpq_ptr q, const mpz_class &z)
  function __gmp_set_expr (line 2298) | void __gmp_set_expr(mpq_ptr q, const __gmp_expr<mpz_t, T> &expr)
  function __gmp_set_expr (line 2304) | inline void __gmp_set_expr(mpq_ptr q, const mpq_class &r)
  function __gmp_set_expr (line 2310) | void __gmp_set_expr(mpq_ptr q, const __gmp_expr<mpq_t, T> &expr)
  function __gmp_set_expr (line 2316) | void __gmp_set_expr(mpq_ptr q, const __gmp_expr<mpf_t, T> &expr)
  function __gmp_set_expr (line 2323) | void __gmp_set_expr(mpf_ptr f, const __gmp_expr<mpz_t, T> &expr)
  function __gmp_set_expr (line 2330) | void __gmp_set_expr(mpf_ptr f, const __gmp_expr<mpq_t, T> &expr)
  function __gmp_set_expr (line 2336) | inline void __gmp_set_expr(mpf_ptr f, const mpf_class &g)
  function __gmp_set_expr (line 2342) | void __gmp_set_expr(mpf_ptr f, const __gmp_expr<mpf_t, T> &expr)
  function eval (line 2399) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function eval (line 2417) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  type __gmp_expr (line 2442) | typedef __gmp_expr<T, T> val2_type;
  function eval (line 2448) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2452) | mp_bitcnt_t get_prec() const
  function eval (line 2474) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  type U (line 2485) | typedef U val1_type;
  type __gmp_expr (line 2486) | typedef __gmp_expr<T, T> val2_type;
  function eval (line 2492) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  type __gmp_expr (line 2508) | typedef __gmp_expr<U, V> val2_type;
  function eval (line 2514) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2529) | mp_bitcnt_t get_prec() const
  function eval (line 2549) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2564) | mp_bitcnt_t get_prec() const
  function eval (line 2584) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2599) | mp_bitcnt_t get_prec() const
  function eval (line 2619) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2634) | mp_bitcnt_t get_prec() const
  function eval (line 2656) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  type U (line 2670) | typedef U val1_type;
  type __gmp_expr (line 2671) | typedef __gmp_expr<T, V> val2_type;
  function eval (line 2677) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  type __gmp_expr (line 2696) | typedef __gmp_expr<V, W> val2_type;
  function eval (line 2702) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2710) | mp_bitcnt_t get_prec() const
  function eval (line 2730) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function mp_bitcnt_t (line 2738) | mp_bitcnt_t get_prec() const
  function eval (line 2758) | void eval(typename __gmp_resolve_expr<T>::ptr_type p) const
  function __GMP_DEFINE_BINARY_FUNCTION (line 3302) | __GMP_DEFINE_UNARY_FUNCTION(operator~, __gmp_unary_com)
  function class (line 3387) | class __gmp_urandomb_value { }
  function class (line 3388) | class __gmp_urandomm_value { }
  function class (line 3443) | class gmp_randclass
  function namespace (line 3508) | namespace std {

FILE: mpn/alpha/divexact_1.c
  function mpn_divexact_1 (line 50) | void

FILE: mpn/generic/add_err1_n.c
  function mp_limb_t (line 45) | mp_limb_t

FILE: mpn/generic/add_err2_n.c
  function mp_limb_t (line 41) | mp_limb_t

FILE: mpn/generic/add_n.c
  function mp_limb_t (line 28) | mp_limb_t
  function mp_limb_t (line 58) | mp_limb_t

FILE: mpn/generic/addadd_n.c
  function mp_limb_t (line 25) | mp_limb_t mpn_addadd_n(mp_ptr t, mp_srcptr x, mp_srcptr y, mp_srcptr z, ...

FILE: mpn/generic/addmul_1.c
  function mp_limb_t (line 33) | mp_limb_t
  function mp_limb_t (line 64) | mp_limb_t
  function mp_limb_t (line 100) | mp_limb_t

FILE: mpn/generic/addsub_n.c
  function mpn_addsub_n (line 26) | int mpn_addsub_n(mp_ptr t, mp_srcptr x, mp_srcptr y, mp_srcptr z, mp_siz...

FILE: mpn/generic/and_n.c
  function func (line 67) | void

FILE: mpn/generic/andn_n.c
  function func (line 67) | void

FILE: mpn/generic/bdivmod.c
  function mp_limb_t (line 56) | mp_limb_t

FILE: mpn/generic/binvert.c
  function mp_size_t (line 54) | mp_size_t
  function mpn_binvert (line 62) | void

FILE: mpn/generic/com_n.c
  function mpn_com_n (line 26) | void

FILE: mpn/generic/copyd.c
  function mpn_copyd (line 25) | void mpn_copyd(mp_ptr rp, mp_srcptr sp, mp_size_t n)

FILE: mpn/generic/copyi.c
  function mpn_copyi (line 25) | void mpn_copyi(mp_ptr rp, mp_srcptr sp, mp_size_t n)

FILE: mpn/generic/dc_bdiv_q.c
  function mpn_dc_bdiv_q (line 38) | void

FILE: mpn/generic/dc_bdiv_q_n.c
  function mpn_dc_bdiv_q_n (line 43) | void

FILE: mpn/generic/dc_bdiv_qr.c
  function mp_limb_t (line 45) | mp_limb_t

FILE: mpn/generic/dc_bdiv_qr_n.c
  function mp_limb_t (line 45) | mp_limb_t

FILE: mpn/generic/dc_div_q.c
  function mp_limb_t (line 31) | mp_limb_t

FILE: mpn/generic/dc_div_qr.c
  function mp_limb_t (line 32) | mp_limb_t

FILE: mpn/generic/dc_div_qr_n.c
  function mp_limb_t (line 33) | mp_limb_t

FILE: mpn/generic/dc_divappr_q.c
  function mp_limb_t (line 35) | mp_limb_t

FILE: mpn/generic/divexact.c
  function mpn_divexact (line 36) | void

FILE: mpn/generic/divexact_1.c
  function mpn_divexact_1 (line 68) | void

FILE: mpn/generic/divexact_by3c.c
  function mp_limb_t (line 28) | mp_limb_t mpn_divexact_by3c(mp_ptr qp, mp_srcptr xp, mp_size_t n, mp_lim...
  function mp_limb_t (line 69) | mp_limb_t	divexact_basic(mp_ptr qp,mp_ptr xp,mp_size_t n,mp_limb_t d)
  function mp_limb_t (line 95) | mp_limb_t	divexact_submul(mp_ptr qp,mp_ptr xp,mp_size_t n)
  function mp_limb_t (line 131) | mp_limb_t	divexact3_direct(mp_ptr qp,mp_ptr xp,mp_size_t n)
  function mp_limb_t (line 154) | mp_limb_t	divexact3_byluck(mp_ptr qp,mp_ptr xp,mp_size_t n)

FILE: mpn/generic/divexact_byff.c
  function mp_limb_t (line 32) | mp_limb_t

FILE: mpn/generic/divexact_byfobm1.c
  function mp_limb_t (line 32) | mp_limb_t mpn_divexact_byfobm1(mp_ptr qp, mp_srcptr xp, mp_size_t n,

FILE: mpn/generic/divisible_p.c
  function mpn_divisible_p (line 69) | int

FILE: mpn/generic/divrem.c
  function mp_limb_t (line 29) | mp_limb_t

FILE: mpn/generic/divrem_1.c
  function mp_limb_t (line 80) | mp_limb_t

FILE: mpn/generic/divrem_2.c
  function mp_limb_t (line 64) | mp_limb_t

FILE: mpn/generic/divrem_euclidean_qr_2.c
  function mp_limb_t (line 28) | mp_limb_t mpn_divrem_euclidean_qr_2(mp_ptr qp, mp_ptr xp, mp_size_t xn, ...

FILE: mpn/generic/divrem_euclidean_r_1.c
  function mp_limb_t (line 29) | mp_limb_t mpn_mod_1_1_wrap(mp_srcptr xp, mp_size_t xn, mp_limb_t d)
  function mp_limb_t (line 68) | mp_limb_t mpn_mod_1_2_wrap(mp_srcptr xp, mp_size_t xn, mp_limb_t d)
  function mp_limb_t (line 110) | mp_limb_t mpn_mod_1_3_wrap(mp_srcptr xp, mp_size_t xn, mp_limb_t d)
  function mp_limb_t (line 157) | mp_limb_t mpn_mod_1_k(mp_srcptr xp, mp_size_t xn, mp_limb_t d, mp_size_t k)

FILE: mpn/generic/divrem_hensel_qr_1.c
  function mp_limb_t (line 27) | mp_limb_t mpn_divrem_hensel_qr_1(mp_ptr qp, mp_srcptr xp, mp_size_t n, m...

FILE: mpn/generic/divrem_hensel_qr_1_1.c
  function mp_limb_t (line 27) | mp_limb_t mpn_divrem_hensel_qr_1_1(mp_ptr qp, mp_srcptr xp, mp_size_t n,...

FILE: mpn/generic/divrem_hensel_qr_1_2.c
  function mp_limb_t (line 30) | mp_limb_t mpn_divrem_hensel_qr_1_2(mp_ptr qp, mp_srcptr xp, mp_size_t n,...

FILE: mpn/generic/divrem_hensel_r_1.c
  function mp_limb_t (line 30) | mp_limb_t mpn_divrem_hensel_r_1(mp_srcptr xp, mp_size_t n, mp_limb_t d)

FILE: mpn/generic/divrem_hensel_rsh_qr_1.c
  function mp_limb_t (line 26) | mp_limb_t mpn_divrem_hensel_rsh_qr_1_preinv(mp_ptr qp, mp_srcptr xp,
  function mp_limb_t (line 87) | mp_limb_t mpn_divrem_hensel_rsh_qr_1(mp_ptr qp, mp_srcptr xp,

FILE: mpn/generic/dump.c
  function mpn_dump (line 31) | void
  function mpn_recdump (line 68) | static void
  function mpn_dump (line 81) | void

FILE: mpn/generic/fib2_ui.c
  function mp_size_t (line 64) | mp_size_t

FILE: mpn/generic/gcd.c
  type gcd_ctx (line 54) | struct gcd_ctx
  function gcd_hook (line 60) | static void
  function mp_size_t (line 77) | static inline mp_size_t
  function mp_size_t (line 124) | mp_size_t

FILE: mpn/generic/gcd_1.c
  function mp_limb_t (line 49) | mp_limb_t

FILE: mpn/generic/gcd_subdiv_step.c
  function mp_size_t (line 64) | mp_size_t

FILE: mpn/generic/gcdext.c
  function hgcd_mul_matrix_vector (line 29) | static size_t
  function mp_size_t (line 93) | static mp_size_t
  function mp_size_t (line 187) | mp_size_t

FILE: mpn/generic/gcdext_1.c
  function mp_limb_t (line 48) | mp_limb_t
  function mp_limb_t (line 266) | mp_limb_t

FILE: mpn/generic/gcdext_lehmer.c
  function mpn_gcdext_hook (line 27) | void
  function mp_size_t (line 134) | mp_size_t

FILE: mpn/generic/get_d.c
  function mpn_get_d (line 94) | double

FILE: mpn/generic/get_str.c
  function mpn_get_str (line 323) | size_t

FILE: mpn/generic/hamdist.c
  function mp_bitcnt_t (line 37) | mp_bitcnt_t

FILE: mpn/generic/hgcd.c
  function mp_size_t (line 49) | mp_size_t
  function mp_size_t (line 71) | mp_size_t

FILE: mpn/generic/hgcd2.c
  function mp_limb_t (line 35) | static inline mp_limb_t
  function mp_limb_t (line 89) | static inline mp_limb_t
  function mp_limb_t (line 150) | static inline mp_limb_t
  function mpn_hgcd2 (line 215) | int

FILE: mpn/generic/hgcd2_jacobi.c
  function mp_limb_t (line 35) | static inline mp_limb_t
  function mp_limb_t (line 89) | static inline mp_limb_t
  function mpn_hgcd2_jacobi (line 147) | int

FILE: mpn/generic/hgcd_appr.c
  function mp_size_t (line 30) | mp_size_t
  function mpn_hgcd_appr (line 51) | int

FILE: mpn/generic/hgcd_jacobi.c
  type hgcd_jacobi_ctx (line 31) | struct hgcd_jacobi_ctx
  function hgcd_jacobi_hook (line 37) | static void
  function mp_size_t (line 74) | static mp_size_t
  function mp_size_t (line 138) | mp_size_t

FILE: mpn/generic/hgcd_matrix.c
  function mpn_hgcd_matrix_init (line 30) | void
  function mpn_hgcd_matrix_update_q (line 48) | void
  function mpn_hgcd_matrix_mul_1 (line 121) | void
  function mpn_hgcd_matrix_mul (line 140) | void
  function mp_size_t (line 188) | mp_size_t
  function mp_size_t (line 259) | mp_size_t

FILE: mpn/generic/hgcd_reduce.c
  function mp_size_t (line 30) | static mp_size_t
  function mp_size_t (line 66) | static mp_size_t
  function mp_size_t (line 192) | mp_size_t
  function mp_size_t (line 214) | mp_size_t

FILE: mpn/generic/hgcd_step.c
  function hgcd_hook (line 29) | static void
  function mp_size_t (line 65) | mp_size_t

FILE: mpn/generic/inv_div_q.c
  function mp_limb_t (line 34) | mp_limb_t

FILE: mpn/generic/inv_div_qr.c
  function mp_limb_t (line 34) | mp_limb_t

FILE: mpn/generic/inv_div_qr_n.c
  function mp_limb_t (line 31) | mp_limb_t

FILE: mpn/generic/inv_divappr_q.c
  function mp_limb_t (line 34) | mp_limb_t

FILE: mpn/generic/inv_divappr_q_n.c
  function mp_limb_t (line 31) | mp_limb_t

FILE: mpn/generic/invert.c
  function mpn_is_invert (line 36) | int
  function mpn_invert (line 75) | void
  function mpn_invert_trunc (line 217) | void mpn_invert_trunc(mp_ptr x_new, mp_size_t m, mp_srcptr xp, mp_size_t...

FILE: mpn/generic/ior_n.c
  function func (line 67) | void

FILE: mpn/generic/iorn_n.c
  function func (line 67) | void

FILE: mpn/generic/jacobi.c
  function jacobi_hook (line 136) | static void
  function mpn_jacobi_n (line 162) | int

FILE: mpn/generic/jacobi_2.c
  function mpn_jacobi_2 (line 36) | int
  function mpn_jacobi_2 (line 163) | int

FILE: mpn/generic/jacobi_base.c
  function mpn_jacobi_base (line 127) | int
  function mpn_jacobi_base (line 177) | int

FILE: mpn/generic/lshift.c
  function mp_limb_t (line 35) | mp_limb_t

FILE: mpn/generic/matrix22_mul.c
  function abs_sub_n (line 38) | static int
  function add_signed_n (line 55) | static int
  function mp_size_t (line 68) | mp_size_t
  function mpn_matrix22_mul_strassen (line 119) | void
  function mpn_matrix22_mul (line 269) | void

FILE: mpn/generic/matrix22_mul1_inverse_vector.c
  function mp_size_t (line 30) | mp_size_t

FILE: mpn/generic/mod_1.c
  function mp_limb_t (line 55) | mp_limb_t

FILE: mpn/generic/mod_1_1.c
  function mpn_mod_1_1 (line 29) | void mpn_mod_1_1(mp_ptr rem, mp_srcptr xp, mp_size_t xn, mp_srcptr db)

FILE: mpn/generic/mod_1_2.c
  function mpn_mod_1_2 (line 29) | void mpn_mod_1_2(mp_ptr rem, mp_srcptr xp, mp_size_t xn, mp_srcptr db)

FILE: mpn/generic/mod_1_3.c
  function mpn_mod_1_3 (line 29) | void mpn_mod_1_3(mp_ptr rem, mp_srcptr xp, mp_size_t xn, mp_srcptr db)

FILE: mpn/generic/mod_34lsub1.c
  function mp_limb_t (line 88) | mp_limb_t

FILE: mpn/generic/modexact_1c_odd.c
  function mp_limb_t (line 106) | mp_limb_t
  function mp_limb_t (line 197) | mp_limb_t

FILE: mpn/generic/mp_bases.c
  type bases (line 7) | struct bases
  type bases (line 270) | struct bases

FILE: mpn/generic/mul.c
  function mp_limb_t (line 51) | mp_limb_t

FILE: mpn/generic/mul_1.c
  function mp_limb_t (line 31) | mp_limb_t
  function mp_limb_t (line 59) | mp_limb_t

FILE: mpn/generic/mul_basecase.c
  function mpn_mul_basecase (line 46) | void

FILE: mpn/generic/mul_fft.c
  function mpn_mul_fft (line 5) | int

FILE: mpn/generic/mul_n.c
  function mpn_karasub (line 40) | static void	mpn_karasub(mp_ptr rp, mp_ptr tp, mp_size_t n)
  function mpn_karaadd (line 72) | static void	mpn_karaadd(mp_ptr rp, mp_ptr tp, mp_size_t n)
  function mpn_karasub (line 93) | static void	mpn_karasub(mp_ptr rp, mp_ptr tp, mp_size_t n)
  function mpn_karaadd (line 125) | static void	mpn_karaadd(mp_ptr rp, mp_ptr tp, mp_size_t n)
  function mpn_kara_mul_n (line 143) | void	mpn_kara_mul_n(mp_ptr rp, mp_srcptr xp, mp_srcptr yp, mp_size_t n, ...
  function mpn_kara_sqr_n (line 226) | void mpn_kara_sqr_n(mp_ptr rp, mp_srcptr xp, mp_size_t n, mp_ptr tp)
  function mpn_mul_n (line 282) | void
  function mpn_sqr (line 332) | void

FILE: mpn/generic/mulhigh_n.c
  function mpn_mulshort_n_basecase (line 136) | inline static void
  function mpn_mulshort_n (line 242) | static void
  function mpn_mulhigh_n (line 308) | void

FILE: mpn/generic/mullow_basecase.c
  function mpn_mullow_basecase (line 30) | void

FILE: mpn/generic/mullow_n.c
  function mpn_mullow_n (line 32) | void

FILE: mpn/generic/mullow_n_basecase.c
  function mpn_mullow_n_basecase (line 32) | void

FILE: mpn/generic/mulmid.c
  function mpn_mulmid (line 47) | void

FILE: mpn/generic/mulmid_basecase.c
  function mpn_mulmid_basecase (line 48) | void

FILE: mpn/generic/mulmid_n.c
  function mpn_mulmid_n (line 45) | void

FILE: mpn/generic/mulmod_2expm1.c
  function mpn_mulmod_2expm1_basecase (line 37) | inline static void
  function mpn_mulmod_2expm1 (line 107) | void
  function mpn_mulmod_bnm1 (line 297) | void

FILE: mpn/generic/mulmod_2expp1_basecase.c
  function mpn_mulmod_2expp1_internal (line 36) | inline static int
  function mpn_mulmod_2expp1_basecase (line 134) | int

FILE: mpn/generic/mulmod_bexpp1.c
  function mpn_mulmod_Bexpp1 (line 37) | int mpn_mulmod_Bexpp1(mp_ptr r, mp_srcptr i1, mp_srcptr i2, mp_size_t li...

FILE: mpn/generic/nand_n.c
  function func (line 67) | void

FILE: mpn/generic/nior_n.c
  function func (line 67) | void

FILE: mpn/generic/nsumdiff_n.c
  function mp_limb_t (line 25) | mp_limb_t mpn_nsumdiff_n(mp_ptr s, mp_ptr d, mp_srcptr x, mp_srcptr y, m...

FILE: mpn/generic/perfect_square_p.c
  function mpn_perfect_square_p (line 167) | int

FILE: mpn/generic/popcount.c
  function mp_bitcnt_t (line 37) | mp_bitcnt_t

FILE: mpn/generic/pow_1.c
  function mp_size_t (line 31) | mp_size_t

FILE: mpn/generic/powlo.c
  function mp_limb_t (line 40) | static inline mp_limb_t
  function win_size (line 64) | static inline int
  function mpn_powlo (line 77) | void

FILE: mpn/generic/powm.c
  function mp_limb_t (line 103) | static inline mp_limb_t
  function win_size (line 127) | static inline int
  function redcify (line 138) | static void
  function mpn_powm (line 158) | void

FILE: mpn/generic/preinv_divrem_1.c
  function mp_limb_t (line 53) | mp_limb_t

FILE: mpn/generic/preinv_mod_1.c
  function mp_limb_t (line 35) | mp_limb_t

FILE: mpn/generic/random.c
  function mpn_random (line 26) | void

FILE: mpn/generic/random2.c
  function mpn_random2 (line 37) | void
  function gmp_rrandomb (line 57) | static void

FILE: mpn/generic/randomb.c
  function mpn_randomb (line 25) | void mpn_randomb(mp_ptr rp, gmp_randstate_t rnd, mp_size_t n)

FILE: mpn/generic/redc_1.c
  function mpn_redc_1 (line 29) | void mpn_redc_1 (mp_ptr cp, mp_ptr tp, mp_srcptr mp, mp_size_t n, mp_lim...

FILE: mpn/generic/redc_2.c
  function mp_limb_t (line 36) | mp_limb_t
  function mpn_redc_2 (line 69) | void

FILE: mpn/generic/redc_n.c
  function mpn_redc_n (line 50) | void

FILE: mpn/generic/rootrem.c
  function mp_size_t (line 78) | mp_size_t
  function mp_size_t (line 135) | static mp_size_t

FILE: mpn/generic/rootrem_basecase.c
  function mp_size_t (line 80) | mp_size_t
  function clg (line 400) | long
  function sizetwo (line 422) | static inline signed long
  function sizetwom1 (line 431) | static inline signed long
  function nroot_small (line 463) | static signed long
  function nroot_vsmall (line 604) | static signed long
  function nroot (line 860) | static signed long
  function finv_fast (line 1024) | static signed long
  function mp_size_t (line 1071) | mp_size_t mpn_rootrem(mp_ptr xp, mp_ptr r, mp_srcptr y,mp_size_t yn, mp_...

FILE: mpn/generic/rrandom.c
  function mpn_rrandom (line 41) | void
  function gmp_rrandomb (line 60) | static void

FILE: mpn/generic/rsh_divrem_hensel_qr_1.c
  function mp_limb_t (line 26) | mp_limb_t mpn_rsh_divrem_hensel_qr_1(mp_ptr qp, mp_srcptr xp,

FILE: mpn/generic/rsh_divrem_hensel_qr_1_1.c
  function mp_limb_t (line 26) | mp_limb_t mpn_rsh_divrem_hensel_qr_1_1(mp_ptr qp, mp_srcptr xp,

FILE: mpn/generic/rsh_divrem_hensel_qr_1_2.c
  function mp_limb_t (line 30) | mp_limb_t mpn_rsh_divrem_hensel_qr_1_2(mp_ptr qp, mp_srcptr xp,

FILE: mpn/generic/rshift.c
  function mp_limb_t (line 35) | mp_limb_t

FILE: mpn/generic/sb_bdiv_q.c
  function mpn_sb_bdiv_q (line 50) | void

FILE: mpn/generic/sb_bdiv_qr.c
  function mp_limb_t (line 45) | mp_limb_t

FILE: mpn/generic/sb_div_q.c
  function mp_limb_t (line 34) | mp_limb_t

FILE: mpn/generic/sb_div_qr.c
  function mp_limb_t (line 34) | mp_limb_t

FILE: mpn/generic/sb_divappr_q.c
  function __divappr_helper (line 35) | void __divappr_helper(mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t qn)
  function mp_limb_t (line 48) | mp_limb_t

FILE: mpn/generic/scan0.c
  function mp_bitcnt_t (line 28) | mp_bitcnt_t

FILE: mpn/generic/scan1.c
  function mp_bitcnt_t (line 28) | mp_bitcnt_t

FILE: mpn/generic/set_str.c
  function mp_size_t (line 60) | mp_size_t
  function mpn_set_str_compute_powtab (line 127) | void
  function mp_size_t (line 212) | mp_size_t
  function mp_size_t (line 268) | mp_size_t

FILE: mpn/generic/sizeinbase.c
  function mpn_sizeinbase (line 34) | size_t

FILE: mpn/generic/sqr_basecase.c
  function mpn_sqr_basecase (line 55) | void
  function mpn_sqr_basecase (line 137) | void
  function mpn_sqr_basecase (line 257) | void

FILE: mpn/generic/sqrtrem.c
  function mp_limb_t (line 34) | static mp_limb_t mpn_intdivrem (mp_ptr qp, mp_size_t qxn,
  function mp_size_t (line 134) | static mp_size_t
  function mp_limb_t (line 197) | static mp_limb_t
  function mp_limb_t (line 241) | static mp_limb_t
  function mp_size_t (line 283) | mp_size_t

FILE: mpn/generic/sub_err1_n.c
  function mp_limb_t (line 45) | mp_limb_t

FILE: mpn/generic/sub_err2_n.c
  function mp_limb_t (line 42) | mp_limb_t

FILE: mpn/generic/sub_n.c
  function mp_limb_t (line 28) | mp_limb_t
  function mp_limb_t (line 58) | mp_limb_t

FILE: mpn/generic/subadd_n.c
  function mp_limb_t (line 28) | mp_limb_t mpn_subadd_n(mp_ptr t, mp_srcptr x, mp_srcptr y, mp_srcptr z, ...

FILE: mpn/generic/submul_1.c
  function mp_limb_t (line 33) | mp_limb_t
  function mp_limb_t (line 64) | mp_limb_t
  function mp_limb_t (line 100) | mp_limb_t

FILE: mpn/generic/sumdiff_n.c
  function mp_limb_t (line 25) | mp_limb_t mpn_sumdiff_n(mp_ptr s, mp_ptr d, mp_srcptr x, mp_srcptr y, mp...

FILE: mpn/generic/tdiv_q.c
  function mpn_tdiv_q (line 81) | void

FILE: mpn/generic/tdiv_qr.c
  function mpn_tdiv_qr (line 37) | void

FILE: mpn/generic/toom3_mul.c
  function mpn_toom3_interpolate (line 69) | void
  function mpn_toom3_mul (line 244) | void
  function mpn_toom42_mul (line 416) | void
  function mpn_toom32_mul (line 617) | void

FILE: mpn/generic/toom3_mul_n.c
  function mpn_toom3_mul_n (line 79) | void
  function mpn_toom3_sqr_n (line 253) | void

FILE: mpn/generic/toom42_mulmid.c
  function mpn_toom42_mulmid (line 53) | void

FILE: mpn/generic/toom4_mul.c
  function mpn_toom4_mul (line 128) | void
  function mpn_toom53_mul (line 314) | void

FILE: mpn/generic/toom4_mul_n.c
  function _tc4_add (line 43) | void _tc4_add(mp_ptr rp, mp_size_t * rn, mp_srcptr r1, mp_size_t r1n,
  function tc4_add (line 91) | void tc4_add(mp_ptr rp, mp_size_t * rn, mp_srcptr r1, mp_size_t r1n,
  function _tc4_add_unsigned (line 101) | void _tc4_add_unsigned(mp_ptr rp, mp_size_t * rn, mp_srcptr r1,
  function tc4_add_unsigned (line 129) | void tc4_add_unsigned(mp_ptr rp, mp_size_t * rn, mp_srcptr r1,
  function tc4_sub (line 136) | void tc4_sub(mp_ptr rp, mp_size_t * rn, mp_srcptr r1, mp_size_t r1n,
  function tc4_lshift (line 142) | void tc4_lshift(mp_ptr rp, mp_size_t * rn, mp_srcptr xp,
  function tc4_rshift_inplace (line 159) | void tc4_rshift_inplace(mp_ptr rp, mp_size_t * rn, mp_size_t bits)
  function tc4_addlsh1_unsigned (line 175) | void tc4_addlsh1_unsigned(mp_ptr rp, mp_size_t * rn, mp_srcptr xp, mp_si...
  function tc4_divexact_ui (line 213) | void tc4_divexact_ui(mp_ptr rp, mp_size_t * rn, mp_ptr x, mp_size_t xn, ...
  function tc4_divexact_by3 (line 228) | void tc4_divexact_by3(mp_ptr rp, mp_size_t * rn, mp_ptr x, mp_size_t xn)
  function tc4_divexact_by15 (line 246) | void tc4_divexact_by15(mp_ptr rp, mp_size_t * rn, mp_ptr x, mp_size_t xn)
  function tc4_addmul_1 (line 278) | void tc4_addmul_1(mp_ptr wp, mp_size_t * wn, mp_srcptr xp, mp_size_t xn,...
  function tc4_submul_1 (line 404) | void tc4_submul_1(mp_ptr wp, mp_size_t * wn, mp_srcptr x, mp_size_t xn, ...
  function tc4_copy (line 409) | void tc4_copy (mp_ptr yp, mp_size_t * yn, mp_size_t offset, mp_srcptr xp...
  function mpn_toom4_mul_n (line 560) | void
  function mpn_toom4_sqr_n (line 743) | void
  function mpn_toom4_interpolate (line 852) | void mpn_toom4_interpolate(mp_ptr rp, mp_size_t * rpn, mp_size_t sn,

FILE: mpn/generic/toom8_sqr_n.c
  function mpn_toom8_sqr_n (line 54) | void

FILE: mpn/generic/toom8h_mul.c
  function mpn_toom8h_mul (line 66) | void

FILE: mpn/generic/toom_couple_handling.c
  function mpn_toom_couple_handling (line 36) | void

FILE: mpn/generic/toom_eval_dgr3_pm1.c
  function mpn_toom_eval_dgr3_pm1 (line 31) | int

FILE: mpn/generic/toom_eval_dgr3_pm2.c
  function mpn_toom_eval_dgr3_pm2 (line 31) | int

FILE: mpn/generic/toom_eval_pm1.c
  function mpn_toom_eval_pm1 (line 28) | int	mpn_toom_eval_pm1(mp_ptr pp,mp_ptr mp,unsigned int k,mp_srcptr xp,mp...

FILE: mpn/generic/toom_eval_pm2.c
  function mpn_toom_eval_pm2 (line 58) | int

FILE: mpn/generic/toom_eval_pm2exp.c
  function mpn_toom_eval_pm2exp (line 31) | int

FILE: mpn/generic/toom_eval_pm2rexp.c
  function mp_limb_t (line 33) | static mp_limb_t
  function mpn_toom_eval_pm2rexp (line 47) | int

FILE: mpn/generic/toom_interpolate_16pts.c
  function mp_limb_t (line 42) | static mp_limb_t
  function mp_limb_t (line 58) | static mp_limb_t
  function mpn_toom_interpolate_16pts (line 272) | void

FILE: mpn/generic/udiv_w_sdiv.c
  function mp_limb_t (line 35) | mp_limb_t

FILE: mpn/generic/urandomb.c
  function mpn_urandomb (line 25) | void mpn_urandomb(mp_ptr rp, gmp_randstate_t rnd, mpir_ui n)

FILE: mpn/generic/urandomm.c
  function mpn_urandomm (line 26) | void mpn_urandomm(mp_ptr rp, gmp_randstate_t rnd, mp_srcptr mp, mp_size_...

FILE: mpn/generic/xnor_n.c
  function func (line 67) | void

FILE: mpn/generic/xor_n.c
  function func (line 67) | void

FILE: mpn/generic/zero.c
  function mpn_zero (line 23) | void

FILE: mpn/ia64/submul_1.c
  function mp_limb_t (line 31) | mp_limb_t

FILE: mpn/sparc64/divexact_1.c
  function mpn_divexact_1 (line 56) | void

FILE: mpn/sparc64/divrem_1.c
  function mp_limb_t (line 49) | mp_limb_t

FILE: mpn/sparc64/mod_1.c
  function mp_limb_t (line 51) | mp_limb_t

FILE: mpn/sparc64/modexact_1c_odd.c
  function mp_limb_t (line 71) | mp_limb_t

FILE: mpn/x86_64/fat/copyd.c
  function mpn_copyd (line 25) | void	mpn_copyd(mp_ptr rp,mp_srcptr sp,mp_size_t n)

FILE: mpn/x86_64/fat/copyi.c
  function mpn_copyi (line 25) | void	mpn_copyi(mp_ptr rp,mp_srcptr sp,mp_size_t n)

FILE: mpn/x86_64/fat/fat.c
  type cpuvec_t (line 39) | struct cpuvec_t
  function __gmpn_cpuvec_init (line 124) | void

FILE: mpn/x86_64/haswell/hgcd2.c
  function lzcnt (line 34) | static inline unsigned long
  function shld (line 45) | static inline unsigned long
  function shrd (line 57) | static inline unsigned long
  function mp_limb_t (line 97) | static inline mp_limb_t
  function mp_limb_t (line 112) | static inline mp_limb_t
  function mp_limb_t (line 140) | static inline mp_limb_t
  function mpn_hgcd2 (line 192) | int

FILE: mpn/x86_64w/fat/copyd.c
  function mpn_copyd (line 25) | void	mpn_copyd(mp_ptr rp,mp_srcptr sp,mp_size_t n)

FILE: mpn/x86_64w/fat/copyi.c
  function mpn_copyi (line 25) | void	mpn_copyi(mp_ptr rp,mp_srcptr sp,mp_size_t n)

FILE: mpn/x86_64w/fat/fat.c
  type cpuvec_t (line 39) | struct cpuvec_t
  function __gmpn_cpuvec_init (line 124) | void

FILE: mpq/abs.c
  function mpq_abs (line 28) | void

FILE: mpq/aors.c
  function mpq_add (line 94) | void
  function mpq_sub (line 100) | void

FILE: mpq/canonicalize.c
  function mpq_canonicalize (line 27) | void

FILE: mpq/clear.c
  function mpq_clear (line 25) | void

FILE: mpq/cmp.c
  function mpq_cmp_numden (line 27) | static int
  function mpq_cmp (line 147) | int
  function mpq_cmp_z (line 153) | int

FILE: mpq/cmp_si.c
  function _mpq_cmp_si (line 30) | int

FILE: mpq/cmp_ui.c
  function _mpq_cmp_ui (line 28) | int

FILE: mpq/div.c
  function mpq_div (line 26) | void

FILE: mpq/equal.c
  function mpq_equal (line 26) | int

FILE: mpq/get_d.c
  function mpq_get_d (line 95) | double

FILE: mpq/get_den.c
  function mpq_get_den (line 25) | void

FILE: mpq/get_num.c
  function mpq_get_num (line 25) | void

FILE: mpq/init.c
  function mpq_init (line 25) | void

FILE: mpq/inp_str.c
  function mpq_inp_str (line 28) | size_t

FILE: mpq/inv.c
  function mpq_inv (line 26) | void

FILE: mpq/md_2exp.c
  function mord_2exp (line 30) | static void
  function mpq_mul_2exp (line 83) | void
  function mpq_div_2exp (line 90) | void

FILE: mpq/mul.c
  function mpq_mul (line 27) | void

FILE: mpq/neg.c
  function mpq_neg (line 28) | void

FILE: mpq/out_str.c
  function mpq_out_str (line 29) | size_t

FILE: mpq/set.c
  function mpq_set (line 25) | void

FILE: mpq/set_d.c
  function mpq_set_d (line 36) | void

FILE: mpq/set_den.c
  function mpq_set_den (line 25) | void

FILE: mpq/set_f.c
  function mpq_set_f (line 27) | void

FILE: mpq/set_num.c
  function mpq_set_num (line 25) | void

FILE: mpq/set_si.c
  function mpq_set_si (line 26) | void

FILE: mpq/set_str.c
  function mpq_set_str (line 33) | int

FILE: mpq/set_ui.c
  function mpq_set_ui (line 26) | void

FILE: mpq/set_z.c
  function mpq_set_z (line 25) | void

FILE: mpq/swap.c
  function mpq_swap (line 25) | void

FILE: mpz/2fac_ui.c
  function mpz_2fac_ui (line 56) | void

FILE: mpz/abs.c
  function mpz_abs (line 27) | void

FILE: mpz/and.c
  function mpz_and (line 26) | void

FILE: mpz/aors.h
  function FUNCTION (line 41) | void

FILE: mpz/aors_ui.h
  function FUNCTION (line 49) | void

FILE: mpz/aorsmul.c
  function mpz_aorsmul (line 39) | static void __gmpz_aorsmul(REGPARM_3_1 (mpz_ptr w, mpz_srcptr x, mpz_src...
  function mpz_addmul (line 146) | void
  function mpz_submul (line 152) | void

FILE: mpz/aorsmul_i.c
  function mpz_aorsmul_1 (line 60) | void
  function mpz_addmul_ui (line 194) | void
  function mpz_submul_ui (line 222) | void

FILE: mpz/array_init.c
  function mpz_array_init (line 27) | void

FILE: mpz/bin_ui.c
  function mpz_bin_ui (line 40) | void

FILE: mpz/bin_uiui.c
  function mp_limb_t (line 131) | static mp_limb_t
  function mp_limb_t (line 137) | static mp_limb_t
  function mp_limb_t (line 145) | static mp_limb_t
  function mp_limb_t (line 153) | static mp_limb_t
  function mp_limb_t (line 161) | static mp_limb_t
  function mp_limb_t (line 169) | static mp_limb_t
  function mp_limb_t (line 179) | static mp_limb_t
  function mp_limb_t (line 189) | static mp_limb_t
  type mp_limb_t (line 201) | typedef mp_limb_t (* mulfunc_t) (mp_limb_t);
  function mpz_bdiv_bin_uiui (line 242) | static void
  function mpz_smallk_bin_uiui (line 360) | static void
  function mp_limb_t (line 418) | static mp_limb_t
  function mpz_smallkdc_bin_uiui (line 445) | static void
  function mp_limb_t (line 562) | static mp_limb_t
  function mp_limb_t (line 567) | static mp_limb_t
  function mp_limb_t (line 571) | static mp_limb_t
  function mp_size_t (line 574) | static mp_size_t
  function mp_limb_t (line 607) | static mp_limb_t
  function mpz_goetgheluck_bin_uiui (line 618) | static void
  function mpz_bin_uiui (line 708) | void

FILE: mpz/cdiv_q.c
  function mpz_cdiv_q (line 26) | void

FILE: mpz/cdiv_q_ui.c
  function mpir_ui (line 28) | mpir_ui

FILE: mpz/cdiv_qr.c
  function mpz_cdiv_qr (line 26) | void

FILE: mpz/cdiv_qr_ui.c
  function mpir_ui (line 29) | mpir_ui

FILE: mpz/cdiv_r.c
  function mpz_cdiv_r (line 26) | void

FILE: mpz/cdiv_r_ui.c
  function mpir_ui (line 29) | mpir_ui

FILE: mpz/cdiv_ui.c
  function mpir_ui (line 29) | mpir_ui

FILE: mpz/cfdiv_q_2exp.c
  function cfdiv_q_2exp (line 29) | static void __gmpz_cfdiv_q_2exp(REGPARM_3_1 (mpz_ptr w, mpz_srcptr u, mp...
  function mpz_cdiv_q_2exp (line 94) | void
  function mpz_fdiv_q_2exp (line 100) | void

FILE: mpz/cfdiv_r_2exp.c
  function cfdiv_r_2exp (line 32) | static void __gmpz_cfdiv_r_2exp(REGPARM_3_1 (mpz_ptr w, mpz_srcptr u, mp...
  function mpz_cdiv_r_2exp (line 147) | void
  function mpz_fdiv_r_2exp (line 153) | void

FILE: mpz/clear.c
  function mpz_clear (line 26) | void

FILE: mpz/clrbit.c
  function mpz_clrbit (line 25) | void

FILE: mpz/cmp.c
  function mpz_cmp (line 26) | int

FILE: mpz/cmp_d.c
  function mpz_cmp_d (line 50) | int

FILE: mpz/cmp_si.c
  function _mpz_cmp_si (line 27) | int

FILE: mpz/cmp_ui.c
  function _mpz_cmp_ui (line 27) | int

FILE: mpz/cmpabs.c
  function mpz_cmpabs (line 28) | int

FILE: mpz/cmpabs_d.c
  function mpz_cmpabs_d (line 50) | int

FILE: mpz/cmpabs_ui.c
  function mpz_cmpabs_ui (line 27) | int

FILE: mpz/com.c
  function mpz_com (line 26) | void

FILE: mpz/combit.c
  function mpz_combit (line 25) | void

FILE: mpz/cong.c
  function mpz_congruent_p (line 52) | int

FILE: mpz/cong_2exp.c
  function mpz_congruent_2exp_p (line 24) | int

FILE: mpz/cong_ui.c
  function mpz_congruent_ui_p (line 33) | int

FILE: mpz/dive_ui.c
  function mpz_divexact_ui (line 26) | void

FILE: mpz/divegcd.c
  function mpz_divexact_by3 (line 48) | static void
  function mpz_divexact_by5 (line 65) | static void
  function mpz_divexact_limb (line 81) | static void
  function mpz_divexact_gcd (line 96) | void

FILE: mpz/divexact.c
  function mpz_divexact (line 28) | void

FILE: mpz/divis.c
  function mpz_divisible_p (line 25) | int

FILE: mpz/divis_2exp.c
  function mpz_divisible_2exp_p (line 24) | int

FILE: mpz/divis_ui.c
  function mpz_divisible_ui_p (line 27) | int

FILE: mpz/dump.c
  function mpz_dump (line 32) | void

FILE: mpz/fac_ui.c
  function mpz_fac_ui (line 60) | void

FILE: mpz/fdiv_q.c
  function mpz_fdiv_q (line 26) | void

FILE: mpz/fdiv_q_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/fdiv_qr.c
  function mpz_fdiv_qr (line 26) | void

FILE: mpz/fdiv_qr_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/fdiv_r.c
  function mpz_fdiv_r (line 26) | void

FILE: mpz/fdiv_r_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/fdiv_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/fib2_ui.c
  function mpz_fib2_ui (line 27) | void

FILE: mpz/fib_ui.c
  function mpz_fib_ui (line 48) | void

FILE: mpz/fits_s.h
  function FUNCTION (line 26) | int

FILE: mpz/gcd.c
  function mpz_gcd (line 26) | void

FILE: mpz/gcd_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/gcdext.c
  function mpz_gcdext (line 26) | void

FILE: mpz/get_d.c
  function mpz_get_d (line 25) | double

FILE: mpz/get_d_2exp.c
  function mpir_si (line 29) | mpir_si
  function mpz_get_d_2exp (line 52) | double

FILE: mpz/get_si.c
  function mpir_si (line 26) | mpir_si

FILE: mpz/get_sx.c
  function intmax_t (line 35) | intmax_t

FILE: mpz/get_ux.c
  function uintmax_t (line 35) | uintmax_t

FILE: mpz/hamdist.c
  function mp_bitcnt_t (line 24) | mp_bitcnt_t

FILE: mpz/import.c
  function mpz_import (line 40) | void

FILE: mpz/init.c
  function mpz_init (line 26) | void

FILE: mpz/init2.c
  function mpz_init2 (line 25) | void

FILE: mpz/inp_raw.c
  function mpz_inp_raw_p (line 60) | void mpz_inp_raw_p (mpz_ptr x, unsigned char* csize_bytes, mpir_out_ptr ...
  function mpz_inp_raw_m (line 101) | void mpz_inp_raw_m(mpz_ptr x, mpir_out_ptr out)
  function mpz_inp_raw (line 173) | size_t

FILE: mpz/inp_str.c
  function mpz_inp_str_nowhite (line 37) | size_t
  function mpz_inp_str (line 147) | size_t

FILE: mpz/invert.c
  function mpz_invert (line 28) | int

FILE: mpz/ior.c
  function mpz_ior (line 26) | void

FILE: mpz/iset.c
  function mpz_init_set (line 27) | void

FILE: mpz/iset_d.c
  function mpz_init_set_d (line 26) | void

FILE: mpz/iset_si.c
  function mpz_init_set_si (line 27) | void

FILE: mpz/iset_str.c
  function mpz_init_set_str (line 31) | int

FILE: mpz/iset_sx.c
  function mpz_init_set_sx (line 34) | void

FILE: mpz/iset_ui.c
  function mpz_init_set_ui (line 27) | void

FILE: mpz/iset_ux.c
  function mpz_init_set_ux (line 34) | void

FILE: mpz/jacobi.c
  function mpz_jacobi (line 48) | int

FILE: mpz/kronsz.c
  function mpz_si_kronecker (line 27) | int

FILE: mpz/kronuz.c
  function mpz_ui_kronecker (line 27) | int

FILE: mpz/kronzs.c
  function mpz_kronecker_si (line 30) | int

FILE: mpz/kronzu.c
  function mpz_kronecker_ui (line 27) | int

FILE: mpz/lcm.c
  function mpz_lcm (line 27) | void

FILE: mpz/lcm_ui.c
  function mpz_lcm_ui (line 27) | void

FILE: mpz/likely_prime_p.c
  type n_pair_t (line 36) | typedef struct pair_s
  function mp_limb_t (line 44) | mp_limb_t mpir_sqrt(mp_limb_t r)
  function n_precompute_inverse (line 129) | static
  function BIT_COUNT (line 135) | static
  function n_is_square (line 158) | static
  function mp_limb_t (line 171) | static
  function mp_limb_t (line 182) | static
  function mp_limb_t (line 189) | static inline
  function mp_limb_t (line 196) | static
  function mp_limb_t (line 207) | static
  function mp_limb_t (line 223) | static
  function mp_limb_t (line 236) | static
  function mp_limb_t (line 246) | static
  function mp_limb_t (line 269) | static
  function mp_limb_t (line 290) | static
  function mp_limb_t (line 298) | static
  function mp_limb_t (line 306) | static
  function mp_limb_t (line 368) | static
  function n_jacobi (line 445) | static
  function n_is_pseudoprime_fermat (line 514) | static
  function n_is_strong_pseudoprime_precomp (line 531) | static
  function n_is_strong_pseudoprime2_preinv (line 551) | static
  function n_pair_t (line 571) | static
  function n_pair_t (line 607) | static
  function n_is_pseudoprime_fibonacci (line 643) | static
  function n_pair_t (line 674) | static
  function n_pair_t (line 710) | static
  function n_is_pseudoprime_lucas (line 746) | static
  function mpir_is_likely_prime_BPSW (line 819) | int mpir_is_likely_prime_BPSW(mp_limb_t n)
  function mpz_likely_prime_p (line 867) | int

FILE: mpz/limbs_finish.c
  function mpz_limbs_finish (line 34) | void

FILE: mpz/limbs_modify.c
  function mp_ptr (line 34) | mp_ptr

FILE: mpz/limbs_read.c
  function mp_srcptr (line 34) | mp_srcptr

FILE: mpz/limbs_write.c
  function mp_ptr (line 34) | mp_ptr

FILE: mpz/lucnum2_ui.c
  function mpz_lucnum2_ui (line 25) | void

FILE: mpz/lucnum_ui.c
  function mpz_lucnum_ui (line 46) | void

FILE: mpz/mfac_uiui.c
  function mpz_mfac_uiui (line 44) | void

FILE: mpz/miller_rabin.c
  function mill_rab (line 36) | static int
  function mpz_miller_rabin (line 58) | int

FILE: mpz/millerrabin.c
  function mpz_millerrabin (line 38) | int

FILE: mpz/mod.c
  function mpz_mod (line 26) | void

FILE: mpz/mul.c
  function mpz_mul (line 27) | void

FILE: mpz/mul_2exp.c
  function mpz_mul_2exp (line 25) | void

FILE: mpz/mul_i.h
  function FUNCTION (line 47) | void

FILE: mpz/n_pow_ui.c
  function mpz_n_pow_ui (line 152) | void

FILE: mpz/neg.c
  function mpz_neg (line 27) | void

FILE: mpz/next_prime_candidate.c
  function mpz_next_prime_candidate (line 29) | void
  function mpz_next_prime_candidate (line 57) | void

FILE: mpz/nextprime.c
  function mpz_nextprime (line 35) | void mpz_nextprime(mpz_ptr x, mpz_srcptr y)

FILE: mpz/nthroot.c
  function mpz_nthroot (line 28) | void

FILE: mpz/oddfac_1.c
  function mp_limb_t (line 111) | static mp_limb_t
  function mp_limb_t (line 116) | static mp_limb_t
  function mp_limb_t (line 120) | static mp_limb_t
  function mp_size_t (line 124) | static mp_size_t
  function mp_limb_t (line 134) | static mp_limb_t
  function mpz_2multiswing_1 (line 197) | static void
  function mpz_oddfac_1 (line 296) | void

FILE: mpz/out_raw.c
  function mpz_out_raw_m (line 57) | void mpz_out_raw_m (mpir_out_ptr mpir_out, mpz_srcptr x)
  function mpz_out_raw (line 165) | size_t

FILE: mpz/out_str.c
  function mpz_out_str (line 27) | size_t

FILE: mpz/perfpow.c
  function mpz_perfect_power_p (line 66) | int
  function mpir_ui (line 214) | static mpir_ui
  function isprime (line 253) | static int

FILE: mpz/pow_ui.c
  function mpz_pow_ui (line 25) | void

FILE: mpz/powm.c
  function mpz_powm (line 62) | void

FILE: mpz/powm_ui.c
  function mod (line 59) | static void
  function reduce (line 100) | static void
  function mpz_powm_ui (line 117) | void

FILE: mpz/pprime_p.c
  function mpz_probab_prime_p (line 44) | int
  function isprime (line 142) | static int

FILE: mpz/primorial_ui.c
  function mp_limb_t (line 76) | static mp_limb_t
  function mp_limb_t (line 81) | static mp_limb_t
  function mp_limb_t (line 85) | static mp_limb_t
  function mp_size_t (line 89) | static mp_size_t
  function mpz_primorial_ui (line 97) | void

FILE: mpz/probable_prime_p.c
  function mpz_probable_prime_p (line 25) | int

FILE: mpz/prodlimbs.c
  function mp_size_t (line 48) | mp_size_t

FILE: mpz/realloc2.c
  function mpz_realloc2 (line 25) | void

FILE: mpz/remove.c
  function mp_bitcnt_t (line 25) | mp_bitcnt_t

FILE: mpz/roinit_n.c
  function mpz_srcptr (line 34) | mpz_srcptr

FILE: mpz/root.c
  function mpz_root (line 25) | int

FILE: mpz/rootrem.c
  function mpz_rootrem (line 27) | void

FILE: mpz/rrandomb.c
  function mpz_rrandomb (line 27) | void
  function gmp_rrandomb (line 51) | static void

FILE: mpz/scan0.c
  function mp_bitcnt_t (line 30) | mp_bitcnt_t

FILE: mpz/scan1.c
  function mp_bitcnt_t (line 30) | mp_bitcnt_t

FILE: mpz/set.c
  function FUNCTION (line 29) | void

FILE: mpz/set_d.c
  function mpz_set_d (line 39) | void

FILE: mpz/set_f.c
  function mpz_set_f (line 26) | void

FILE: mpz/set_si.c
  function mpz_set_si (line 26) | void

FILE: mpz/set_str.c
  function mpz_set_str (line 35) | int

FILE: mpz/set_sx.c
  function mpz_set_sx (line 34) | void

FILE: mpz/set_ui.c
  function mpz_set_ui (line 26) | void

FILE: mpz/set_ux.c
  function mpz_set_ux (line 34) | void

FILE: mpz/setbit.c
  function mpz_setbit (line 26) | void

FILE: mpz/sizeinbase.c
  function mpz_sizeinbase (line 28) | size_t

FILE: mpz/sqrt.c
  function mpz_sqrt (line 27) | void

FILE: mpz/sqrtrem.c
  function mpz_sqrtrem (line 28) | void

FILE: mpz/swap.c
  function mpz_swap (line 25) | void

FILE: mpz/tdiv_q.c
  function mpz_tdiv_q (line 29) | void

FILE: mpz/tdiv_q_2exp.c
  function mpz_tdiv_q_2exp (line 26) | void

FILE: mpz/tdiv_q_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/tdiv_qr.c
  function mpz_tdiv_qr (line 27) | void

FILE: mpz/tdiv_qr_ui.c
  function mpir_ui (line 28) | mpir_ui

FILE: mpz/tdiv_r.c
  function mpz_tdiv_r (line 26) | void

FILE: mpz/tdiv_r_2exp.c
  function mpz_tdiv_r_2exp (line 25) | void

FILE: mpz/tdiv_r_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/tdiv_ui.c
  function mpir_ui (line 27) | mpir_ui

FILE: mpz/trial_division.c
  function mpz_trial_division (line 31) | unsigned long mpz_trial_division(mpz_srcptr N, unsigned long start, unsi...

FILE: mpz/tstbit.c
  function mpz_tstbit (line 40) | int

FILE: mpz/ui_pow_ui.c
  function mpz_ui_pow_ui (line 26) | void

FILE: mpz/ui_sub.c
  function mpz_ui_sub (line 25) | void

FILE: mpz/urandomb.c
  function mpz_urandomb (line 27) | void

FILE: mpz/urandomm.c
  function mpz_urandomm (line 28) | void

FILE: mpz/xor.c
  function mpz_xor (line 26) | void

FILE: nextprime.c
  function mpir_ui (line 49) | mpir_ui
  function gmp_init_primesieve (line 149) | void

FILE: primesieve.c
  function mp_limb_t (line 69) | static mp_limb_t
  function mp_limb_t (line 74) | static mp_limb_t
  function mp_limb_t (line 78) | static mp_limb_t
  function mp_size_t (line 82) | static mp_size_t
  function first_block_primesieve (line 109) | static void
  function block_resieve (line 174) | static void
  function mp_limb_t (line 250) | mp_limb_t

FILE: printf/asprntffuns.c
  function __gmp_asprintf_memory (line 43) | int
  function __gmp_asprintf_reps (line 52) | int
  function __gmp_asprintf_final (line 61) | int

FILE: printf/doprnt.c
  function __gmp_doprnt (line 156) | int

FILE: printf/doprntf.c
  function __gmp_doprnt_mpf (line 55) | int

FILE: printf/doprnti.c
  function __gmp_doprnt_integer (line 42) | int

FILE: printf/obprintf.c
  type obstack (line 41) | struct obstack
  type obstack (line 53) | struct obstack

FILE: printf/obprntffuns.c
  function gmp_obstack_memory (line 49) | static int
  function gmp_obstack_reps (line 56) | static int
  type doprnt_funs_t (line 64) | struct doprnt_funs_t

FILE: printf/obvprintf.c
  function gmp_obstack_vprintf (line 39) | int

FILE: printf/printffuns.c
  function gmp_fprintf_memory (line 46) | static int
  function gmp_fprintf_reps (line 54) | static int
  type doprnt_funs_t (line 74) | struct doprnt_funs_t

FILE: printf/repl-vsnprintf.c
  function strnlen (line 71) | static size_t
  function __gmp_replacement_vsnprintf (line 96) | int

FILE: printf/snprintf.c
  type gmp_snprintf_t (line 44) | struct gmp_snprintf_t

FILE: printf/snprntffuns.c
  function gmp_snprintf_format (line 60) | static int
  function gmp_snprintf_memory (line 110) | static int
  function gmp_snprintf_reps (line 127) | static int
  function gmp_snprintf_final (line 145) | static int
  type doprnt_funs_t (line 153) | struct doprnt_funs_t

FILE: printf/sprintffuns.c
  function gmp_sprintf_format (line 50) | static int
  function gmp_sprintf_memory (line 61) | static int
  function gmp_sprintf_reps (line 70) | static int
  function gmp_sprintf_final (line 80) | static int
  type doprnt_funs_t (line 88) | struct doprnt_funs_t

FILE: printf/vasprintf.c
  function gmp_asprintf_format (line 68) | static int
  type doprnt_funs_t (line 102) | struct doprnt_funs_t
  function gmp_vasprintf (line 109) | int

FILE: printf/vfprintf.c
  function gmp_vfprintf (line 36) | int

FILE: printf/vprintf.c
  function gmp_vprintf (line 36) | int

FILE: printf/vsnprintf.c
  function gmp_vsnprintf (line 36) | int

FILE: printf/vsprintf.c
  function gmp_vsprintf (line 36) | int

FILE: randbui.c
  function mpir_ui (line 29) | mpir_ui

FILE: randclr.c
  function gmp_randclear (line 25) | void

FILE: randdef.c
  function gmp_randinit_default (line 25) | void

FILE: randiset.c
  function gmp_randinit_set (line 26) | void

FILE: randlc2s.c
  type __gmp_rand_lc_scheme_struct (line 37) | struct __gmp_rand_lc_scheme_struct
  type __gmp_rand_lc_scheme_struct (line 44) | struct __gmp_rand_lc_scheme_struct
  function gmp_randinit_lc_2exp_size (line 66) | int

FILE: randlc2x.c
  type gmp_rand_lc_struct (line 50) | typedef struct {
  function mpir_ui (line 63) | static mpir_ui
  function randget_lc (line 143) | static void
  function randseed_lc (line 222) | static void
  function randclear_lc (line 237) | static void
  function randiset_lc (line 256) | static void
  function gmp_randinit_lc_2exp (line 284) | void

FILE: randmt.c
  function __gmp_mt_recalc_buffer (line 160) | void
  function __gmp_randget_mt (line 185) | void
  function __gmp_randclear_mt (line 348) | void
  function __gmp_randiset_mt (line 364) | void
  function __gmp_randinit_mt_noseed (line 384) | void

FILE: randmt.h
  type gmp_rand_mt_struct (line 32) | typedef struct

FILE: randmts.c
  function mangle_seed (line 29) | static void
  function randseed_mt (line 100) | static void
  function gmp_randinit_mt (line 154) | void

FILE: randmui.c
  function mpir_ui (line 37) | mpir_ui

FILE: randsd.c
  function gmp_randseed (line 25) | void

FILE: randsdui.c
  function gmp_randseed_ui (line 26) | void

FILE: scanf/doscan.c
  type gmp_doscan_params_t (line 187) | struct gmp_doscan_params_t {
  function gmpscan (line 219) | static int
  function skip_white (line 445) | static int
  function __gmp_doscan (line 466) | int

FILE: scanf/fscanffuns.c
  function step (line 43) | static void
  type gmp_doscan_funs_t (line 48) | struct gmp_doscan_funs_t

FILE: scanf/sscanffuns.c
  function scan (line 31) | static int
  function step (line 37) | static void
  function get (line 54) | static int
  function unget (line 67) | static void
  type gmp_doscan_funs_t (line 82) | struct gmp_doscan_funs_t

FILE: scanf/vfscanf.c
  function gmp_vfscanf (line 36) | int

FILE: scanf/vscanf.c
  function gmp_vscanf (line 36) | int

FILE: scanf/vsscanf.c
  function gmp_vsscanf (line 36) | int

FILE: tal-debug.c
  function __gmp_tmp_debug_mark (line 52) | void
  type tmp_debug_t (line 85) | struct tmp_debug_t
  type tmp_debug_t (line 88) | struct tmp_debug_t
  type tmp_debug_entry_t (line 89) | struct tmp_debug_entry_t
  function __gmp_tmp_debug_free (line 108) | void

FILE: tal-notreent.c
  type tmp_stack (line 27) | struct tmp_stack
  type tmp_stack (line 33) | typedef struct tmp_stack tmp_stack;
  function __gmp_tmp_mark (line 100) | void
  function __gmp_tmp_free (line 108) | void

FILE: tal-reent.c
  type tmp_reentrant_t (line 47) | struct tmp_reentrant_t
  function __gmp_tmp_reentrant_free (line 62) | void

FILE: tests/cxx/clocale.c
  type lconv (line 47) | struct lconv
  type lconv (line 50) | struct lconv

FILE: tests/cxx/t-assign.cc
  function check_mpz (line 33) | void
  function check_mpq (line 208) | void
  function check_mpf (line 365) | void
  function main (line 524) | int

FILE: tests/cxx/t-binary.cc
  function check_mpz (line 32) | void
  function check_mpq (line 152) | void
  function check_mpf (line 283) | void
  function main (line 416) | int

FILE: tests/cxx/t-cast.cc
  function check_macros (line 31) | void
  function main (line 54) | int

FILE: tests/cxx/t-constr.cc
  function check_mpz (line 33) | void
  function check_mpq (line 219) | void
  function check_mpf (line 420) | void
  function main (line 745) | int

FILE: tests/cxx/t-headers.cc
  function main (line 24) | int

FILE: tests/cxx/t-istream.cc
  function check_putback_tellg (line 52) | void
  function check_mpz (line 80) | void
  function check_mpq (line 227) | void
  function check_mpf (line 375) | void
  function main (line 525) | int

FILE: tests/cxx/t-locale.cc
  class my_numpunct (line 41) | class my_numpunct : public numpunct<char> {
    method my_numpunct (line 43) | explicit my_numpunct (size_t r = 0) : numpunct<char>(r) { }
    method do_decimal_point (line 45) | char do_decimal_point() const { return point_string[0]; }
  function set_point (line 49) | void
  function check_input (line 61) | void
  function check_output (line 137) | void
  function replacement_works (line 168) | int
  function main (line 182) | int

FILE: tests/cxx/t-misc.cc
  function check_mpz (line 39) | void
  function check_mpq (line 154) | void
  function check_mpf (line 239) | void
  function main (line 376) | int

FILE: tests/cxx/t-ops.cc
  function check_mpz (line 32) | void
  function check_mpq (line 421) | void
  function check_mpf (line 543) | void
  function main (line 710) | int

FILE: tests/cxx/t-ostream.cc
  function check_mpz (line 74) | void
  function check_mpq (line 177) | void
  function check_mpf (line 258) | void
  function main (line 438) | int

FILE: tests/cxx/t-prec.cc
  function check_mpf (line 45) | void
  function main (line 205) | int

FILE: tests/cxx/t-rand.cc
  function check_randinit (line 31) | void
  function check_mpz (line 82) | void
  function check_mpf (line 110) | void
  function check_randstate_t (line 130) | void
  function main (line 155) | int

FILE: tests/cxx/t-ternary.cc
  function check_mpz_1 (line 36) | static void
  function check_mpz_2 (line 54) | static void
  function check_mpz_3 (line 74) | static void
  function check_mpz_4 (line 94) | static void
  function check_mpz_5 (line 114) | static void
  function check_mpz_6 (line 134) | static void
  function check_mpz_7 (line 154) | static void
  function check_mpz_8 (line 174) | static void
  function check_mpz_9 (line 195) | static void
  function check_mpz_10 (line 215) | static void
  function check_mpz_11 (line 235) | static void
  function check_mpz_12 (line 255) | static void
  function check_mpz_13 (line 275) | static void
  function check_mpz_14 (line 296) | static void
  function check_mpz_15 (line 316) | static void
  function check_mpz_16 (line 337) | static void
  function check_mpz_17 (line 358) | static void
  function check_mpz_18 (line 376) | static void
  function check_mpz_19 (line 397) | static void
  function check_mpz_20 (line 417) | static void
  function check_mpz_21 (line 437) | static void
  function check_mpz_22 (line 457) | static void
  function check_mpz_23 (line 477) | static void
  function check_mpz_24 (line 498) | static void
  function check_mpz_25 (line 518) | static void
  function check_mpz_26 (line 538) | static void
  function check_mpz_27 (line 558) | static void
  function check_mpz_28 (line 578) | static void
  function check_mpz_29 (line 598) | static void
  function check_mpz_30 (line 618) | static void
  function check_mpz_31 (line 638) | static void
  function check_mpz_32 (line 658) | static void
  function check_mpq (line 679) | void
  function check_mpf (line 685) | void
  function main (line 692) | int

FILE: tests/cxx/t-unary.cc
  function check_mpz (line 32) | void
  function check_mpq (line 65) | void
  function check_mpf (line 93) | void
  function main (line 122) | int

FILE: tests/devel/addmul_N.c
  function cputime (line 33) | int
  function cputime (line 45) | int
  function mp_limb_t (line 91) | mp_limb_t
  function main (line 104) | int
  function print_posneg (line 225) | static void
  function mpn_print (line 243) | static void

FILE: tests/devel/anymul_1.c
  function cputime (line 51) | int
  function cputime (line 63) | int
  function main (line 93) | int
  function print_posneg (line 217) | static void
  function mpn_print (line 235) | static void

FILE: tests/devel/aors_n.c
  function cputime (line 68) | int
  function cputime (line 80) | int
  function mpn_print (line 210) | static void

FILE: tests/devel/copy.c
  function cputime (line 43) | int
  function cputime (line 55) | int
  function mpn_print (line 176) | static void

FILE: tests/devel/divmod_1.c
  function cputime (line 29) | int
  function cputime (line 41) | int

FILE: tests/devel/logops_n.c
  function cputime (line 79) | int
  function cputime (line 91) | int
  function mpn_print (line 214) | static void

FILE: tests/devel/mul_N.c
  function cputime (line 33) | int
  function cputime (line 45) | int
  function mp_limb_t (line 91) | mp_limb_t
  function main (line 107) | int
  function print_posneg (line 223) | static void
  function mpn_print (line 241) | static void

FILE: tests/devel/shift.c
  function cputime (line 43) | int
  function cputime (line 55) | int
  function mpn_print (line 191) | static void

FILE: tests/devel/try.c
  type region_t (line 227) | struct region_t {
  type source_t (line 243) | struct source_t {
  type source_t (line 250) | struct source_t
  type dest_t (line 252) | struct dest_t {
  type dest_t (line 258) | struct dest_t
  type source_each_t (line 260) | struct source_each_t {
  type dest_each_t (line 264) | struct dest_each_t {
  type each_t (line 278) | struct each_t {
  type each_t (line 285) | struct each_t
  type each_t (line 286) | struct each_t
  type mp_limb_t (line 298) | typedef mp_limb_t (*tryfun_t)(ANYARGS);
  type try_t (line 300) | struct try_t {
  type try_t (line 380) | struct try_t
  function validate_mod_34lsub1 (line 382) | void
  function validate_divexact_1 (line 410) | void
  function validate_modexact_1c_odd (line 444) | void
  function validate_modexact_1_odd (line 502) | void
  function validate_sqrtrem (line 510) | void
  type try_t (line 701) | struct try_t
  function param_init (line 704) | void
  function MPN_COPY_fun (line 1485) | void
  function MPN_COPY_INCR_fun (line 1489) | void
  function MPN_COPY_DECR_fun (line 1493) | void
  function __GMPN_COPY_fun (line 1497) | void
  function __GMPN_COPY_INCR_fun (line 1502) | void
  function mpn_com_n_fun (line 1507) | void
  function mpn_and_n_fun (line 1511) | void
  function mpn_andn_n_fun (line 1515) | void
  function mpn_nand_n_fun (line 1519) | void
  function mpn_ior_n_fun (line 1523) | void
  function mpn_iorn_n_fun (line 1527) | void
  function mpn_nior_n_fun (line 1531) | void
  function mpn_xor_n_fun (line 1535) | void
  function mpn_xnor_n_fun (line 1539) | void
  function mp_limb_t (line 1543) | mp_limb_t
  function mp_limb_t (line 1551) | mp_limb_t
  function mpn_not_fun (line 1557) | void
  function mp_limb_t (line 1563) | mp_limb_t
  function mp_limb_t (line 1569) | mp_limb_t
  function mp_limb_t (line 1575) | mp_limb_t
  function mp_limb_t (line 1581) | mp_limb_t
  function mp_limb_t (line 1587) | mp_limb_t
  function mp_limb_t (line 1593) | mp_limb_t
  function mp_limb_t (line 1600) | mp_limb_t
  function mp_limb_t (line 1608) | mp_limb_t
  function mp_limb_t (line 1616) | mp_limb_t
  function mp_limb_t (line 1624) | mp_limb_t
  function mp_limb_t (line 1631) | mp_limb_t
  function mpn_kara_mul_n_fun (line 1637) | void
  function mpn_kara_sqr_n_fun (line 1646) | void
  function mpn_toom3_mul_n_fun (line 1656) | void
  function mpn_toom3_sqr_n_fun (line 1666) | void
  function mpn_toom4_mul_n_fun (line 1676) | void
  function mpn_toom4_sqr_n_fun (line 1681) | void
  function mpn_toom8h_mul_fun (line 1686) | void
  function mpn_toom8_sqr_n_fun (line 1691) | void
  function mp_limb_t (line 1697) | mp_limb_t
  function MPN_ZERO_fun (line 1705) | void
  function mpn_store_fun (line 1709) | void
  type choice_t (line 1713) | struct choice_t {
  type choice_t (line 1728) | struct choice_t
  type choice_t (line 1974) | struct choice_t
  function mprotect_maybe (line 1977) | void
  function round_up_multiple (line 2004) | size_t
  function malloc_region (line 2024) | void
  function mprotect_region (line 2064) | void
  type overlap_t (line 2180) | struct overlap_t {
  type overlap_t (line 2212) | struct overlap_t
  function t_random (line 2249) | void
  function print_each (line 2294) | void
  function print_all (line 2321) | void
  function compare (line 2385) | void
  function call (line 2451) | void
  function pointer_setup (line 2908) | void
  function validate_fail (line 3054) | void
  function try_one (line 3069) | void
  function try_many (line 3280) | void
  function trap (line 3360) | void
  function try_init (line 3396) | void
  function strmatch_wild (line 3454) | int
  function try_name (line 3478) | void
  function usage (line 3503) | void
  function main (line 3543) | int

FILE: tests/fft/t-adjust.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_adjust (line 45) | void ref_adjust(mpz_t r, mpz_t i1, mpz_t p, mp_size_t i, mp_size_t w)
  function main (line 51) | int

FILE: tests/fft/t-adjust_sqrt2.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_adjust_sqrt2 (line 45) | void ref_adjust_sqrt2(mpz_t r, mpz_t i1, mpz_t p, mp_size_t i, mp_size_t...
  function main (line 57) | int

FILE: tests/fft/t-butterfly.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_fft_butterfly (line 45) | void ref_fft_butterfly(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function ref_ifft_butterfly (line 55) | void ref_ifft_butterfly(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function main (line 65) | int

FILE: tests/fft/t-butterfly_lshB.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_butterfly_lshB (line 45) | void ref_butterfly_lshB(mpz_t t, mpz_t u, mpz_t i1, mpz_t i2,
  function main (line 56) | int

FILE: tests/fft/t-butterfly_rshB.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_butterfly_rshB (line 45) | void ref_butterfly_rshB(mpz_t t, mpz_t u, mpz_t i1, mpz_t i2,
  function main (line 70) | int

FILE: tests/fft/t-butterfly_sqrt2.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_fft_butterfly_sqrt2 (line 45) | void ref_fft_butterfly_sqrt2(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function ref_ifft_butterfly_sqrt2 (line 58) | void ref_ifft_butterfly_sqrt2(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function main (line 71) | int

FILE: tests/fft/t-butterfly_twiddle.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function ref_fft_butterfly_twiddle (line 45) | void ref_fft_butterfly_twiddle(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function ref_ifft_butterfly_twiddle (line 56) | void ref_ifft_butterfly_twiddle(mpz_t s, mpz_t t, mpz_t i1, mpz_t i2,
  function main (line 67) | int

FILE: tests/fft/t-div_2expmod_2expp1.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function main (line 45) | int

FILE: tests/fft/t-fft_ifft_mfa_trunc_sqrt2.c
  function main (line 37) | int

FILE: tests/fft/t-fft_ifft_negacyclic.c
  function main (line 37) | int

FILE: tests/fft/t-fft_ifft_radix2.c
  function main (line 37) | int

FILE: tests/fft/t-fft_ifft_trunc.c
  function main (line 37) | int

FILE: tests/fft/t-fft_ifft_trunc_sqrt2.c
  function main (line 37) | int

FILE: tests/fft/t-mul_2expmod_2expp1.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function main (line 45) | int

FILE: tests/fft/t-mul_fft_main.c
  function main (line 38) | int

FILE: tests/fft/t-mul_mfa_trunc_sqrt2.c
  function main (line 37) | int

FILE: tests/fft/t-mul_trunc_sqrt2.c
  function main (line 37) | int

FILE: tests/fft/t-mulmod_2expp1.c
  function main (line 37) | int

FILE: tests/fft/t-normmod_2expp1.c
  function set_p (line 38) | void set_p(mpz_t p, mp_size_t n, mp_bitcnt_t w)
  function main (line 45) | int

FILE: tests/fft/t-split_combine_bits.c
  function main (line 37) | int

FILE: tests/memory.c
  type header (line 39) | struct header {
  type header (line 45) | struct header
  type header (line 49) | struct header
  type header (line 52) | struct header
  function tests_memory_valid (line 61) | int
  type header (line 70) | struct header
  type header (line 78) | struct header
  type header (line 90) | struct header
  type header (line 120) | struct header
  type header (line 123) | struct header
  function tests_free_nosize (line 133) | void
  function tests_free (line 145) | void
  function tests_memory_start (line 160) | void
  function tests_memory_end (line 166) | void

FILE: tests/misc.c
  function tests_start (line 62) | void
  function tests_end (line 72) | void
  function tests_rand_start (line 80) | void
  function tests_rand_end (line 131) | void
  function mpz_set_n (line 196) | void
  function mpz_init_set_n (line 206) | void
  function mp_size_t (line 220) | mp_size_t
  function mp_size_t (line 235) | mp_size_t
  function mp_size_t (line 250) | mp_size_t
  function mp_size_t (line 265) | mp_size_t
  function mpz_set_str_or_abort (line 279) | void
  function mpq_set_str_or_abort (line 291) | void
  function mpf_set_str_or_abort (line 303) | void
  function mpz_pow2abs_p (line 317) | int
  function mpz_erandomb (line 344) | void
  function mpz_erandomb_nonzero (line 350) | void
  function mpz_errandomb (line 358) | void
  function mpz_errandomb_nonzero (line 364) | void
  function mpz_negrandom (line 372) | void
  function mp_limb_t (line 382) | mp_limb_t
  function call_rand_algs (line 398) | void
  function tests_infinity_d (line 445) | double
  function tests_isinf (line 459) | int
  function tests_hardware_setround (line 471) | int
  function tests_hardware_getround (line 505) | int
  function tests_dbl_mant_bits (line 542) | int
  function tests_sigfpe_handler (line 586) | void
  function tests_sigfpe_done (line 592) | void

FILE: tests/misc/t-locale.c
  type lconv (line 67) | struct lconv
  type lconv (line 70) | struct lconv
  function check_input (line 93) | void
  function main (line 183) | int

FILE: tests/misc/t-printf.c
  function check_vsprintf (line 152) | void
  function check_vfprintf (line 173) | void
  function check_vsnprintf (line 211) | void
  function check_vasprintf (line 267) | void
  function check_obstack_vprintf (line 289) | void
  function check_z (line 355) | void
  function check_q (line 466) | void
  function check_f (line 573) | void
  function check_limb (line 736) | void
  function check_n (line 773) | void
  function check_misc (line 886) | void
  function main (line 958) | int

FILE: tests/misc/t-scanf.c
  function test_sscanf_eof_ok (line 75) | int
  function libc_scanf_convert (line 102) | int
  function fun_gmp_sscanf (line 172) | int
  function fun_gmp_fscanf (line 181) | int
  function fun_fscanf (line 191) | int
  function fun_sscanf (line 226) | int
  function fmt_allignore (line 248) | int
  function check_z (line 268) | void
  function check_q (line 625) | void
  function check_f (line 1009) | void
  function check_n (line 1308) | void
  function check_misc (line 1432) | void
  function main (line 1616) | int

FILE: tests/mpf/reuse.c
  function main (line 37) | int
  function main (line 95) | int
  function dump_abort (line 199) | void

FILE: tests/mpf/t-add.c
  function main (line 33) | int

FILE: tests/mpf/t-cmp_d.c
  function check_one (line 33) | void
  function check_infinity (line 58) | void
  function main (line 97) | int

FILE: tests/mpf/t-cmp_si.c
  function check_data (line 30) | void
  function main (line 128) | int

FILE: tests/mpf/t-conv.c
  function main (line 38) | int

FILE: tests/mpf/t-div.c
  function check_one (line 29) | void
  function check_rand (line 42) | void
  function check_reuse_three (line 107) | void
  function check_various (line 146) | void
  function main (line 177) | int

FILE: tests/mpf/t-dm2exp.c
  function main (line 33) | int

FILE: tests/mpf/t-eq.c
  function main (line 31) | int

FILE: tests/mpf/t-fits.c
  function main (line 51) | int

FILE: tests/mpf/t-get_d.c
  function main (line 32) | int

FILE: tests/mpf/t-get_d_2exp.c
  function check_onebit (line 29) | static void
  function check_round (line 71) | static void
  function main (line 113) | int

FILE: tests/mpf/t-get_si.c
  function check_data (line 29) | void
  function check_max (line 87) | void
  function check_limbdata (line 122) | void
  function main (line 214) | int

FILE: tests/mpf/t-get_ui.c
  function check_limbdata (line 30) | void
  function main (line 121) | int

FILE: tests/mpf/t-gsprec.c
  function check_consistency (line 28) | void
  function main (line 55) | int

FILE: tests/mpf/t-inp_str.c
  function check_data (line 39) | void
  function main (line 183) | int

FILE: tests/mpf/t-int_p.c
  function one (line 29) | void
  function all (line 42) | void
  function main (line 50) | int

FILE: tests/mpf/t-mul_ui.c
  function check_one (line 28) | void
  function check_rand (line 61) | void
  function check_various (line 120) | void
  function main (line 158) | int

FILE: tests/mpf/t-muldiv.c
  function main (line 33) | int

FILE: tests/mpf/t-set.c
  function check_reuse (line 28) | void
  function main (line 45) | int

FILE: tests/mpf/t-set_q.c
  function check_one (line 29) | void
  function check_rand (line 52) | void
  function check_various (line 94) | void
  function main (line 121) | int

FILE: tests/mpf/t-set_si.c
  function check_data (line 28) | void
  function main (line 84) | int

FILE: tests/mpf/t-set_ui.c
  function check_data (line 28) | void
  function main (line 83) | int

FILE: tests/mpf/t-sqrt.c
  function check_rand1 (line 33) | void
  function check_rand2 (line 110) | void
  function main (line 184) | int

FILE: tests/mpf/t-sqrt_ui.c
  function check_rand (line 30) | void
  function main (line 107) | int

FILE: tests/mpf/t-sub.c
  function check_rand (line 33) | void
  function check_data (line 115) | void
  function main (line 200) | int

FILE: tests/mpf/t-trunc.c
  function check_print (line 29) | void
  function check_one (line 44) | void
  function check_all (line 93) | void
  function check_various (line 111) | void
  function main (line 264) | int

FILE: tests/mpf/t-ui_div.c
  function check_one (line 29) | void
  function check_rand (line 57) | void
  function check_various (line 115) | void
  function main (line 146) | int

FILE: tests/mpn/t-addadd_n.c
  function main (line 29) | int

FILE: tests/mpn/t-addsub_n.c
  function main (line 29) | int

FILE: tests/mpn/t-aors_1.c
  type mp_limb_t (line 54) | typedef mp_limb_t (*mpn_aors_1_t)(mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
  function verify (line 58) | void
  function check_add_1 (line 84) | void
  function check_sub_1 (line 173) | void
  function mpn_aors_1_t (line 253) | mpn_aors_1_t
  function main (line 259) | int

FILE: tests/mpn/t-asmtype.c
  function main (line 50) | int

FILE: tests/mpn/t-dc_bdiv_q.c
  function check_dc_bdiv_q (line 39) | void
  function main (line 90) | int

FILE: tests/mpn/t-dc_bdiv_q_n.c
  function check_dc_bdiv_q_n (line 39) | void
  function main (line 106) | int

FILE: tests/mpn/t-dc_bdiv_qr.c
  function check_dc_bdiv_qr (line 39) | void
  function main (line 103) | int

FILE: tests/mpn/t-dc_bdiv_qr_n.c
  function check_dc_bdiv_qr_n (line 39) | void
  function main (line 100) | int

FILE: tests/mpn/t-dc_div_q.c
  function check_dc_div_q (line 39) | void
  function main (line 120) | int

FILE: tests/mpn/t-dc_div_qr.c
  function check_dc_div_qr (line 39) | void
  function main (line 130) | int

FILE: tests/mpn/t-dc_div_qr_n.c
  function check_dc_div_qr_n (line 39) | void
  function main (line 130) | int

FILE: tests/mpn/t-dc_divappr_q.c
  function check_dc_divappr_q (line 39) | void
  function main (line 116) | int

FILE: tests/mpn/t-divebyff.c
  function main (line 33) | int

FILE: tests/mpn/t-divebyfobm1.c
  function main (line 33) | int

FILE: tests/mpn/t-divrem_1.c
  function check_data (line 30) | void
  function main (line 111) | int

FILE: tests/mpn/t-fat.c
  type cpuvec_t (line 72) | struct cpuvec_t {
  type cpuvec_t (line 75) | struct cpuvec_t
  type cpuvec_t (line 80) | struct cpuvec_t
  function check_functions (line 82) | void
  function check_thresholds (line 319) | void
  function main (line 334) | int

FILE: tests/mpn/t-gcdext.c
  function check_normalisation (line 37) | void check_normalisation(const mpz_t G, const mpz_t S, const mpz_t U, co...
  function check_gcdext (line 65) | void check_gcdext(void)
  function main (line 175) | int main(void)

FILE: tests/mpn/t-get_d.c
  function check_onebit (line 40) | void
  function check_twobit (line 122) | void
  function check_underflow (line 169) | void
  function check_inf (line 214) | void
  function check_ieee_denorm (line 260) | void
  function check_ieee_overflow (line 306) | void
  function check_0x81c25113 (line 354) | void
  function check_rand (line 387) | void
  function main (line 468) | int

FILE: tests/mpn/t-hgcd.c
  type value (line 34) | struct value { int res; const char *a; const char *b; }
  type value (line 35) | struct value
  type hgcd_ref (line 48) | struct hgcd_ref
  type hgcd_ref (line 53) | struct hgcd_ref
  type hgcd_ref (line 54) | struct hgcd_ref
  type hgcd_ref (line 55) | struct hgcd_ref
  type hgcd_matrix (line 56) | struct hgcd_matrix
  type hgcd_ref (line 56) | struct hgcd_ref
  function main (line 58) | int
  function debug_mp (line 175) | static void
  function mp_size_t (line 184) | static mp_size_t
  function hgcd_ref_init (line 281) | static void
  function hgcd_ref_clear (line 293) | static void
  function sdiv_qr (line 306) | static int
  function hgcd_ref (line 319) | static int
  function mpz_mpn_equal (line 384) | static int
  function hgcd_ref_equal (line 394) | static int

FILE: tests/mpn/t-instrument.c
  function __cyg_profile_func_enter (line 60) | void
  function __cyg_profile_func_exit (line 84) | void
  function pre (line 109) | void
  function post (line 117) | void
  function check (line 135) | void
  function main (line 400) | int
  function main (line 414) | int

FILE: tests/mpn/t-inv_div_q.c
  function check_inv_div_q (line 39) | void
  function main (line 121) | int

FILE: tests/mpn/t-inv_div_qr.c
  function check_inv_div_qr (line 39) | void
  function main (line 131) | int

FILE: tests/mpn/t-inv_div_qr_n.c
  function check_inv_div_qr_n (line 39) | void
  function main (line 130) | int

FILE: tests/mpn/t-inv_divappr_q.c
  function check_inv_divappr_q (line 39) | void
  function main (line 124) | int

FILE: tests/mpn/t-inv_divappr_q_n.c
  function check_inv_divappr_q_n (line 39) | void
  function main (line 116) | int

FILE: tests/mpn/t-invert.c
  function test_invert (line 42) | int
  function check_rand (line 71) | void check_rand(void)
  function main (line 114) | int

FILE: tests/mpn/t-iord_u.c
  function check_one (line 39) | void
  function check_incr_data (line 56) | void
  function check_decr_data (line 128) | void
  function main (line 213) | int

FILE: tests/mpn/t-logic.c
  function check_one (line 43) | void
  function main (line 57) | int

FILE: tests/mpn/t-lorrshift1.c
  function main (line 30) | int

FILE: tests/mpn/t-matrix22.c
  type matrix (line 27) | struct matrix {
  function matrix_init (line 33) | static void
  function matrix_clear (line 45) | static void
  function matrix_copy (line 51) | static void
  function matrix_equal_p (line 62) | static int
  function matrix_random (line 72) | static void
  function ref_matrix22_mul (line 89) | static void
  function one_test (line 134) | static void
  function main (line 171) | int

FILE: tests/mpn/t-mp_bases.c
  function main (line 30) | int

FILE: tests/mpn/t-mullow_basecase.c
  function main (line 31) | int

FILE: tests/mpn/t-mullowhigh.c
  function main (line 31) | int

FILE: tests/mpn/t-mulmid.c
  function compare_ul (line 43) | int compare_ul(const void* a, const void* b)
  function main (line 58) | int

FILE: tests/mpn/t-mulmod_2expm1.c
  function main (line 39) | int

FILE: tests/mpn/t-mulmod_2expp1.c
  function main (line 39) | int

FILE: tests/mpn/t-neg.c
  function main (line 30) | int

FILE: tests/mpn/t-perfsqr.c
  function check_mod_2 (line 31) | void
  function check_mod (line 75) | void
  function check_pp (line 87) | void
  function main (line 106) | int

FILE: tests/mpn/t-redc_1.c
  function ref_redc_1 (line 34) | void
  function main (line 53) | int

FILE: tests/mpn/t-sb_bdiv_q.c
  function check_sb_bdiv_q (line 39) | void
  function main (line 105) | int

FILE: tests/mpn/t-sb_bdiv_qr.c
  function check_sb_bdiv_qr (line 39) | void
  function main (line 103) | int

FILE: tests/mpn/t-sb_div_q.c
  function check_sb_div_q (line 39) | void
  function main (line 120) | int

FILE: tests/mpn/t-sb_div_qr.c
  function check_sb_div_qr (line 39) | void
  function main (line 130) | int

FILE: tests/mpn/t-sb_divappr_q.c
  function check_sb_divappr_q (line 39) | void
  function main (line 116) | int

FILE: tests/mpn/t-scan.c
  function check (line 34) | void
  function check_twobits (line 72) | void
  function check_twobits_exhaustive (line 107) | void
  function check_rand (line 124) | void
  function main (line 136) | int

FILE: tests/mpn/t-sizeinbase.c
  function main (line 39) | int

FILE: tests/mpn/t-subadd_n.c
  function main (line 29) | int

FILE: tests/mpn/t-tdiv_q.c
  function check_tdiv_q (line 38) | void
  function main (line 90) | int

FILE: tests/mpn/t-tdiv_qr.c
  function check_tdiv_qr (line 39) | void
  function main (line 128) | int

FILE: tests/mpq/t-aors.c
  function check_all (line 31) | void
  function check_data (line 93) | void
  function check_rand (line 137) | void
  function main (line 174) | int

FILE: tests/mpq/t-cmp.c
  function mpz_intrandom2 (line 34) | void
  function ref_mpq_cmp (line 52) | int
  function main (line 73) | int

FILE: tests/mpq/t-cmp_si.c
  function check_data (line 34) | void
  function main (line 112) | int

FILE: tests/mpq/t-cmp_ui.c
  function mpz_intrandom2 (line 34) | void
  function ref_mpq_cmp_ui (line 52) | int
  function main (line 73) | int

FILE: tests/mpq/t-cmp_z.c
  function mpz_intrandom2 (line 29) | void
  function ref_mpq_cmp_z (line 47) | int
  function sizes_test (line 69) | void
  function main (line 117) | int

FILE: tests/mpq/t-equal.c
  function check_one (line 29) | void
  function check_all (line 48) | void
  function check_various (line 72) | void
  function main (line 136) | int

FILE: tests/mpq/t-get_d.c
  function mpz_intrandom2 (line 39) | void
  function check_monotonic (line 57) | void
  function my_ldexp (line 132) | double
  function check_random (line 169) | void
  function dump (line 205) | void
  function check_onebit (line 215) | void
  function main (line 274) | int

FILE: tests/mpq/t-get_str.c
  function check_one (line 30) | void
  function check_all (line 86) | void
  function check_data (line 99) | void
  function main (line 136) | int

FILE: tests/mpq/t-inp_str.c
  function check_data (line 39) | void
  function main (line 163) | int

FILE: tests/mpq/t-md_2exp.c
  type pair_t (line 29) | struct pair_t {
  function main (line 34) | int

FILE: tests/mpq/t-set_f.c
  function main (line 28) | int

FILE: tests/mpq/t-set_str.c
  function check_one (line 29) | void
  function check_samples (line 61) | void
  function main (line 96) | int

FILE: tests/mpz/bit.c
  function mpz_intrandom2 (line 33) | void
  function debug_mp (line 50) | void
  function check_clr_extend (line 59) | void
  function check_com_negs (line 110) | void
  function check_tstbit (line 162) | void
  function check_single (line 211) | void
  function check_random (line 277) | void
  function main (line 377) | int

FILE: tests/mpz/convert.c
  function main (line 33) | int
  function debug_mp (line 128) | void

FILE: tests/mpz/dive.c
  function main (line 29) | int

FILE: tests/mpz/dive_ui.c
  function check_random (line 30) | void
  function main (line 80) | int

FILE: tests/mpz/io.c
  function debug_mp (line 36) | void
  function main (line 42) | int

FILE: tests/mpz/logic.c
  function main (line 32) | int
  function dump_abort (line 148) | void
  function debug_mp (line 154) | void

FILE: tests/mpz/reuse.c
  function main (line 44) | int
  type mpir_ui (line 58) | typedef mpir_ui (*dsi_div_func)(mpz_ptr, mpz_srcptr, mpir_ui);
  type mpir_ui (line 59) | typedef mpir_ui (*ddsi_div_func)(mpz_ptr, mpz_ptr, mpz_srcptr, mpir_ui);
  function mpz_xinvert (line 64) | void
  function main (line 186) | int
  function dump (line 593) | void

FILE: tests/mpz/t-addsub.c
  function main (line 33) | int
  function dump_abort (line 111) | void
  function debug_mp (line 120) | void

FILE: tests/mpz/t-aorsmul.c
  function check_one_inplace (line 35) | void
  function check_one_ui_inplace (line 74) | void
  function check_all_inplace (line 113) | void
  function check_one (line 136) | void
  function check_one_ui (line 176) | void
  function check_all (line 217) | void
  function check_data_inplace_ui (line 249) | void
  function check_data (line 296) | void
  function check_random (line 377) | void
  function main (line 414) | int

FILE: tests/mpz/t-bin.c
  function try_mpz_bin_ui (line 29) | void
  function try_mpz_bin_uiui (line 50) | void
  function samples (line 71) | void
  function twos (line 184) | void
  function main (line 210) | int

FILE: tests/mpz/t-cdiv_ui.c
  function main (line 33) | int
  function dump_abort (line 148) | void
  function debug_mp (line 157) | void

FILE: tests/mpz/t-cmp.c
  function check_one (line 33) | void
  function check_all (line 62) | void
  function check_various (line 86) | void
  function main (line 174) | int

FILE: tests/mpz/t-cmp_d.c
  function check_one (line 38) | void
  function check_data (line 74) | void
  function check_onebits (line 120) | void
  function check_low_z_one (line 156) | void
  function check_one_2exp (line 206) | void
  function check_infinity (line 236) | void
  function main (line 275) | int

FILE: tests/mpz/t-cmp_si.c
  function check_data (line 30) | void
  function main (line 95) | int

FILE: tests/mpz/t-cong.c
  function check_one (line 29) | void
  function check_data (line 77) | void
  function check_random (line 131) | void
  function main (line 191) | int

FILE: tests/mpz/t-cong_2exp.c
  function check_one (line 31) | void
  function check_data (line 72) | void
  function check_random (line 110) | void
  function main (line 160) | int

FILE: tests/mpz/t-div_2exp.c
  function check_one (line 33) | void
  function check_all (line 139) | void
  function check_various (line 148) | void
  function check_random (line 188) | void
  function main (line 218) | int

FILE: tests/mpz/t-divis.c
  function check_one (line 32) | void
  function check_data (line 68) | void
  function check_random (line 117) | void
  function main (line 157) | int

FILE: tests/mpz/t-divis_2exp.c
  function check_one (line 32) | void
  function check_data (line 51) | void
  function main (line 127) | int

FILE: tests/mpz/t-export.c
  function check_data (line 30) | void
  function main (line 198) | int

FILE: tests/mpz/t-fac_ui.c
  function main (line 35) | int

FILE: tests/mpz/t-fdiv.c
  function main (line 33) | int
  function dump_abort (line 136) | void
  function debug_mp (line 145) | void

FILE: tests/mpz/t-fdiv_ui.c
  function main (line 33) | int
  function dump_abort (line 148) | void
  function debug_mp (line 157) | void

FILE: tests/mpz/t-fib_ui.c
  function check_fib_table (line 51) | void
  function main (line 74) | int

FILE: tests/mpz/t-fits.c
  function main (line 53) | int

FILE: tests/mpz/t-gcd.c
  function check_data (line 52) | void
  function make_chain_operands (line 94) | void
  function check_kolmo1 (line 136) | void
  function check_kolmo2 (line 186) | void
  function main (line 219) | int
  function debug_mp (line 296) | void
  function one_test (line 302) | void
  function gcdext_valid_p (line 398) | static int

FILE: tests/mpz/t-gcd_ui.c
  function check_ui_range (line 33) | static void
  function main (line 58) | int

FILE: tests/mpz/t-get_d.c
  function check_onebit (line 29) | void
  function main (line 63) | int

FILE: tests/mpz/t-get_d_2exp.c
  function check_onebit (line 29) | static void
  function check_round (line 81) | static void
  function check_rand (line 136) | static void
  function main (line 188) | int

FILE: tests/mpz/t-get_si.c
  function check_data (line 29) | void
  function check_max (line 70) | void
  function main (line 114) | int

FILE: tests/mpz/t-get_sx.c
  function main (line 44) | int
  function check_data (line 57) | void
  function check_max (line 98) | void
  function main (line 141) | int

FILE: tests/mpz/t-get_ux.c
  function main (line 43) | int
  function check_data (line 73) | void
  function main (line 117) | int

FILE: tests/mpz/t-hamdist.c
  function check_twobits (line 29) | void
  function check_rand (line 78) | void
  function main (line 117) | int

FILE: tests/mpz/t-import.c
  function check_data (line 30) | void
  function main (line 168) | int

FILE: tests/mpz/t-inp_str.c
  function check_data (line 39) | void
  function main (line 180) | int

FILE: tests/mpz/t-io_raw.c
  function FILE (line 43) | FILE *
  function check_in (line 62) | void
  function check_out (line 141) | void
  function check_rand (line 224) | void
  function main (line 277) | int

FILE: tests/mpz/t-jac.c
  function mpz_mod4 (line 57) | unsigned long
  function mpz_fits_ulimb_p (line 70) | int
  function mp_limb_t (line 76) | mp_limb_t
  function try_base (line 86) | void
  function try_zi_ui (line 105) | void
  function try_zi_si (line 121) | void
  function try_ui_zi (line 137) | void
  function try_si_zi (line 153) | void
  function try_zi_zi (line 172) | void
  function try_pari (line 190) | void
  function try_each (line 201) | void
  function try_pn (line 230) | void
  function try_periodic_num (line 251) | void
  function try_periodic_den (line 304) | void
  function try_2den (line 354) | void
  function try_2num (line 392) | void
  function try_all (line 434) | void
  function check_data (line 445) | void
  function check_squares_zi (line 640) | void
  function check_a_zero (line 689) | void
  function main (line 726) | int

FILE: tests/mpz/t-lcm.c
  function check_all (line 33) | void
  function check_primes (line 100) | void
  function main (line 172) | int

FILE: tests/mpz/t-likely_prime_p.c
  function check_sqrt (line 29) | void
  function check_rand (line 97) | void
  function isprime (line 136) | int
  function check_one (line 157) | void
  function check_pn (line 178) | void
  function check_small (line 187) | void
  function check_large (line 207) | void
  function main (line 250) | int

FILE: tests/mpz/t-limbs.c
  function alt_add (line 31) | static void
  function check_funcs (line 50) | static void
  function check_add (line 79) | static void
  function alt_mul (line 98) | static void
  function check_mul (line 142) | void
  function check_roinit (line 163) | static void
  function main (line 221) | int

FILE: tests/mpz/t-lucnum_ui.c
  function check_sequence (line 36) | void
  function main (line 89) | int

FILE: tests/mpz/t-mfac_uiui.c
  function main (line 37) | int

FILE: tests/mpz/t-mul.c
  function one (line 40) | void
  function main (line 70) | int
  function ref_mpz_mul (line 135) | static void
  function ref_mpn_mul (line 181) | static void
  function mul_basecase (line 235) | static void
  function dump_abort (line 291) | void
  function debug_mp (line 303) | void

FILE: tests/mpz/t-mul_i.c
  function compare_si (line 32) | void
  function compare_ui (line 46) | void
  function check_samples (line 60) | void
  function main (line 120) | int

FILE: tests/mpz/t-next_prime_candidate.c
  function main (line 45) | int

FILE: tests/mpz/t-oddeven.c
  function check_data (line 28) | void
  function main (line 81) | int

FILE: tests/mpz/t-perfpow.c
  function perfpow_ref (line 30) | int
  function main (line 62) | int

FILE: tests/mpz/t-perfsqr.c
  function check_modulo (line 42) | void
  function check_sqrt (line 88) | void
  function main (line 140) | int

FILE: tests/mpz/t-popcount.c
  function check_onebit (line 30) | void
  function check_data (line 53) | void
  function refmpz_popcount (line 95) | unsigned long
  function check_random (line 119) | void
  function main (line 161) | int

FILE: tests/mpz/t-pow.c
  function check_one (line 31) | void
  function check_base (line 79) | void
  function check_various (line 97) | void
  function check_random (line 161) | void
  function main (line 201) | int

FILE: tests/mpz/t-powm.c
  function main (line 32) | int
  function debug_mp (line 141) | void

FILE: tests/mpz/t-powm_ui.c
  function main (line 33) | int
  function dump_abort (line 149) | void
  function debug_mp (line 158) | void

FILE: tests/mpz/t-pprime_p.c
  function isprime (line 38) | int
  function check_one (line 59) | void
  function check_pn (line 80) | void
  function check_small (line 89) | void
  function main (line 106) | int

FILE: tests/mpz/t-primorial_ui.c
  function main (line 36) | int
  function isprime (line 81) | static int

FILE: tests/mpz/t-root.c
  function mpz_add_si (line 32) | void
  function main (line 44) | int
  function debug_mp (line 294) | void

FILE: tests/mpz/t-scan.c
  function refmpz_scan (line 29) | unsigned long
  function refmpz_scan0 (line 45) | unsigned long
  function refmpz_scan1 (line 51) | unsigned long
  function check_ref (line 58) | void
  function main (line 128) | int

FILE: tests/mpz/t-set_d.c
  function check_data (line 29) | void
  function check_2n_plus_1 (line 83) | void
  function main (line 123) | int

FILE: tests/mpz/t-set_f.c
  function check_one (line 29) | void
  function check_various (line 93) | void
  function main (line 118) | int

FILE: tests/mpz/t-set_si.c
  function check_data (line 29) | void
  function main (line 94) | int

FILE: tests/mpz/t-set_str.c
  function check_one (line 29) | void
  function check_samples (line 61) | void
  function main (line 88) | int

FILE: tests/mpz/t-set_sx.c
  function main (line 43) | int
  function check_data (line 56) | void
  function main (line 115) | int

FILE: tests/mpz/t-set_ux.c
  function main (line 43) | int
  function check_data (line 73) | void
  function main (line 149) | int

FILE: tests/mpz/t-sizeinbase.c
  function mpz_fake_bits (line 36) | void
  function check_sample (line 60) | void
  function main (line 83) | int

FILE: tests/mpz/t-sqrtrem.c
  function main (line 33) | int
  function dump_abort (line 103) | void
  function debug_mp (line 113) | void

FILE: tests/mpz/t-tdiv.c
  function special_tests (line 33) | void special_tests(void)
  function main (line 76) | int
  function dump_abort (line 182) | void
  function debug_mp (line 192) | void

FILE: tests/mpz/t-tdiv_ui.c
  function main (line 33) | int
  function dump_abort (line 148) | void
  function debug_mp (line 157) | void

FILE: tests/mpz/t-trial_division.c
  function trial_divref (line 31) | unsigned long
  function main (line 44) | int

FILE: tests/rand/findlc.c
  function sh_status (line 39) | static void
  function mpz_true_random (line 66) | void
  function main (line 96) | int

FILE: tests/rand/gen.c
  function main (line 59) | int main (argc, argv)

FILE: tests/rand/spect.c
  function main (line 40) | int
  function debug_foo (line 132) | void

FILE: tests/rand/stat.c
  function print_ks_results (line 57) | static void
  function print_x2_table (line 73) | static void
  function Pks (line 94) | static void
  function f_freq (line 111) | static void
  function z_freq (line 187) | static void
  function main (line 213) | int

FILE: tests/rand/statlib.c
  function ks (line 87) | void
  function ks_table (line 152) | void
  function x2_table (line 198) | void
  function P (line 224) | static void
  function mpf_freqt (line 232) | void
  function x2 (line 248) | void
  function Pzf (line 291) | static void
  function mpz_freqt (line 313) | unsigned long int
  function foo_debug (line 366) | void
  function merit (line 381) | void
  function merit_u (line 433) | double
  function f_floor (line 447) | void
  function vz_dot (line 465) | void
  function spectral_test (line 481) | void

FILE: tests/rand/t-iset.c
  function check_one (line 30) | void
  function main (line 61) | int

FILE: tests/rand/t-lc2exp.c
  function check_zero (line 30) | void
  function check_nega (line 60) | void
  function check_bigc (line 88) | void
  function check_bigc1 (line 120) | void
  function check_bigm (line 153) | void
  function check_bigs (line 169) | void
  function main (line 198) | int

FILE: tests/rand/t-mt.c
  function chk_default_seed (line 36) | int
  function main (line 70) | int

FILE: tests/rand/t-rand.c
  type rt (line 84) | struct rt
  type rt (line 90) | struct rt
  type rt (line 112) | struct rt
  type rt (line 156) | struct rt

FILE: tests/rand/t-urbui.c
  function check_one (line 31) | void
  function main (line 58) | int

FILE: tests/rand/t-urmui.c
  function check_one (line 31) | void
  function main (line 70) | int

FILE: tests/rand/t-urndmm.c
  function check_params (line 34) | int
  function main (line 144) | int

FILE: tests/rand/zdiv_round.c
  function zdiv_round (line 26) | void

FILE: tests/refmpf.c
  function refmpf_add (line 30) | void
  function refmpf_add_ulp (line 116) | void
  function refmpf_fill (line 147) | void
  function refmpf_normalize (line 158) | void
  function refmpf_set_overlap (line 178) | unsigned long
  function refmpf_set_prec_limbs (line 195) | void
  function refmpf_sub (line 202) | void
  function refmpf_validate (line 304) | int
  function refmpf_validate_division (line 382) | int

FILE: tests/refmpn.c
  function byte_overlap_p (line 75) | int
  function refmpn_overlap_p (line 99) | int
  function refmpn_overlap_low_to_high_p (line 107) | int
  function refmpn_overlap_high_to_low_p (line 114) | int
  function refmpn_overlap_fullonly_p (line 121) | int
  function refmpn_overlap_fullonly_two_p (line 126) | int
  function mp_ptr (line 135) | mp_ptr
  function refmpn_free_limbs (line 149) | void
  function mp_ptr (line 155) | mp_ptr
  function mp_ptr (line 165) | mp_ptr
  function refmpn_fill (line 172) | void
  function refmpn_zero (line 181) | void
  function refmpn_store (line 187) | void
  function refmpn_zero_extend (line 193) | void
  function refmpn_zero_p (line 200) | int
  function mp_size_t (line 210) | mp_size_t
  function mp_limb_t (line 220) | mp_limb_t
  function mp_limb_t (line 235) | mp_limb_t
  function refmpn_chars_per_limb (line 248) | int
  function mp_limb_t (line 274) | mp_limb_t
  function refmpn_setbit (line 289) | void
  function refmpn_clrbit (line 295) | void
  function refmpn_tstbit (line 304) | int
  function refmpn_scan0 (line 310) | unsigned long
  function refmpn_scan1 (line 318) | unsigned long
  function refmpn_copy (line 326) | void
  function refmpn_copyi (line 333) | void
  function refmpn_copyd (line 345) | void
  function refmpn_copy_extend (line 359) | void
  function refmpn_com_n (line 376) | void
  function refmpn_cmp (line 389) | int
  function refmpn_cmp_allowzero (line 406) | int
  function refmpn_cmp_twosizes (line 415) | int
  function refmpn_equal_anynail (line 436) | int
  function refmpn_and_n (line 462) | void
  function refmpn_andn_n (line 467) | void
  function refmpn_nand_n (line 472) | void
  function refmpn_ior_n (line 477) | void
  function refmpn_iorn_n (line 482) | void
  function refmpn_nior_n (line 487) | void
  function refmpn_xor_n (line 492) | void
  function refmpn_xnor_n (line 497) | void
  function refmpn_sub_ddmmss (line 505) | void
  function mp_limb_t (line 515) | mp_limb_t
  function mp_limb_t (line 535) | mp_limb_t
  function mp_limb_t (line 555) | mp_limb_t
  function mp_limb_t (line 569) | mp_limb_t
  function mp_limb_t (line 597) | mp_limb_t
  function mp_limb_t (line 602) | mp_limb_t
  function mp_limb_t (line 623) | mp_limb_t
  function mp_limb_t (line 629) | mp_limb_t
  function mp_limb_t (line 637) | mp_limb_t
  function mp_limb_t (line 643) | mp_limb_t
  function mp_limb_t (line 649) | mp_limb_t
  function refmpn_addsub_n (line 660) | int
  function mp_limb_t (line 671) | mp_limb_t
  function mp_limb_t (line 682) | mp_limb_t
  function mp_limb_t (line 700) | mp_limb_t
  function mp_limb_t (line 718) | mp_limb_t
  function mp_limb_t (line 722) | mp_limb_t
  function mp_limb_t (line 726) | mp_limb_t
  function mp_limb_t (line 746) | mp_limb_t
  function mp_limb_t (line 766) | mp_limb_t
  function mp_limb_t (line 785) | mp_limb_t
  function mp_limb_t (line 804) | mp_limb_t
  function mp_limb_t (line 819) | mp_limb_t
  function mp_limb_t (line 835) | mp_limb_t refmpn_add_err1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_p...
  function mp_limb_t (line 856) | mp_limb_t refmpn_sub_err1_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_p...
  function mp_limb_t (line 878) | mp_limb_t refmpn_add_err2_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_p...
  function mp_limb_t (line 902) | mp_limb_t refmpn_sub_err2_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_p...
  function mp_limb_t (line 927) | mp_limb_t
  function mp_limb_t (line 953) | mp_limb_t
  function mp_limb_t (line 960) | mp_limb_t
  function mp_limb_t (line 979) | mp_limb_t
  function mp_limb_t (line 1002) | mp_limb_t
  function mp_limb_t (line 1008) | mp_limb_t
  function mp_limb_t (line 1033) | mp_limb_t
  function mp_limb_t (line 1040) | mp_limb_t
  function mp_limb_t (line 1078) | mp_limb_t
  function mp_limb_t (line 1084) | mp_limb_t
  function mp_limb_t (line 1092) | mp_limb_t
  function mp_limb_t (line 1097) | mp_limb_t
  function mp_limb_t (line 1104) | mp_limb_t
  function mp_limb_t (line 1130) | mp_limb_t
  function mp_limb_t (line 1135) | mp_limb_t
  function mp_limb_t (line 1140) | mp_limb_t
  function mp_limb_t (line 1145) | mp_limb_t
  function mp_limb_t (line 1150) | mp_limb_t
  function mp_limb_t (line 1155) | mp_limb_t
  function mp_limb_t (line 1160) | mp_limb_t
  function mp_limb_t (line 1166) | mp_limb_t
  function mp_limb_t (line 1191) | mp_limb_t
  function mp_limb_t (line 1216) | mp_limb_t
  function mp_limb_t (line 1226) | mp_limb_t
  function mp_limb_t (line 1238) | mp_limb_t
  function mp_limb_t (line 1249) | mp_limb_t
  function mp_limb_t (line 1269) | mp_limb_t
  function mp_limb_t (line 1289) | mp_limb_t
  function refmpn_not (line 1304) | void
  function mp_limb_t (line 1310) | mp_limb_t
  function mp_limb_t (line 1316) | mp_limb_t
  function mp_limb_t (line 1322) | mp_limb_t
  function mp_limb_t (line 1328) | mp_limb_t
  function mp_limb_t (line 1334) | mp_limb_t
  function mp_limb_t (line 1340) | mp_limb_t
  function mp_limb_t (line 1347) | mp_limb_t
  function mp_limb_t (line 1360) | mp_limb_t
  function mp_limb_t (line 1375) | mp_limb_t
  function mp_limb_t (line 1381) | mp_limb_t
  function mp_limb_t (line 1392) | mp_limb_t
  function mp_limb_t (line 1422) | mp_limb_t
  function mp_limb_t (line 1430) | static mp_limb_t
  function mp_limb_t (line 1446) | mp_limb_t
  function mp_limb_t (line 1487) | mp_limb_t
  function mp_limb_t (line 1493) | mp_limb_t
  function mp_limb_t (line 1499) | mp_limb_t refmpn_divrem_hensel_qr_1(mp_ptr qp, mp_srcptr xp, mp_size_t n...
  function mp_limb_t (line 1522) | mp_limb_t
  function mp_limb_t (line 1532) | mp_limb_t
  function mp_limb_t (line 1545) | mp_limb_t
  function mp_limb_t (line 1555) | mp_limb_t
  function mp_limb_t (line 1565) | mp_limb_t
  function mp_limb_t (line 1571) | mp_limb_t
  function mp_limb_t (line 1577) | mp_limb_t
  function mp_limb_t (line 1588) | mp_limb_t
  function mp_limb_t (line 1596) | mp_limb_t
  function mp_limb_t (line 1613) | mp_limb_t
  function mp_limb_t (line 1620) | mp_limb_t
  function mp_limb_t (line 1653) | mp_limb_t
  function mp_limb_t (line 1677) | mp_limb_t
  function mp_limb_t (line 1694) | mp_limb_t
  function mp_limb_t (line 1723) | mp_limb_t
  function mp_limb_t (line 1750) | mp_limb_t
  function refmpn_mul_basecase (line 1758) | void
  function refmpn_mul_n (line 1777) | void
  function refmpn_sqr (line 1783) | void
  function refmpn_mul_any (line 1790) | void
  function refmpn_mulmid_basecase (line 1825) | void
  function refmpn_mulmid (line 1885) | void
  function refmpn_mulmid_n (line 1893) | void
  function mp_limb_t (line 1901) | mp_limb_t
  function refmpn_count_leading_zeros (line 1942) | unsigned
  function refmpn_count_trailing_zeros (line 1958) | unsigned
  function mp_size_t (line 1976) | mp_size_t
  function mp_limb_t (line 1999) | mp_limb_t
  function ref_popc_limb (line 2040) | unsigned long
  function refmpn_popcount (line 2055) | unsigned long
  function refmpn_hamdist (line 2069) | unsigned long
  function refmpn_mod2 (line 2091) | void
  function mp_limb_t (line 2130) | mp_limb_t
  function refmpn_tdiv_qr (line 2206) | void
  function refmpn_tdiv_q (line 2240) | void
  function refmpn_get_str (line 2272) | size_t
  function mp_limb_t (line 2325) | mp_limb_t
  function mp_limb_t (line 2355) | mp_limb_t
  function mp_limb_t (line 2362) | mp_limb_t
  function refmpn_random (line 2369) | void
  function refmpn_random2 (line 2383) | void
  function mp_size_t (line 2427) | mp_size_t
  function refmpn_redc_1 (line 2511) | void

FILE: tests/refmpq.c
  function refmpq_add (line 27) | void
  function refmpq_sub (line 36) | void

FILE: tests/refmpz.c
  function refmpz_combit (line 38) | void
  function refmpz_hamdist (line 48) | unsigned long
  function refmpz_kronecker (line 95) | int
  function refmpz_jacobi (line 186) | int
  function refmpz_legendre (line 196) | int
  function refmpz_kronecker_ui (line 203) | int
  function refmpz_kronecker_si (line 214) | int
  function refmpz_ui_kronecker (line 225) | int
  function refmpz_si_kronecker (line 236) | int
  function refmpz_pow_ui (line 248) | void

FILE: tests/spinner.c
  function spinner_signal (line 57) | void
  function spinner_init (line 81) | void
  function spinner (line 104) | void

FILE: tests/t-bswap.c
  function main (line 30) | int

FILE: tests/t-constants.c
  function main (line 222) | int

FILE: tests/t-count_zeros.c
  function check_clz (line 29) | void
  function check_ctz (line 44) | void
  function check_various (line 59) | void
  function main (line 79) | int

FILE: tests/t-gmpmax.c
  function main (line 32) | int

FILE: tests/t-hightomask.c
  function main (line 35) | int

FILE: tests/t-modlinv.c
  function one (line 31) | void
  function some (line 48) | void
  function all (line 56) | void
  function main (line 69) | int

FILE: tests/t-parity.c
  function check_one (line 28) | void
  function check_various (line 43) | void
  function main (line 59) | int

FILE: tests/t-popc.c
  function main (line 30) | int

FILE: tests/t-sub.c
  function check_data (line 31) | void
  function check_random (line 73) | void
  function main (line 110) | int

FILE: tests/tests.h
  function class (line 375) | class
  function class (line 387) | class

FILE: tests/trace.c
  function mp_trace_start (line 47) | void
  function mpq_trace (line 63) | void
  function mpz_trace (line 79) | void
  function mpf_trace (line 105) | void
  function mpz_tracen (line 122) | void
  function mpn_trace (line 135) | void
  function mp_limb_trace (line 152) | void
  function mpn_tracen (line 168) | void
  function mpn_tracea (line 188) | void
  function mpn_trace_file (line 204) | void
  function mpn_tracea_file (line 246) | void
  function byte_trace (line 267) | void
  function byte_tracen (line 288) | void
  function d_trace (line 300) | void

FILE: tests/x86_64check.c
  function calling_conventions_check (line 66) | int

FILE: tests/x86check.c
  function calling_conventions_check (line 62) | int

FILE: tune/common.c
  function pentium_wbinvd (line 57) | void
  function double_cmp_ptr (line 100) | int
  function speed_measure (line 125) | double
  function mpn_cache_fill (line 237) | void
  function mpn_cache_fill_write (line 250) | void
  function speed_operand_src (line 268) | void
  function speed_operand_dst (line 282) | void
  function speed_cache_fill (line 296) | void
  function speed_option_set (line 354) | void
  function speed_MPN_COPY (line 422) | double
  function speed_MPN_COPY_INCR (line 427) | double
  function speed_MPN_COPY_DECR (line 432) | double
  function speed_mpn_copyi (line 438) | double
  function speed_mpn_copyd (line 445) | double
  function speed_memcpy (line 451) | double
  function speed_mpn_com_n (line 456) | double
  function speed_mpn_add_err1_n (line 462) | double
  function speed_mpn_sub_err1_n (line 468) | double
  function speed_mpn_addmul_1 (line 474) | double
  function speed_mpn_submul_1 (line 479) | double
  function speed_mpn_addmul_2 (line 486) | double
  function speed_mpn_addmul_3 (line 493) | double
  function speed_mpn_addmul_4 (line 500) | double
  function speed_mpn_addmul_5 (line 507) | double
  function speed_mpn_addmul_6 (line 514) | double
  function speed_mpn_addmul_7 (line 521) | double
  function speed_mpn_addmul_8 (line 528) | double
  function speed_mpn_mul_1 (line 535) | double
  function speed_mpn_mul_1_inplace (line 540) | double
  function speed_mpn_mul_2 (line 547) | double
  function speed_mpn_karaadd (line 555) | double
  function speed_mpn_karasub (line 563) | double
  function speed_mpn_lshift (line 570) | double
  function speed_mpn_rshift (line 575) | double
  function speed_mpn_lshiftc (line 582) | double
  function speed_mpn_not (line 589) | double
  function speed_mpn_double (line 594) | double
  function speed_mpn_half (line 599) | double
  function speed_mpn_lshift1 (line 604) | double
  function speed_mpn_rshift1 (line 609) | double
  function speed_mpn_lshift2 (line 615) | double
  function speed_mpn_rshift2 (line 620) | double
  function speed_mpn_divrem_euclidean_qr_1 (line 627) | double
  function speed_mpn_divrem_hensel_qr_1 (line 633) | double
  function speed_mpn_divrem_hensel_qr_1_1 (line 638) | double
  function speed_mpn_divrem_hensel_qr_1_2 (line 643) | double
  function speed_mpn_divrem_hensel_rsh_qr_1 (line 649) | double
  function speed_mpn_rsh_divrem_hensel_qr_1 (line 655) | double
  function speed_mpn_rsh_divrem_hensel_qr_1_1 (line 661) | double
  function speed_mpn_rsh_divrem_hensel_qr_1_2 (line 667) | double
  function speed_mpn_divrem_euclidean_qr_2 (line 673) | double
  function speed_mpn_divrem_euclidean_r_1 (line 679) | double
  function speed_mpn_divrem_hensel_r_1 (line 685) | double
  function speed_mpn_divrem_1 (line 694) | double
  function speed_mpn_divrem_1f (line 700) | double
  function speed_mpn_divrem_1c (line 706) | double
  function speed_mpn_divrem_1cf (line 711) | double
  function speed_mpn_divrem_1_div (line 718) | double
  function speed_mpn_divrem_1f_div (line 723) | double
  function speed_mpn_divrem_1_inv (line 728) | double
  function speed_mpn_divrem_1f_inv (line 733) | double
  function speed_mpn_mod_1_div (line 738) | double
  function speed_mpn_mod_1_inv (line 743) | double
  function speed_mpn_preinv_divrem_1 (line 749) | double
  function speed_mpn_preinv_divrem_1f (line 754) | double
  function speed_mpn_mod_34lsub1 (line 761) | double
  function speed_mpn_divrem_2 (line 768) | double
  function speed_mpn_divrem_2_div (line 773) | double
  function speed_mpn_divrem_2_inv (line 778) | double
  function speed_mpn_mod_1 (line 784) | double
  function speed_mpn_mod_1_1 (line 790) | double
  function speed_mpn_mod_1_2 (line 796) | double
  function speed_mpn_mod_1_3 (line 802) | double
  function speed_mpn_mod_1_k (line 808) | double
  function speed_mpn_mod_1c (line 815) | double
  function speed_mpn_preinv_mod_1 (line 821) | double
  function speed_mpn_divexact_1 (line 827) | double
  function speed_mpn_divexact_by3 (line 833) | double
  function speed_mpn_divexact_byff (line 839) | double
  function speed_mpn_divexact_byfobm1 (line 845) | double
  function speed_mpn_modexact_1_odd (line 852) | double
  function speed_mpn_modexact_1c_odd (line 859) | double
  function speed_mpn_dc_tdiv_qr (line 866) | double
  function speed_mpn_dc_div_qr_n (line 871) | double
  function speed_mpn_sb_divappr_q (line 876) | double
  function speed_mpn_sb_div_qr (line 881) | double
  function speed_mpn_dc_divappr_q (line 886) | double
  function speed_mpn_inv_div_qr (line 891) | double
  function speed_mpn_inv_divappr_q (line 896) | double
  function speed_mpn_tdiv_q (line 901) | double
  function speed_mpn_tdiv_q1 (line 906) | double
  function speed_mpn_tdiv_q2 (line 911) | double
  function speed_mpn_dc_bdiv_qr_n (line 916) | double
  function speed_mpn_dc_bdiv_q (line 921) | double
  function speed_mpz_mod (line 927) | double
  function speed_mpn_popcount (line 934) | double
  function speed_mpn_hamdist (line 939) | double
  function speed_mpn_add_n (line 946) | double
  function speed_mpn_sub_n (line 951) | double
  function speed_mpn_addadd_n (line 957) | double
  function speed_mpn_subadd_n (line 963) | double
  function speed_mpn_addsub_n (line 969) | double
  function speed_mpn_sumdiff_n (line 976) | double
  function speed_mpn_nsumdiff_n (line 984) | double
  function speed_mpn_addlsh1_n (line 992) | double
  function speed_mpn_sublsh1_n (line 999) | double
  function speed_mpn_addlsh_n (line 1006) | double
  function speed_mpn_sublsh_n (line 1013) | double
  function speed_mpn_inclsh_n (line 1020) | double
  function speed_mpn_declsh_n (line 1027) | double
  function speed_mpn_rsh1add_n (line 1034) | double
  function speed_mpn_rsh1sub_n (line 1041) | double
  function speed_mpn_and_n (line 1050) | double
  function speed_mpn_andn_n (line 1055) | double
  function speed_mpn_nand_n (line 1060) | double
  function speed_mpn_ior_n (line 1065) | double
  function speed_mpn_iorn_n (line 1070) | double
  function speed_mpn_nior_n (line 1075) | double
  f
Copy disabled (too large) Download .json
Condensed preview — 2160 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,745K chars).
[
  {
    "path": ".appveyor_msys_build.sh",
    "chars": 532,
    "preview": "export PATH=/c/msys64/mingw$ABI/bin:/c/projects/mpir/bin/:$PATH\ncd /c/projects/mpir\necho && echo build: ./autogen.sh\n./a"
  },
  {
    "path": ".gdbinit",
    "chars": 1022,
    "preview": "# Copyright 1999 Free Software Foundation, Inc.\n#\n# This file is part of the GNU MP Library.\n#\n# The GNU MP Library is f"
  },
  {
    "path": ".gitattributes",
    "chars": 483,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs     diff=csharp\n*.sln"
  },
  {
    "path": ".gitignore",
    "chars": 10493,
    "preview": "#################\n## Project files\n#################\n\n/build.vc/output_params.bat\n/build.vc*/test-config.props\n\n\n#######"
  },
  {
    "path": ".travis.yml",
    "chars": 567,
    "preview": "language: c\nsudo: false\nos:\n  - osx\n  - linux\ncompiler:\n  - gcc\n  - clang\naddons:\n  apt:\n    packages:\n      - yasm\n    "
  },
  {
    "path": "AUTHORS",
    "chars": 4977,
    "preview": "Authors of GNU MP (in chronological order of initial contribution)\n\nTorbjörn Granlund\tMain author\n\nJohn Amanatides\t\tOrig"
  },
  {
    "path": "COPYING",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "COPYING.LIB",
    "chars": 7637,
    "preview": "\t\t   GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software"
  },
  {
    "path": "ChangeLog",
    "chars": 702433,
    "preview": "Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,\n\t  2002, 2003, 2004, 2005, 2006 Free Softwar"
  },
  {
    "path": "INSTALL",
    "chars": 15752,
    "preview": "Installation Instructions\n*************************\n\nCopyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundat"
  },
  {
    "path": "INSTALL.autoconf",
    "chars": 9240,
    "preview": "Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software\nFoundation, Inc.\n\n   This file is free documentatio"
  },
  {
    "path": "Makefile.am",
    "chars": 16145,
    "preview": "# Process this file with automake to generate Makefile.in\n\n\n# Copyright 1991, 1993, 1994, 1996, 1997, 1999, 2000, 2001, "
  },
  {
    "path": "NEWS",
    "chars": 31539,
    "preview": "Copyright 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software\nFoundation, Inc.\n\nCopyright 2009, 2010 Will"
  },
  {
    "path": "README",
    "chars": 3877,
    "preview": "Copyright 1991, 1996, 1999, 2000 Free Software Foundation, Inc.\n\nCopyright 2008, 2009 William Hart\n\nThis file is part of"
  },
  {
    "path": "acinclude.m4",
    "chars": 112266,
    "preview": "dnl  GMP specific autoconf macros\n\n\ndnl  Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software\ndnl  Foundatio"
  },
  {
    "path": "appveyor.yml",
    "chars": 1149,
    "preview": "version: 1.0.{build}\nbuild:\n  verbosity: minimal\n  \nenvironment:\n  YASM_BINARY: yasm-1.3.0-win64.exe\n  YASM_DOWNLOAD: ht"
  },
  {
    "path": "assert.c",
    "chars": 1588,
    "preview": "/* GMP assertion failure handler.\n\n   THE FUNCTIONS IN THIS FILE ARE FOR INTERNAL USE ONLY.  THEY'RE ALMOST\n   CERTAIN T"
  },
  {
    "path": "autogen.sh",
    "chars": 482,
    "preview": "#! /bin/sh\n\n# Save FSF scripts wrappers.\nmv -f config.guess configmpir.guess\nmv -f config.sub configmpir.sub\n# FSF scrip"
  },
  {
    "path": "cl_int.bat",
    "chars": 139,
    "preview": "@echo off\n::  can use x86 or amd64 as param for the below batch file\ncall \"%VS90COMNTOOLS%\\..\\..\\VC\\vcvarsall.bat\" >nul\n"
  },
  {
    "path": "clwrap",
    "chars": 523,
    "preview": "#!/bin/sh\n\nclopt=\"/nologo\"\nprev=\"none\"\n\nwhile test $# != 0 ; do\n\tcase $1 in\n\t-D*)\n\t\tloc=`echo $1 | cut -b 3-`\n\t\tclopt=\"$"
  },
  {
    "path": "compat.c",
    "chars": 1791,
    "preview": "/* Old function entrypoints retained for binary compatibility.\n\nCopyright 2000, 2001 Free Software Foundation, Inc.\n\nThi"
  },
  {
    "path": "config.guess",
    "chars": 19640,
    "preview": "#! /bin/sh\n#\n# GMP config.guess wrapper.\n\n\n# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation"
  },
  {
    "path": "config.sub",
    "chars": 4132,
    "preview": "#! /bin/sh\n#\n# GMP config.sub wrapper.\n\n\n# Copyright 2000, 2001, 2002, 2003, 2006 Free Software Foundation, Inc.\n#\n# Thi"
  },
  {
    "path": "configfsf.guess",
    "chars": 43424,
    "preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n#   Copyright 1992-2015 Free Software Foundation, Inc.\n\ntimestamp"
  },
  {
    "path": "configfsf.sub",
    "chars": 36182,
    "preview": "#! /bin/sh\n# Configuration validation subroutine script.\n#   Copyright 1992-2015 Free Software Foundation, Inc.\n\ntimesta"
  },
  {
    "path": "configure.ac",
    "chars": 115365,
    "preview": "dnl  Process this file with autoconf to produce a configure script.\n\ndefine(GMP_COPYRIGHT,[[\n\nCopyright 1996, 1997, 1998"
  },
  {
    "path": "configure.yasm",
    "chars": 12,
    "preview": "./configure\n"
  },
  {
    "path": "cpuid.c",
    "chars": 8573,
    "preview": "/*\n\nCopyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006\nFree Software Foundation, Inc.\n\nCopyright"
  },
  {
    "path": "cxx/Makefile.am",
    "chars": 1172,
    "preview": "## Process this file with automake to generate Makefile.in\n\n# Copyright 2001, 2002, 2003 Free Software Foundation, Inc.\n"
  },
  {
    "path": "cxx/dummy.cc",
    "chars": 982,
    "preview": "/* Dummy file to make automake treat libmpirxx.la as C++.\n\nCopyright 2002 Free Software Foundation, Inc.\n\nThis file is p"
  },
  {
    "path": "cxx/isfuns.cc",
    "chars": 2328,
    "preview": "/* Auxiliary functions for C++-style input of GMP types.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is pa"
  },
  {
    "path": "cxx/ismpf.cc",
    "chars": 3646,
    "preview": "/* operator>> -- C++-style input of mpf_t.\n\nCopyright 2001, 2003 Free Software Foundation, Inc.\n\nCopyright 2009 William "
  },
  {
    "path": "cxx/ismpq.cc",
    "chars": 1500,
    "preview": "/* operator>> -- C++-style input of mpq_t.\n\nCopyright 2003 Free Software Foundation, Inc.\n\nThis file is part of the GNU "
  },
  {
    "path": "cxx/ismpz.cc",
    "chars": 1679,
    "preview": "/* operator>> -- C++-style input of mpz_t.\n\nCopyright 2001, 2003 Free Software Foundation, Inc.\n\nCopyright 2009 William "
  },
  {
    "path": "cxx/ismpznw.cc",
    "chars": 1915,
    "preview": "/* __gmpz_operator_in_nowhite -- C++-style input of mpz_t, no whitespace skip.\n\nCopyright 2001, 2003 Free Software Found"
  },
  {
    "path": "cxx/osdoprnti.cc",
    "chars": 1958,
    "preview": "/* __gmp_doprnt_integer_ios -- integer formatted output to an ostream.\n\n   THE FUNCTIONS IN THIS FILE ARE FOR INTERNAL U"
  },
  {
    "path": "cxx/osfuns.cc",
    "chars": 3661,
    "preview": "/* Support for operator<< routines.\n\n   THE FUNCTIONS IN THIS FILE ARE FOR INTERNAL USE ONLY.  THEY'RE ALMOST\n   CERTAIN"
  },
  {
    "path": "cxx/osmpf.cc",
    "chars": 1965,
    "preview": "/* operator<< -- mpf formatted output to an ostream.\n\nCopyright 2001, 2002 Free Software Foundation, Inc.\n\nCopyright 200"
  },
  {
    "path": "cxx/osmpq.cc",
    "chars": 1319,
    "preview": "/* operator<< -- mpq formatted output to an ostream.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is part o"
  },
  {
    "path": "cxx/osmpz.cc",
    "chars": 1319,
    "preview": "/* operator<< -- mpz formatted output to an ostream.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is part o"
  },
  {
    "path": "devel/configfsf.sub.diff",
    "chars": 681,
    "preview": "\n\nWe can use the standard fsf config.sub , but we need change this (~line 1200)\n\n\n\tpmac | pmac-mpw)\n\t\tbasic_machine=powe"
  },
  {
    "path": "devel/gen-bases.c",
    "chars": 4852,
    "preview": "/* Generate mp_bases data.\n\nCopyright 1991, 1993, 1994, 1996, 2000, 2002, 2004 Free Software Foundation,\nInc.\n\nThis file"
  },
  {
    "path": "devel/gen-fac_ui.c",
    "chars": 4106,
    "preview": "/* Generate mpz_fac_ui data.\n\nCopyright 2002 Free Software Foundation, Inc.\n\nThis file is part of the GNU MP Library.\n\nT"
  },
  {
    "path": "devel/gen-fib.c",
    "chars": 3616,
    "preview": "/* Generate Fibonacci table data.\n\nCopyright 2001, 2002, 2004 Free Software Foundation, Inc.\n\nThis file is part of the G"
  },
  {
    "path": "devel/gen-psqr.c",
    "chars": 19150,
    "preview": "/* Generate perfect square testing data.\n\nCopyright 2002, 2003, 2004 Free Software Foundation, Inc.\n\nThis file is part o"
  },
  {
    "path": "devel/regen",
    "chars": 6011,
    "preview": "#!/bin/bash\n# run this from the devel directory\n\n# mpz/Makefile.am\ncd ../mpz\nsrcs=$(ls *.h *.c 2>/dev/null)\nsrcs=$(echo "
  },
  {
    "path": "devel/setversion",
    "chars": 2495,
    "preview": "#!/bin/bash\n\n# run this script from the devel directory\n\n# set version number\nVERSION=3\nVERSION_MINOR=0\nVERSION_PATCHLEV"
  },
  {
    "path": "devel/yasm.diff",
    "chars": 1666,
    "preview": "###\n###\tTo upgrade mpir's yasm.\n###\n###\tchange to the mpir directory\n###\n###\tsvn del yasm\n###\tsvn commit -m \"delete old "
  },
  {
    "path": "doc/Makefile.am",
    "chars": 1014,
    "preview": "## Process this file with automake to generate Makefile.in\n\n\n# Copyright 2003 Free Software Foundation, Inc.\n#\n# This fi"
  },
  {
    "path": "doc/devel/Configure.txt",
    "chars": 7988,
    "preview": "Copyright 2008 William Hart\n\nThis file is part of the MPIR Library.\n\nThe MPIR library is free software; you can redistri"
  },
  {
    "path": "doc/devel/FILES.txt",
    "chars": 5164,
    "preview": "Copyright 2008, William Hart\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can redistr"
  },
  {
    "path": "doc/devel/configuration",
    "chars": 15342,
    "preview": "/* doc/configuration (in Emacs -*-outline-*- format). */\n\nCopyright 2000, 2001, 2002, 2003, 2004 Free Software Foundatio"
  },
  {
    "path": "doc/devel/gmp-h.txt",
    "chars": 1965,
    "preview": "Copyright 2008, William Hart\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can redistr"
  },
  {
    "path": "doc/devel/gmp-impl-h.txt",
    "chars": 13541,
    "preview": "Copyright 2008, William Hart\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can redistr"
  },
  {
    "path": "doc/devel/mpn_functions.txt",
    "chars": 3775,
    "preview": "New assembly mpn functions since MPIR 0.9 = GMP 4.2.1 + Gaudry + Martin patches\n========================================"
  },
  {
    "path": "doc/devel/projects.html",
    "chars": 33429,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n<head>\n  <title>GMP Development Projects</title>\n"
  },
  {
    "path": "doc/devel/tasks.html",
    "chars": 53149,
    "preview": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n<head>\n  <title>GMP Itemized Development Tasks</t"
  },
  {
    "path": "doc/fdl.texi",
    "chars": 23565,
    "preview": "@c The GNU Free Documentation License.\n@center Version 1.3, 3 November 2008\n\n@c This file is intended to be included wit"
  },
  {
    "path": "doc/isa_abi_headache",
    "chars": 4825,
    "preview": "Copyright 2000 Free Software Foundation, Inc.\nCopyright 2008 William Hart\n\nThis file is part of the MPIR Library.\n\nThe M"
  },
  {
    "path": "doc/mdate-sh",
    "chars": 6102,
    "preview": "#!/bin/sh\n# Get modification time of a file or directory and pretty-print it.\n\nscriptversion=2015-04-09.19; # UTC\n\n# Cop"
  },
  {
    "path": "doc/mpir.texi",
    "chars": 496057,
    "preview": "\\input texinfo    @c -*-texinfo-*-\n@c %**start of header\n@setfilename mpir.info\n@include version.texi\n@settitle MPIR @va"
  },
  {
    "path": "doc/texinfo.tex",
    "chars": 323102,
    "preview": "% texinfo.tex -- TeX macros to handle Texinfo files.\n% \n% Load plain if necessary, i.e., if running under initex.\n\\expan"
  },
  {
    "path": "doc/version.texi",
    "chars": 101,
    "preview": "@set UPDATED 18 February 2017\n@set UPDATED-MONTH February 2017\n@set EDITION 3.0.0\n@set VERSION 3.0.0\n"
  },
  {
    "path": "errno.c",
    "chars": 2023,
    "preview": "/* gmp_errno, __gmp_exception -- exception handling and reporting.\n\n   THE FUNCTIONS IN THIS FILE, APART FROM gmp_errno,"
  },
  {
    "path": "extract-dbl.c",
    "chars": 6347,
    "preview": "/* __gmp_extract_double -- convert from double to array of mp_limb_t.\n\nCopyright 1996, 1999, 2000, 2001, 2002, 2006 Free"
  },
  {
    "path": "fft/Makefile.am",
    "chars": 1524,
    "preview": "## Process this file with automake to generate Makefile.in\n\n# Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003 Free So"
  },
  {
    "path": "fft/adjust.c",
    "chars": 2112,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/adjust_sqrt2.c",
    "chars": 2910,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/butterfly_lshB.c",
    "chars": 5457,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/butterfly_rshB.c",
    "chars": 4958,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/combine_bits.c",
    "chars": 3784,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/div_2expmod_2expp1.c",
    "chars": 2081,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fermat_to_mpz.c",
    "chars": 2076,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_mfa_trunc_sqrt2.c",
    "chars": 10000,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_mfa_trunc_sqrt2_inner.c",
    "chars": 3191,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_negacyclic.c",
    "chars": 3136,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_radix2.c",
    "chars": 2500,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_trunc.c",
    "chars": 3097,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/fft_trunc_sqrt2.c",
    "chars": 3698,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/ifft_mfa_trunc_sqrt2.c",
    "chars": 11274,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/ifft_negacyclic.c",
    "chars": 3320,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/ifft_radix2.c",
    "chars": 2511,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/ifft_trunc.c",
    "chars": 3975,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/ifft_trunc_sqrt2.c",
    "chars": 3843,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/mul_2expmod_2expp1.c",
    "chars": 2075,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/mul_fft_main.c",
    "chars": 3172,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/mul_mfa_trunc_sqrt2.c",
    "chars": 3529,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/mul_trunc_sqrt2.c",
    "chars": 3746,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/mulmod_2expp1.c",
    "chars": 7322,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/normmod_2expp1.c",
    "chars": 2055,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "fft/revbin.c",
    "chars": 2230,
    "preview": "/* \n\nCopyright 2009 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or witho"
  },
  {
    "path": "fft/split_bits.c",
    "chars": 3806,
    "preview": "/* \n\nCopyright 2009, 2011 William Hart. All rights reserved.\n\nRedistribution and use in source and binary forms, with or"
  },
  {
    "path": "gmp-impl.h",
    "chars": 177056,
    "preview": "/* Include file for internal GNU MP types and definitions.\n\n   THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND ARE AL"
  },
  {
    "path": "gpl-2.0.txt",
    "chars": 17990,
    "preview": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
  },
  {
    "path": "invalid.c",
    "chars": 2470,
    "preview": "/* __gmp_invalid_operation -- invalid floating point operation.\n\n   THE FUNCTIONS IN THIS FILE ARE FOR INTERNAL USE ONLY"
  },
  {
    "path": "lgpl-2.1.txt",
    "chars": 26436,
    "preview": "\t\t  GNU LESSER GENERAL PUBLIC LICENSE\n\t\t       Version 2.1, February 1999\n\n Copyright (C) 1991, 1999 Free Software Found"
  },
  {
    "path": "longlong_post.h",
    "chars": 10581,
    "preview": "/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.\n\nCopyright 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2"
  },
  {
    "path": "longlong_pre.h",
    "chars": 6639,
    "preview": "/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.\n\nCopyright 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2"
  },
  {
    "path": "memory.c",
    "chars": 3866,
    "preview": "/* Memory allocation routines.\n\nCopyright 1991, 1993, 1994, 2000, 2001, 2002 Free Software Foundation, Inc.\n\nThis file i"
  },
  {
    "path": "mp_bpl.c",
    "chars": 972,
    "preview": "/*\nCopyright 1996 Free Software Foundation, Inc.\n\nThis file is part of the GNU MP Library.\n\nThe GNU MP Library is free s"
  },
  {
    "path": "mp_clz_tab.c",
    "chars": 1465,
    "preview": "/* __clz_tab -- support for longlong.h\n\n   THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND MAY CHANGE\n   INCOMPATIBLY"
  },
  {
    "path": "mp_dv_tab.c",
    "chars": 2963,
    "preview": "/* __gmp_digit_value_tab -- support for mp*_set_str\n\n   THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND MAY CHANGE\n  "
  },
  {
    "path": "mp_get_fns.c",
    "chars": 1355,
    "preview": "/* mp_get_memory_functions -- Get the allocate, reallocate, and free functions.\n\nCopyright 2002 Free Software Foundation"
  },
  {
    "path": "mp_minv_tab.c",
    "chars": 2050,
    "preview": "/* A table of data supporting modlimb_invert().\n\n   THE CONTENTS OF THIS FILE ARE FOR INTERNAL USE AND MAY CHANGE\n   INC"
  },
  {
    "path": "mp_set_fns.c",
    "chars": 1473,
    "preview": "/* mp_set_memory_functions -- Set the allocate, reallocate, and free functions\n   for use by the mp package.\n\nCopyright "
  },
  {
    "path": "mpf/Makefile.am",
    "chars": 1733,
    "preview": "## Process this file with automake to generate Makefile.in\n\n# Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software"
  },
  {
    "path": "mpf/abs.c",
    "chars": 1386,
    "preview": "/* mpf_abs -- Compute the absolute value of a float.\n\nCopyright 1993, 1994, 1995, 2001 Free Software Foundation, Inc.\n\nT"
  },
  {
    "path": "mpf/add.c",
    "chars": 4228,
    "preview": "/* mpf_add -- Add two floats.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2005 Free Software Foundation, Inc.\n\nThis file is"
  },
  {
    "path": "mpf/add_ui.c",
    "chars": 3577,
    "preview": "/* mpf_add_ui -- Add a float and an unsigned integer.\n\nCopyright 1993, 1994, 1996, 2000, 2001 Free Software Foundation, "
  },
  {
    "path": "mpf/ceilfloor.c",
    "chars": 2903,
    "preview": "/* mpf_ceil, mpf_floor -- round an mpf to an integer.\n\nCopyright 2001, 2004 Free Software Foundation, Inc.\n\nThis file is"
  },
  {
    "path": "mpf/clear.c",
    "chars": 1103,
    "preview": "/* mpf_clear -- de-allocate the space occupied by the dynamic digit space of\n   an integer.\n\nCopyright 1993, 1994, 1995,"
  },
  {
    "path": "mpf/clears.c",
    "chars": 1287,
    "preview": "/* mpf_clears() -- Clear multiple mpf_t variables.\n\nCopyright 2009 Free Software Foundation, Inc.\n\nThis file is part of "
  },
  {
    "path": "mpf/cmp.c",
    "chars": 2462,
    "preview": "/* mpf_cmp -- Compare two floats.\n\nCopyright 1993, 1994, 1996, 2001 Free Software Foundation, Inc.\n\nThis file is part of"
  },
  {
    "path": "mpf/cmp_d.c",
    "chars": 1558,
    "preview": "/* mpf_cmp_d -- compare mpf and double.\n\nCopyright 2001, 2003 Free Software Foundation, Inc.\n\nThis file is part of the G"
  },
  {
    "path": "mpf/cmp_si.c",
    "chars": 2807,
    "preview": "/* mpf_cmp_si -- Compare a float with a signed integer.\n\nCopyright 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2004 Free S"
  },
  {
    "path": "mpf/cmp_ui.c",
    "chars": 2313,
    "preview": "/* mpf_cmp_ui -- Compare a float with an unsigned integer.\n\nCopyright 1993, 1994, 1995, 1999, 2001, 2002 Free Software F"
  },
  {
    "path": "mpf/cmp_z.c",
    "chars": 1310,
    "preview": "/* mpf_cmp_z -- Compare a float with an integer.\n\nCopyright 2015 Free Software Foundation, Inc.\n\nThis file is part of th"
  },
  {
    "path": "mpf/div.c",
    "chars": 4519,
    "preview": "/* mpf_div -- Divide two floats.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2002, 2004, 2005 Free Software\nFoundation, Inc"
  },
  {
    "path": "mpf/div_2exp.c",
    "chars": 4582,
    "preview": "/* mpf_div_2exp -- Divide a float by 2^n.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2002, 2004 Free Software Foundation,\n"
  },
  {
    "path": "mpf/div_ui.c",
    "chars": 2403,
    "preview": "/* mpf_div_ui -- Divide a float with an unsigned integer.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2002, 2004, 2005 Free"
  },
  {
    "path": "mpf/dump.c",
    "chars": 1480,
    "preview": "/* mpf_dump -- Dump a float to stdout.\n\n   THIS IS AN INTERNAL FUNCTION WITH A MUTABLE INTERFACE.  IT IS NOT SAFE TO\n   "
  },
  {
    "path": "mpf/eq.c",
    "chars": 2556,
    "preview": "/* mpf_eq -- Compare two floats up to a specified bit #.\n\nCopyright 1993, 1995, 1996, 2001, 2002 Free Software Foundatio"
  },
  {
    "path": "mpf/fits_s.h",
    "chars": 1688,
    "preview": "/* mpf_fits_s*_p -- test whether an mpf fits a C signed type.\n\nCopyright 2001, 2002 Free Software Foundation, Inc.\n\nThis"
  },
  {
    "path": "mpf/fits_si.c",
    "chars": 1013,
    "preview": "/* mpf_fits_sint_p -- test whether an mpf fits an int.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is part"
  },
  {
    "path": "mpf/fits_sint.c",
    "chars": 1009,
    "preview": "/* mpf_fits_sint_p -- test whether an mpf fits an int.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is part"
  },
  {
    "path": "mpf/fits_slong.c",
    "chars": 1013,
    "preview": "/* mpf_fits_slong_p -- test whether an mpf fits a long.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is par"
  },
  {
    "path": "mpf/fits_sshort.c",
    "chars": 1016,
    "preview": "/* mpf_fits_sshort_p -- test whether an mpf fits a short.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is p"
  },
  {
    "path": "mpf/fits_u.h",
    "chars": 1644,
    "preview": "/* mpf_fits_u*_p -- test whether an mpf fits a C unsigned type.\n\nCopyright 2001, 2002 Free Software Foundation, Inc.\n\nTh"
  },
  {
    "path": "mpf/fits_ui.c",
    "chars": 990,
    "preview": "/* mpf_fits_uint_p -- test whether an mpf fits an unsigned int.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis fil"
  },
  {
    "path": "mpf/fits_uint.c",
    "chars": 990,
    "preview": "/* mpf_fits_uint_p -- test whether an mpf fits an unsigned int.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis fil"
  },
  {
    "path": "mpf/fits_ulong.c",
    "chars": 1000,
    "preview": "/* mpf_fits_ulong_p -- test whether an mpf fits an unsigned long.\n\nCopyright 2001, 2002 Free Software Foundation, Inc.\n\n"
  },
  {
    "path": "mpf/fits_ushort.c",
    "chars": 997,
    "preview": "/* mpf_fits_ushort_p -- test whether an mpf fits an unsigned short.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis"
  },
  {
    "path": "mpf/get_d.c",
    "chars": 1254,
    "preview": "/* double mpf_get_d (mpf_t src) -- return SRC truncated to a double.\n\nCopyright 1996, 2001, 2002, 2003, 2004 Free Softwa"
  },
  {
    "path": "mpf/get_d_2exp.c",
    "chars": 1591,
    "preview": "/* double mpf_get_d_2exp (signed long int *exp, mpf_t src).\n\nCopyright 2001, 2002, 2003, 2004 Free Software Foundation, "
  },
  {
    "path": "mpf/get_dfl_prec.c",
    "chars": 1054,
    "preview": "/* mpf_get_default_prec -- return default precision in bits.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file i"
  },
  {
    "path": "mpf/get_prc.c",
    "chars": 1041,
    "preview": "/* mpf_get_prec(x) -- Return the precision in bits of x.\n\nCopyright 1996, 2000, 2001 Free Software Foundation, Inc.\n\nThi"
  },
  {
    "path": "mpf/get_si.c",
    "chars": 2308,
    "preview": "/* mpf_get_si -- mpf to long conversion\n\nCopyright 2001, 2002, 2004 Free Software Foundation, Inc.\n\nThis file is part of"
  },
  {
    "path": "mpf/get_str.c",
    "chars": 8704,
    "preview": "/* mpf_get_str (digit_ptr, exp, base, n_digits, a) -- Convert the floating\n  point number A to a base BASE number and st"
  },
  {
    "path": "mpf/get_ui.c",
    "chars": 3016,
    "preview": "/* mpf_get_ui -- mpf to ulong conversion\n\nCopyright 2001, 2002, 2004 Free Software Foundation, Inc.\n\nThis file is part o"
  },
  {
    "path": "mpf/init.c",
    "chars": 1202,
    "preview": "/* mpf_init() -- Make a new multiple precision number with value 0.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 2004 Free S"
  },
  {
    "path": "mpf/init2.c",
    "chars": 1242,
    "preview": "/* mpf_init2() -- Make a new multiple precision number with value 0.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 2004 Free "
  },
  {
    "path": "mpf/inits.c",
    "chars": 1306,
    "preview": "/* mpf_inits() -- Initialize multiple mpf_t variables and set them to 0.\n\nCopyright 2009 Free Software Foundation, Inc.\n"
  },
  {
    "path": "mpf/inp_str.c",
    "chars": 2198,
    "preview": "/* mpf_inp_str(dest_float, stream, base) -- Input a number in base\n   BASE from stdio stream STREAM and store the result"
  },
  {
    "path": "mpf/int_p.c",
    "chars": 1367,
    "preview": "/* mpf_integer_p -- test whether an mpf is an integer */\n\n/*\nCopyright 2001, 2002 Free Software Foundation, Inc.\n\nThis f"
  },
  {
    "path": "mpf/iset.c",
    "chars": 1551,
    "preview": "/* mpf_init_set -- Initialize a float and assign it from another float.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 2004 Fr"
  },
  {
    "path": "mpf/iset_d.c",
    "chars": 1207,
    "preview": "/* mpf_init_set_d -- Initialize a float and assign it from a double.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 2004 Free "
  },
  {
    "path": "mpf/iset_si.c",
    "chars": 1512,
    "preview": "/* mpf_init_set_si() -- Initialize a float and assign it from a signed int.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 200"
  },
  {
    "path": "mpf/iset_str.c",
    "chars": 1267,
    "preview": "/* mpf_init_set_str -- Initialize a float and assign it from a string.\n\nCopyright 1995, 1996, 2000, 2001, 2004 Free Soft"
  },
  {
    "path": "mpf/iset_ui.c",
    "chars": 1431,
    "preview": "/* mpf_init_set_ui() -- Initialize a float and assign it from an unsigned int.\n\nCopyright 1993, 1994, 1995, 2000, 2001, "
  },
  {
    "path": "mpf/mul.c",
    "chars": 2160,
    "preview": "/* mpf_mul -- Multiply two floats.\n\nCopyright 1993, 1994, 1996, 2001, 2005 Free Software Foundation, Inc.\n\nThis file is "
  },
  {
    "path": "mpf/mul_2exp.c",
    "chars": 4296,
    "preview": "/* mpf_mul_2exp -- Multiply a float by 2^n.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2002, 2004 Free Software Foundation"
  },
  {
    "path": "mpf/mul_ui.c",
    "chars": 5977,
    "preview": "/* mpf_mul_ui -- Multiply a float and an unsigned integer.\n\nCopyright 1993, 1994, 1996, 2001, 2003, 2004 Free Software F"
  },
  {
    "path": "mpf/neg.c",
    "chars": 1452,
    "preview": "/* mpf_neg -- Negate a float.\n\nCopyright 1993, 1994, 1995, 2001 Free Software Foundation, Inc.\n\nThis file is part of the"
  },
  {
    "path": "mpf/out_str.c",
    "chars": 2777,
    "preview": "/* mpf_out_str (stream, base, n_digits, op) -- Print N_DIGITS digits from\n   the float OP to STREAM in base BASE.  Retur"
  },
  {
    "path": "mpf/pow_ui.c",
    "chars": 1272,
    "preview": "/* mpf_pow_ui -- Compute b^e.\n\nCopyright 1998, 1999, 2001 Free Software Foundation, Inc.\n\nThis file is part of the GNU M"
  },
  {
    "path": "mpf/random2.c",
    "chars": 1657,
    "preview": "/* mpf_random2 -- Generate a positive random mpf_t of specified size, with\n   long runs of consecutive ones and zeros in"
  },
  {
    "path": "mpf/reldiff.c",
    "chars": 1702,
    "preview": "/* mpf_reldiff -- Generate the relative difference of two floats.\n\nCopyright 1996, 2001, 2004, 2005 Free Software Founda"
  },
  {
    "path": "mpf/rrandomb.c",
    "chars": 1663,
    "preview": "/* mpf_rrandomb -- Generate a positive random mpf_t of specified size, with\n   long runs of consecutive ones and zeros i"
  },
  {
    "path": "mpf/set.c",
    "chars": 1396,
    "preview": "/* mpf_set -- Assign a float from another float.\n\nCopyright 1993, 1994, 1995, 2001, 2004 Free Software Foundation, Inc.\n"
  },
  {
    "path": "mpf/set_d.c",
    "chars": 1472,
    "preview": "/* mpf_set_d -- Assign a float from a double.\n\nCopyright 1993, 1994, 1995, 1996, 2001, 2003, 2004 Free Software Foundati"
  },
  {
    "path": "mpf/set_dfl_prec.c",
    "chars": 1129,
    "preview": "/* mpf_set_default_prec --\n\nCopyright 1993, 1994, 1995, 2001 Free Software Foundation, Inc.\n\nThis file is part of the GN"
  },
  {
    "path": "mpf/set_prc.c",
    "chars": 1984,
    "preview": "/* mpf_set_prec(x) -- Change the precision of x.\n\nCopyright 1993, 1994, 1995, 2000, 2001 Free Software Foundation, Inc.\n"
  },
  {
    "path": "mpf/set_prc_raw.c",
    "chars": 1178,
    "preview": "/* mpf_set_prec_raw(x,bits) -- Change the precision of x without changing\n   allocation.  For proper operation, the orig"
  },
  {
    "path": "mpf/set_q.c",
    "chars": 4481,
    "preview": "/* mpf_set_q (mpf_t rop, mpq_t op) -- Convert the rational op to the float rop.\n\nCopyright 1996, 1999, 2001, 2002, 2004,"
  },
  {
    "path": "mpf/set_si.c",
    "chars": 1345,
    "preview": "/* mpf_set_si() -- Assign a float from a signed int.\n\nCopyright 1993, 1994, 1995, 2000, 2001, 2002, 2004 Free Software F"
  },
  {
    "path": "mpf/set_str.c",
    "chars": 10656,
    "preview": "/* mpf_set_str (dest, string, base) -- Convert the string STRING\n   in base BASE to a float in dest.  If BASE is zero, t"
  },
  {
    "path": "mpf/set_ui.c",
    "chars": 1234,
    "preview": "/* mpf_set_ui() -- Assign a float from an unsigned int.\n\nCopyright 1993, 1994, 1995, 2001, 2002, 2004 Free Software Foun"
  },
  {
    "path": "mpf/set_z.c",
    "chars": 1313,
    "preview": "/* mpf_set_z -- Assign a float from an integer.\n\nCopyright 1996, 2001, 2004 Free Software Foundation, Inc.\n\nThis file is"
  },
  {
    "path": "mpf/size.c",
    "chars": 1063,
    "preview": "/* mpf_size(x) -- return the number of limbs currently used by the\n   value of the float X.\n\nCopyright 1993, 1994, 1995,"
  },
  {
    "path": "mpf/sqrt.c",
    "chars": 3536,
    "preview": "/* mpf_sqrt -- Compute the square root of a float.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2004, 2005 Free Software Fou"
  },
  {
    "path": "mpf/sqrt_ui.c",
    "chars": 3272,
    "preview": "/* mpf_sqrt_ui -- Compute the square root of an unsigned integer.\n\nCopyright 1993, 1994, 1996, 2000, 2001, 2004, 2005 Fr"
  },
  {
    "path": "mpf/sub.c",
    "chars": 9530,
    "preview": "/* mpf_sub -- Subtract two floats.\n\nCopyright 1993, 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free\nSoftware F"
  },
  {
    "path": "mpf/sub_ui.c",
    "chars": 1212,
    "preview": "/* mpf_sub_ui -- Subtract an unsigned integer from a float.\n\nCopyright 1993, 1994, 1996, 2001 Free Software Foundation, "
  },
  {
    "path": "mpf/swap.c",
    "chars": 1412,
    "preview": "/* mpf_swap (U, V) -- Swap U and V.\n\nCopyright 1997, 1998, 2000, 2001 Free Software Foundation, Inc.\n\nThis file is part "
  },
  {
    "path": "mpf/trunc.c",
    "chars": 1715,
    "preview": "/* mpf_trunc -- truncate an mpf to an integer.\n\nCopyright 2001 Free Software Foundation, Inc.\n\nThis file is part of the "
  },
  {
    "path": "mpf/ui_div.c",
    "chars": 3220,
    "preview": "/* mpf_ui_div -- Divide an unsigned integer with a float.\n\nCopyright 1993, 1994, 1995, 1996, 2000, 2001, 2002, 2004, 200"
  },
  {
    "path": "mpf/ui_sub.c",
    "chars": 7771,
    "preview": "/* mpf_ui_sub -- Subtract a float from an unsigned long int.\n\nCopyright 1993, 1994, 1995, 1996, 2001, 2002, 2005 Free So"
  },
  {
    "path": "mpf/urandomb.c",
    "chars": 1811,
    "preview": "/* mpf_urandomb (rop, state, nbits) -- Generate a uniform pseudorandom\n   real number between 0 (inclusive) and 1 (exclu"
  },
  {
    "path": "mpir.net/build.vc/check_config.bat",
    "chars": 656,
    "preview": "@echo off\nrem %1 = platform\nrem %2 = configuration\nrem %3 - msvc version\n\nrem output_params.bat contains:\nrem (set ldir="
  },
  {
    "path": "mpir.net/build.vc11/mpir.net/mpir.net.vcxproj",
    "chars": 10160,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc11/mpir.net/mpir.net.vcxproj.filters",
    "chars": 2839,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "mpir.net/build.vc11/mpir.net-tests/mpir.net-tests.csproj",
    "chars": 11029,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "mpir.net/build.vc11/mpir.net.sln",
    "chars": 1979,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2012\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00A"
  },
  {
    "path": "mpir.net/build.vc12/mpir.net/mpir.net.vcxproj",
    "chars": 10160,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc12/mpir.net/mpir.net.vcxproj.filters",
    "chars": 2839,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "mpir.net/build.vc12/mpir.net-tests/mpir.net-tests.csproj",
    "chars": 11029,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
  },
  {
    "path": "mpir.net/build.vc12/mpir.net.sln",
    "chars": 2056,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 2013\nVisualStudioVersion = 12.0.40629.0\nMi"
  },
  {
    "path": "mpir.net/build.vc14/mpir.net/mpir.net.vcxproj",
    "chars": 10162,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc14/mpir.net/mpir.net.vcxproj.filters",
    "chars": 2840,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "mpir.net/build.vc14/mpir.net-tests/mpir.net-tests.csproj",
    "chars": 11063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc14/mpir.net.sln",
    "chars": 2054,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.24720.0\nMini"
  },
  {
    "path": "mpir.net/build.vc15/mpir.net/mpir.net.vcxproj",
    "chars": 10231,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc15/mpir.net/mpir.net.vcxproj.filters",
    "chars": 2840,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
  },
  {
    "path": "mpir.net/build.vc15/mpir.net-tests/mpir.net-tests.csproj",
    "chars": 11063,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
  },
  {
    "path": "mpir.net/build.vc15/mpir.net.sln",
    "chars": 2054,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.24720.0\nMini"
  },
  {
    "path": "mpir.net/mpir.net/AssemblyInfo.cpp",
    "chars": 2131,
    "preview": "/*\nCopyright 2014 Alex Dyachenko\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can red"
  },
  {
    "path": "mpir.net/mpir.net/Common.cpp",
    "chars": 743,
    "preview": "/*\nCopyright 2014 Alex Dyachenko\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can red"
  },
  {
    "path": "mpir.net/mpir.net/Common.h",
    "chars": 7774,
    "preview": "/*\nCopyright 2014 Alex Dyachenko\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can red"
  },
  {
    "path": "mpir.net/mpir.net/ExpressionMacros.h",
    "chars": 21309,
    "preview": "/*\nCopyright 2014 Alex Dyachenko\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can red"
  },
  {
    "path": "mpir.net/mpir.net/HugeFloat.cpp",
    "chars": 15241,
    "preview": "/*\nCopyright 2014 Alex Dyachenko\n\nThis file is part of the MPIR Library.\n\nThe MPIR Library is free software; you can red"
  }
]

// ... and 1960 more files (download for full content)

About this extraction

This page contains the full source code of the wbhart/mpir GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2160 files (11.4 MB), approximately 3.1M tokens, and a symbol index with 3713 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!