From 0c2f0333a4e539325da80cdf3fb182cd17134665 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Wed, 18 Jun 2014 11:12:01 +0000 Subject: Add libs/gmp and libs/mpfr in preparation for MetaPost 2.0 git-svn-id: svn://tug.org/texlive/trunk@34274 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/libs/gmp/ChangeLog | 15 + Build/source/libs/gmp/Makefile.am | 486 + Build/source/libs/gmp/Makefile.in | 2474 + Build/source/libs/gmp/README | 17 + Build/source/libs/gmp/ac/gmp.ac | 9 + Build/source/libs/gmp/ac/withenable.ac | 10 + Build/source/libs/gmp/aclocal.m4 | 1190 + Build/source/libs/gmp/config.h.in | 118 + Build/source/libs/gmp/configure | 7954 +++ Build/source/libs/gmp/configure.ac | 112 + Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog | 4 + Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes | 37 + .../libs/gmp/gmp-6.0.0-PATCHES/patch-01-const | 12 + Build/source/libs/gmp/gmp-6.0.0/AUTHORS | 100 + Build/source/libs/gmp/gmp-6.0.0/ChangeLog | 32941 ++++++++++ Build/source/libs/gmp/gmp-6.0.0/INSTALL | 80 + Build/source/libs/gmp/gmp-6.0.0/Makefile.am | 445 + Build/source/libs/gmp/gmp-6.0.0/NEWS | 891 + Build/source/libs/gmp/gmp-6.0.0/README | 116 + Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 | 3984 ++ Build/source/libs/gmp/gmp-6.0.0/assert.c | 59 + Build/source/libs/gmp/gmp-6.0.0/bootstrap.c | 146 + Build/source/libs/gmp/gmp-6.0.0/compat.c | 60 + Build/source/libs/gmp/gmp-6.0.0/config.in | 640 + Build/source/libs/gmp/gmp-6.0.0/configgmp.guess | 1021 + Build/source/libs/gmp/gmp-6.0.0/configgmp.sub | 165 + Build/source/libs/gmp/gmp-6.0.0/configure.ac | 3816 ++ Build/source/libs/gmp/gmp-6.0.0/errno.c | 70 + Build/source/libs/gmp/gmp-6.0.0/extract-dbl.c | 311 + Build/source/libs/gmp/gmp-6.0.0/gen-bases.c | 251 + Build/source/libs/gmp/gmp-6.0.0/gen-fac.c | 285 + Build/source/libs/gmp/gmp-6.0.0/gen-fib.c | 156 + Build/source/libs/gmp/gmp-6.0.0/gen-jacobitab.c | 128 + Build/source/libs/gmp/gmp-6.0.0/gen-psqr.c | 586 + Build/source/libs/gmp/gmp-6.0.0/gen-trialdivtab.c | 300 + Build/source/libs/gmp/gmp-6.0.0/gmp-h.in | 2301 + Build/source/libs/gmp/gmp-6.0.0/gmp-impl.h | 5203 ++ Build/source/libs/gmp/gmp-6.0.0/gmpxx.h | 3336 + Build/source/libs/gmp/gmp-6.0.0/invalid.c | 83 + Build/source/libs/gmp/gmp-6.0.0/longlong.h | 2183 + Build/source/libs/gmp/gmp-6.0.0/memory.c | 146 + Build/source/libs/gmp/gmp-6.0.0/mini-gmp/README | 77 + .../source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.c | 4386 ++ .../source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.h | 294 + Build/source/libs/gmp/gmp-6.0.0/mp_bpl.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mp_clz_tab.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mp_dv_tab.c | 78 + Build/source/libs/gmp/gmp-6.0.0/mp_get_fns.c | 48 + Build/source/libs/gmp/gmp-6.0.0/mp_minv_tab.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mp_set_fns.c | 50 + Build/source/libs/gmp/gmp-6.0.0/mpf/Makefile.am | 47 + Build/source/libs/gmp/gmp-6.0.0/mpf/abs.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpf/add.c | 184 + Build/source/libs/gmp/gmp-6.0.0/mpf/add_ui.c | 153 + Build/source/libs/gmp/gmp-6.0.0/mpf/ceilfloor.c | 126 + Build/source/libs/gmp/gmp-6.0.0/mpf/clear.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpf/clears.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpf/cmp.c | 117 + Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_d.c | 60 + Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_si.c | 118 + Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_ui.c | 100 + Build/source/libs/gmp/gmp-6.0.0/mpf/div.c | 138 + Build/source/libs/gmp/gmp-6.0.0/mpf/div_2exp.c | 139 + Build/source/libs/gmp/gmp-6.0.0/mpf/div_ui.c | 111 + Build/source/libs/gmp/gmp-6.0.0/mpf/dump.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpf/eq.c | 150 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_s.h | 75 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sint.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_slong.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sshort.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_u.h | 74 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_uint.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ulong.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ushort.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_d.c | 47 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_d_2exp.c | 61 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_dfl_prec.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_prc.c | 38 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_si.c | 87 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_str.c | 330 + Build/source/libs/gmp/gmp-6.0.0/mpf/get_ui.c | 102 + Build/source/libs/gmp/gmp-6.0.0/mpf/init.c | 42 + Build/source/libs/gmp/gmp-6.0.0/mpf/init2.c | 44 + Build/source/libs/gmp/gmp-6.0.0/mpf/inits.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpf/inp_str.c | 93 + Build/source/libs/gmp/gmp-6.0.0/mpf/int_p.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpf/iset.c | 62 + Build/source/libs/gmp/gmp-6.0.0/mpf/iset_d.c | 42 + Build/source/libs/gmp/gmp-6.0.0/mpf/iset_si.c | 58 + Build/source/libs/gmp/gmp-6.0.0/mpf/iset_str.c | 44 + Build/source/libs/gmp/gmp-6.0.0/mpf/iset_ui.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpf/mul.c | 96 + Build/source/libs/gmp/gmp-6.0.0/mpf/mul_2exp.c | 133 + Build/source/libs/gmp/gmp-6.0.0/mpf/mul_ui.c | 182 + Build/source/libs/gmp/gmp-6.0.0/mpf/neg.c | 62 + Build/source/libs/gmp/gmp-6.0.0/mpf/out_str.c | 117 + Build/source/libs/gmp/gmp-6.0.0/mpf/pow_ui.c | 54 + Build/source/libs/gmp/gmp-6.0.0/mpf/random2.c | 67 + Build/source/libs/gmp/gmp-6.0.0/mpf/reldiff.c | 65 + Build/source/libs/gmp/gmp-6.0.0/mpf/set.c | 56 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_d.c | 60 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_dfl_prec.c | 40 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc.c | 69 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc_raw.c | 40 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_q.c | 155 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_si.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_str.c | 402 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_ui.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpf/set_z.c | 57 + Build/source/libs/gmp/gmp-6.0.0/mpf/size.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt.c | 113 + Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt_ui.c | 109 + Build/source/libs/gmp/gmp-6.0.0/mpf/sub.c | 419 + Build/source/libs/gmp/gmp-6.0.0/mpf/sub_ui.c | 51 + Build/source/libs/gmp/gmp-6.0.0/mpf/swap.c | 57 + Build/source/libs/gmp/gmp-6.0.0/mpf/trunc.c | 75 + Build/source/libs/gmp/gmp-6.0.0/mpf/ui_div.c | 128 + Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c | 336 + Build/source/libs/gmp/gmp-6.0.0/mpf/urandomb.c | 69 + Build/source/libs/gmp/gmp-6.0.0/mpn/Makeasm.am | 118 + Build/source/libs/gmp/gmp-6.0.0/mpn/Makefile.am | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/README | 44 + Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/README | 208 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/add_n.asm | 164 + .../libs/gmp/gmp-6.0.0/mpn/alpha/addmul_1.asm | 99 + .../libs/gmp/gmp-6.0.0/mpn/alpha/alpha-defs.m4 | 107 + .../libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh1_n.asm | 164 + .../libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh2_n.asm | 167 + .../libs/gmp/gmp-6.0.0/mpn/alpha/bdiv_dbm1c.asm | 282 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/cntlz.asm | 55 + Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/com.asm | 176 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/copyd.asm | 88 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/copyi.asm | 86 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/default.m4 | 127 + Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/dive_1.c | 115 + .../libs/gmp/gmp-6.0.0/mpn/alpha/divrem_2.asm | 177 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev5/diveby3.asm | 332 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev5/gmp-mparam.h | 187 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/add_n.asm | 283 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/aorslsh1_n.asm | 172 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorsmul_1.asm | 398 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/gmp-mparam.h | 209 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mod_1_4.asm | 337 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mul_1.asm | 496 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/README | 65 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_1.asm | 396 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_2.asm | 146 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_3.asm | 169 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_4.asm | 210 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/aors_n.asm | 233 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/gmp-mparam.h | 72 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/mul_1.asm | 364 + .../gmp/gmp-6.0.0/mpn/alpha/ev6/nails/submul_1.asm | 396 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/slot.pl | 318 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev6/sub_n.asm | 283 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev67/gcd_1.asm | 145 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev67/hamdist.asm | 111 + .../libs/gmp/gmp-6.0.0/mpn/alpha/ev67/popcount.asm | 101 + .../libs/gmp/gmp-6.0.0/mpn/alpha/gmp-mparam.h | 86 + .../libs/gmp/gmp-6.0.0/mpn/alpha/invert_limb.asm | 95 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/lshift.asm | 182 + .../libs/gmp/gmp-6.0.0/mpn/alpha/mod_34lsub1.asm | 164 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/mode1o.asm | 209 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/mul_1.asm | 102 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/rshift.asm | 180 + .../libs/gmp/gmp-6.0.0/mpn/alpha/sec_tabselect.asm | 137 + .../gmp/gmp-6.0.0/mpn/alpha/sqr_diag_addlsh1.asm | 93 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/sub_n.asm | 164 + .../libs/gmp/gmp-6.0.0/mpn/alpha/submul_1.asm | 99 + Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/umul.asm | 44 + .../source/libs/gmp/gmp-6.0.0/mpn/alpha/unicos.m4 | 131 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/README | 35 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aors_n.asm | 112 + .../libs/gmp/gmp-6.0.0/mpn/arm/aorslsh1_n.asm | 167 + .../libs/gmp/gmp-6.0.0/mpn/arm/aorsmul_1.asm | 135 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/arm-defs.m4 | 91 + .../libs/gmp/gmp-6.0.0/mpn/arm/bdiv_dbm1c.asm | 113 + .../libs/gmp/gmp-6.0.0/mpn/arm/cnd_aors_n.asm | 134 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/com.asm | 75 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyd.asm | 84 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyi.asm | 79 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/dive_1.asm | 151 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/gmp-mparam.h | 127 + .../libs/gmp/gmp-6.0.0/mpn/arm/invert_limb.asm | 93 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/logops_n.asm | 139 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshift.asm | 88 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/lshiftc.asm | 95 + .../libs/gmp/gmp-6.0.0/mpn/arm/mod_34lsub1.asm | 121 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mode1o.asm | 92 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mul_1.asm | 94 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/neon/README | 2 + .../libs/gmp/gmp-6.0.0/mpn/arm/neon/hamdist.asm | 194 + .../libs/gmp/gmp-6.0.0/mpn/arm/neon/lorrshift.asm | 279 + .../libs/gmp/gmp-6.0.0/mpn/arm/neon/lshiftc.asm | 257 + .../libs/gmp/gmp-6.0.0/mpn/arm/neon/popcount.asm | 166 + .../gmp/gmp-6.0.0/mpn/arm/neon/sec_tabselect.asm | 140 + .../libs/gmp/gmp-6.0.0/mpn/arm/rsh1aors_n.asm | 124 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rshift.asm | 86 + .../libs/gmp/gmp-6.0.0/mpn/arm/sec_tabselect.asm | 131 + Build/source/libs/gmp/gmp-6.0.0/mpn/arm/udiv.asm | 104 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/v5/gcd_1.asm | 120 + .../libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_1.asm | 129 + .../libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_2.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_1.asm | 111 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_2.asm | 138 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_3.asm | 187 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/dive_1.asm | 149 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h | 157 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/mode1o.asm | 95 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_1.asm | 114 + .../source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_2.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/popham.asm | 138 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/sqr_basecase.asm | 518 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6/submul_1.asm | 125 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6t2/divrem_1.asm | 212 + .../libs/gmp/gmp-6.0.0/mpn/arm/v6t2/gcd_1.asm | 115 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/addmul_1.asm | 145 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/aors_n.asm | 162 + .../gmp-6.0.0/mpn/arm/v7a/cora15/cnd_aors_n.asm | 158 + .../libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/com.asm | 180 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h | 197 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/logops_n.asm | 253 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/mul_1.asm | 104 + .../mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm | 43 + .../mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm | 43 + .../mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm | 144 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/com.asm | 97 + .../gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyd.asm | 110 + .../gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyi.asm | 90 + .../mpn/arm/v7a/cora15/neon/rsh1aors_n.asm | 177 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora15/submul_1.asm | 159 + .../gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h | 209 + .../source/libs/gmp/gmp-6.0.0/mpn/arm64/aors_n.asm | 98 + .../libs/gmp/gmp-6.0.0/mpn/arm64/aorsmul_1.asm | 122 + .../libs/gmp/gmp-6.0.0/mpn/arm64/cnd_aors_n.asm | 99 + .../source/libs/gmp/gmp-6.0.0/mpn/arm64/copyd.asm | 93 + .../source/libs/gmp/gmp-6.0.0/mpn/arm64/copyi.asm | 77 + .../source/libs/gmp/gmp-6.0.0/mpn/arm64/gcd_1.asm | 125 + .../libs/gmp/gmp-6.0.0/mpn/arm64/invert_limb.asm | 83 + .../libs/gmp/gmp-6.0.0/mpn/arm64/logops_n.asm | 106 + .../source/libs/gmp/gmp-6.0.0/mpn/arm64/mul_1.asm | 98 + Build/source/libs/gmp/gmp-6.0.0/mpn/asm-defs.m4 | 1761 + Build/source/libs/gmp/gmp-6.0.0/mpn/cpp-ccas | 118 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/README | 121 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/add_n.c | 91 + .../libs/gmp/gmp-6.0.0/mpn/cray/cfp/addmul_1.c | 49 + .../source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mul_1.c | 48 + .../libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwc90.s | 254 + .../libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwj90.s | 253 + .../libs/gmp/gmp-6.0.0/mpn/cray/cfp/submul_1.c | 49 + .../libs/gmp/gmp-6.0.0/mpn/cray/gmp-mparam.h | 79 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/hamdist.c | 43 + .../libs/gmp/gmp-6.0.0/mpn/cray/ieee/addmul_1.c | 112 + .../libs/gmp/gmp-6.0.0/mpn/cray/ieee/gmp-mparam.h | 73 + .../libs/gmp/gmp-6.0.0/mpn/cray/ieee/invert_limb.c | 128 + .../libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_1.c | 104 + .../gmp/gmp-6.0.0/mpn/cray/ieee/mul_basecase.c | 108 + .../gmp/gmp-6.0.0/mpn/cray/ieee/sqr_basecase.c | 106 + .../libs/gmp/gmp-6.0.0/mpn/cray/ieee/submul_1.c | 112 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/lshift.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/mulww.f | 63 + .../source/libs/gmp/gmp-6.0.0/mpn/cray/popcount.c | 43 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/rshift.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/cray/sub_n.c | 91 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add.c | 34 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/add_1.c | 34 + .../libs/gmp/gmp-6.0.0/mpn/generic/add_err1_n.c | 101 + .../libs/gmp/gmp-6.0.0/mpn/generic/add_err2_n.c | 117 + .../libs/gmp/gmp-6.0.0/mpn/generic/add_err3_n.c | 132 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/add_n.c | 90 + .../libs/gmp/gmp-6.0.0/mpn/generic/add_n_sub_n.c | 173 + .../libs/gmp/gmp-6.0.0/mpn/generic/addmul_1.c | 139 + .../libs/gmp/gmp-6.0.0/mpn/generic/bdiv_dbm1c.c | 59 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q.c | 77 + .../libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q_1.c | 126 + .../libs/gmp/gmp-6.0.0/mpn/generic/bdiv_qr.c | 85 + .../libs/gmp/gmp-6.0.0/mpn/generic/binvert.c | 102 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/broot.c | 196 + .../libs/gmp/gmp-6.0.0/mpn/generic/brootinv.c | 140 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrt.c | 48 + .../libs/gmp/gmp-6.0.0/mpn/generic/bsqrtinv.c | 105 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cmp.c | 34 + .../libs/gmp/gmp-6.0.0/mpn/generic/cnd_add_n.c | 70 + .../libs/gmp/gmp-6.0.0/mpn/generic/cnd_sub_n.c | 70 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/com.c | 45 + .../libs/gmp/gmp-6.0.0/mpn/generic/comb_tables.c | 48 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/copyd.c | 41 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/copyi.c | 43 + .../libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_q.c | 160 + .../libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_qr.c | 177 + .../libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_q.c | 87 + .../libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_qr.c | 249 + .../gmp/gmp-6.0.0/mpn/generic/dcpi1_divappr_q.c | 257 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/div_q.c | 323 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1.c | 126 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi1.c | 277 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi2.c | 195 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1u_pi2.c | 228 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2.c | 332 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2n_pi1.c | 85 + .../libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2u_pi1.c | 77 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/dive_1.c | 148 + .../libs/gmp/gmp-6.0.0/mpn/generic/diveby3.c | 174 + .../libs/gmp/gmp-6.0.0/mpn/generic/divexact.c | 294 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/divis.c | 201 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/divrem.c | 108 + .../libs/gmp/gmp-6.0.0/mpn/generic/divrem_1.c | 255 + .../libs/gmp/gmp-6.0.0/mpn/generic/divrem_2.c | 119 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dump.c | 100 + .../libs/gmp/gmp-6.0.0/mpn/generic/fib2_ui.c | 189 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd.c | 310 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_1.c | 199 + .../gmp/gmp-6.0.0/mpn/generic/gcd_subdiv_step.c | 205 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext.c | 558 + .../libs/gmp/gmp-6.0.0/mpn/generic/gcdext_1.c | 328 + .../libs/gmp/gmp-6.0.0/mpn/generic/gcdext_lehmer.c | 337 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/get_d.c | 412 + .../libs/gmp/gmp-6.0.0/mpn/generic/get_str.c | 553 + .../libs/gmp/gmp-6.0.0/mpn/generic/gmp-mparam.h | 33 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd.c | 183 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2.c | 447 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd2_jacobi.c | 366 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd_appr.c | 268 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd_jacobi.c | 244 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd_matrix.c | 266 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd_reduce.c | 247 + .../libs/gmp/gmp-6.0.0/mpn/generic/hgcd_step.c | 128 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/invert.c | 91 + .../libs/gmp/gmp-6.0.0/mpn/generic/invertappr.c | 314 + .../libs/gmp/gmp-6.0.0/mpn/generic/jacbase.c | 243 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi.c | 295 + .../libs/gmp/gmp-6.0.0/mpn/generic/jacobi_2.c | 352 + .../libs/gmp/gmp-6.0.0/mpn/generic/logops_n.c | 78 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/lshift.c | 73 + .../libs/gmp/gmp-6.0.0/mpn/generic/lshiftc.c | 74 + .../libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul.c | 322 + .../mpn/generic/matrix22_mul1_inverse_vector.c | 65 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1.c | 281 + .../libs/gmp/gmp-6.0.0/mpn/generic/mod_1_1.c | 332 + .../libs/gmp/gmp-6.0.0/mpn/generic/mod_1_2.c | 149 + .../libs/gmp/gmp-6.0.0/mpn/generic/mod_1_3.c | 157 + .../libs/gmp/gmp-6.0.0/mpn/generic/mod_1_4.c | 171 + .../libs/gmp/gmp-6.0.0/mpn/generic/mod_34lsub1.c | 131 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/mode1o.c | 236 + .../libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_q.c | 271 + .../libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_qr.c | 289 + .../libs/gmp/gmp-6.0.0/mpn/generic/mu_div_q.c | 185 + .../libs/gmp/gmp-6.0.0/mpn/generic/mu_div_qr.c | 416 + .../libs/gmp/gmp-6.0.0/mpn/generic/mu_divappr_q.c | 363 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul.c | 428 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/mul_1.c | 97 + .../libs/gmp/gmp-6.0.0/mpn/generic/mul_basecase.c | 166 + .../libs/gmp/gmp-6.0.0/mpn/generic/mul_fft.c | 1014 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/mul_n.c | 97 + .../gmp/gmp-6.0.0/mpn/generic/mullo_basecase.c | 52 + .../libs/gmp/gmp-6.0.0/mpn/generic/mullo_n.c | 256 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid.c | 256 + .../gmp/gmp-6.0.0/mpn/generic/mulmid_basecase.c | 83 + .../libs/gmp/gmp-6.0.0/mpn/generic/mulmid_n.c | 62 + .../libs/gmp/gmp-6.0.0/mpn/generic/mulmod_bnm1.c | 355 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/neg.c | 34 + .../gmp/gmp-6.0.0/mpn/generic/nussbaumer_mul.c | 71 + .../libs/gmp/gmp-6.0.0/mpn/generic/perfpow.c | 417 + .../libs/gmp/gmp-6.0.0/mpn/generic/perfsqr.c | 240 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/popham.c | 126 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/pow_1.c | 134 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/powlo.c | 174 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powm.c | 590 + .../libs/gmp/gmp-6.0.0/mpn/generic/pre_divrem_1.c | 146 + .../libs/gmp/gmp-6.0.0/mpn/generic/pre_mod_1.c | 62 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/random.c | 51 + .../libs/gmp/gmp-6.0.0/mpn/generic/random2.c | 106 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/redc_1.c | 57 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/redc_2.c | 110 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/redc_n.c | 81 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/remove.c | 172 + .../libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c | 415 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/rshift.c | 70 + .../libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_q.c | 100 + .../libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_qr.c | 119 + .../libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_q.c | 303 + .../libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_qr.c | 110 + .../gmp/gmp-6.0.0/mpn/generic/sbpi1_divappr_q.c | 199 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/scan0.c | 60 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/scan1.c | 60 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_aors_1.c | 60 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_div.c | 133 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_invert.c | 195 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_mul.c | 49 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_pi1_div.c | 173 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_powm.c | 438 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_sqr.c | 48 + .../libs/gmp/gmp-6.0.0/mpn/generic/sec_tabselect.c | 55 + .../libs/gmp/gmp-6.0.0/mpn/generic/set_str.c | 374 + .../libs/gmp/gmp-6.0.0/mpn/generic/sizeinbase.c | 50 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr.c | 99 + .../libs/gmp/gmp-6.0.0/mpn/generic/sqr_basecase.c | 325 + .../libs/gmp/gmp-6.0.0/mpn/generic/sqrmod_bnm1.c | 313 + .../libs/gmp/gmp-6.0.0/mpn/generic/sqrtrem.c | 357 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub.c | 34 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/sub_1.c | 34 + .../libs/gmp/gmp-6.0.0/mpn/generic/sub_err1_n.c | 101 + .../libs/gmp/gmp-6.0.0/mpn/generic/sub_err2_n.c | 117 + .../libs/gmp/gmp-6.0.0/mpn/generic/sub_err3_n.c | 132 + .../source/libs/gmp/gmp-6.0.0/mpn/generic/sub_n.c | 90 + .../libs/gmp/gmp-6.0.0/mpn/generic/submul_1.c | 139 + .../libs/gmp/gmp-6.0.0/mpn/generic/tdiv_qr.c | 389 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom22_mul.c | 210 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom2_sqr.c | 146 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom32_mul.c | 323 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom33_mul.c | 316 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom3_sqr.c | 226 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom42_mul.c | 234 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom42_mulmid.c | 238 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom43_mul.c | 234 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom44_mul.c | 236 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom4_sqr.c | 164 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom52_mul.c | 257 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom53_mul.c | 331 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom54_mul.c | 143 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom62_mul.c | 311 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom63_mul.c | 232 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom6_sqr.c | 182 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom6h_mul.c | 263 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom8_sqr.c | 226 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom8h_mul.c | 306 + .../gmp-6.0.0/mpn/generic/toom_couple_handling.c | 81 + .../gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm1.c | 73 + .../gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm2.c | 98 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm1.c | 90 + .../libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2.c | 131 + .../gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2exp.c | 128 + .../gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2rexp.c | 102 + .../gmp-6.0.0/mpn/generic/toom_interpolate_12pts.c | 361 + .../gmp-6.0.0/mpn/generic/toom_interpolate_16pts.c | 527 + .../gmp-6.0.0/mpn/generic/toom_interpolate_5pts.c | 199 + .../gmp-6.0.0/mpn/generic/toom_interpolate_6pts.c | 240 + .../gmp-6.0.0/mpn/generic/toom_interpolate_7pts.c | 266 + .../gmp-6.0.0/mpn/generic/toom_interpolate_8pts.c | 212 + .../libs/gmp/gmp-6.0.0/mpn/generic/trialdiv.c | 132 + .../libs/gmp/gmp-6.0.0/mpn/generic/udiv_w_sdiv.c | 142 + Build/source/libs/gmp/gmp-6.0.0/mpn/generic/zero.c | 42 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/README | 281 + .../libs/gmp/gmp-6.0.0/mpn/ia64/add_n_sub_n.asm | 309 + .../libs/gmp/gmp-6.0.0/mpn/ia64/addmul_1.asm | 602 + .../libs/gmp/gmp-6.0.0/mpn/ia64/addmul_2.asm | 708 + .../source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm | 856 + .../libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh1_n.asm | 48 + .../libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh2_n.asm | 48 + .../libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlshC_n.asm | 397 + .../libs/gmp/gmp-6.0.0/mpn/ia64/bdiv_dbm1c.asm | 516 + .../libs/gmp/gmp-6.0.0/mpn/ia64/cnd_aors_n.asm | 259 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyd.asm | 186 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyi.asm | 182 + .../source/libs/gmp/gmp-6.0.0/mpn/ia64/dive_1.asm | 236 + .../libs/gmp/gmp-6.0.0/mpn/ia64/divrem_1.asm | 477 + .../libs/gmp/gmp-6.0.0/mpn/ia64/divrem_2.asm | 280 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gcd_1.asm | 234 + .../libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h | 204 + .../source/libs/gmp/gmp-6.0.0/mpn/ia64/hamdist.asm | 365 + .../libs/gmp/gmp-6.0.0/mpn/ia64/ia64-defs.m4 | 147 + .../libs/gmp/gmp-6.0.0/mpn/ia64/invert_limb.asm | 105 + .../libs/gmp/gmp-6.0.0/mpn/ia64/logops_n.asm | 292 + .../libs/gmp/gmp-6.0.0/mpn/ia64/lorrshift.asm | 358 + .../source/libs/gmp/gmp-6.0.0/mpn/ia64/lshiftc.asm | 463 + .../libs/gmp/gmp-6.0.0/mpn/ia64/mod_34lsub1.asm | 236 + .../source/libs/gmp/gmp-6.0.0/mpn/ia64/mode1o.asm | 342 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_1.asm | 584 + Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_2.asm | 620 + .../libs/gmp/gmp-6.0.0/mpn/ia64/popcount.asm | 200 + .../libs/gmp/gmp-6.0.0/mpn/ia64/rsh1aors_n.asm | 447 + .../libs/gmp/gmp-6.0.0/mpn/ia64/sec_tabselect.asm | 150 + .../gmp/gmp-6.0.0/mpn/ia64/sqr_diag_addlsh1.asm | 144 + .../libs/gmp/gmp-6.0.0/mpn/ia64/submul_1.asm | 647 + .../libs/gmp/gmp-6.0.0/mpn/lisp/gmpasm-mode.el | 385 + Build/source/libs/gmp/gmp-6.0.0/mpn/m4-ccas | 107 + Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/README | 138 + .../source/libs/gmp/gmp-6.0.0/mpn/m68k/aors_n.asm | 99 + .../libs/gmp/gmp-6.0.0/mpn/m68k/gmp-mparam.h | 76 + .../source/libs/gmp/gmp-6.0.0/mpn/m68k/lshift.asm | 175 + .../libs/gmp/gmp-6.0.0/mpn/m68k/m68k-defs.m4 | 230 + .../gmp/gmp-6.0.0/mpn/m68k/mc68020/aorsmul_1.asm | 101 + .../libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/mul_1.asm | 96 + .../libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/udiv.asm | 45 + .../libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/umul.asm | 44 + .../source/libs/gmp/gmp-6.0.0/mpn/m68k/rshift.asm | 175 + .../libs/gmp/gmp-6.0.0/mpn/m68k/t-m68k-defs.pl | 91 + Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/README | 61 + Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/add_n.s | 113 + .../libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/add_n.S | 209 + .../libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/addmul_1.s | 70 + .../libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/mul_1.s | 68 + .../libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/sub_n.S | 285 + Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mul_1.s | 136 + Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/sub_n.s | 115 + .../libs/gmp/gmp-6.0.0/mpn/minithres/gmp-mparam.h | 109 + .../source/libs/gmp/gmp-6.0.0/mpn/mips32/add_n.asm | 124 + .../libs/gmp/gmp-6.0.0/mpn/mips32/addmul_1.asm | 101 + .../libs/gmp/gmp-6.0.0/mpn/mips32/gmp-mparam.h | 72 + .../libs/gmp/gmp-6.0.0/mpn/mips32/lshift.asm | 99 + .../libs/gmp/gmp-6.0.0/mpn/mips32/mips-defs.m4 | 80 + Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips.m4 | 80 + .../source/libs/gmp/gmp-6.0.0/mpn/mips32/mul_1.asm | 89 + .../libs/gmp/gmp-6.0.0/mpn/mips32/rshift.asm | 96 + .../source/libs/gmp/gmp-6.0.0/mpn/mips32/sub_n.asm | 123 + .../libs/gmp/gmp-6.0.0/mpn/mips32/submul_1.asm | 101 + .../source/libs/gmp/gmp-6.0.0/mpn/mips32/umul.asm | 45 + Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/README | 60 + .../source/libs/gmp/gmp-6.0.0/mpn/mips64/add_n.asm | 134 + .../libs/gmp/gmp-6.0.0/mpn/mips64/addmul_1.asm | 101 + .../libs/gmp/gmp-6.0.0/mpn/mips64/gmp-mparam.h | 72 + .../libs/gmp/gmp-6.0.0/mpn/mips64/lshift.asm | 99 + .../source/libs/gmp/gmp-6.0.0/mpn/mips64/mul_1.asm | 92 + .../libs/gmp/gmp-6.0.0/mpn/mips64/rshift.asm | 96 + .../libs/gmp/gmp-6.0.0/mpn/mips64/sqr_diagonal.asm | 77 + .../source/libs/gmp/gmp-6.0.0/mpn/mips64/sub_n.asm | 134 + .../libs/gmp/gmp-6.0.0/mpn/mips64/submul_1.asm | 101 + .../source/libs/gmp/gmp-6.0.0/mpn/mips64/umul.asm | 45 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/README | 162 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/add_n.asm | 63 + .../libs/gmp/gmp-6.0.0/mpn/pa32/gmp-mparam.h | 61 + .../gmp/gmp-6.0.0/mpn/pa32/hppa1_1/addmul_1.asm | 106 + .../gmp/gmp-6.0.0/mpn/pa32/hppa1_1/gmp-mparam.h | 72 + .../libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/mul_1.asm | 102 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/add_n.asm | 83 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/addmul_1.asm | 201 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/lshift.asm | 95 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/rshift.asm | 92 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/sub_n.asm | 84 + .../gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/submul_1.asm | 207 + .../gmp-6.0.0/mpn/pa32/hppa1_1/sqr_diagonal.asm | 60 + .../gmp/gmp-6.0.0/mpn/pa32/hppa1_1/submul_1.asm | 115 + .../libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/udiv.asm | 102 + .../libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/umul.asm | 47 + .../libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/add_n.asm | 107 + .../gmp/gmp-6.0.0/mpn/pa32/hppa2_0/gmp-mparam.h | 167 + .../gmp-6.0.0/mpn/pa32/hppa2_0/sqr_diagonal.asm | 112 + .../libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sub_n.asm | 107 + .../source/libs/gmp/gmp-6.0.0/mpn/pa32/lshift.asm | 75 + .../source/libs/gmp/gmp-6.0.0/mpn/pa32/pa-defs.m4 | 64 + .../source/libs/gmp/gmp-6.0.0/mpn/pa32/rshift.asm | 72 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/sub_n.asm | 64 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/udiv.asm | 291 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/README | 78 + .../libs/gmp/gmp-6.0.0/mpn/pa64/addmul_1.asm | 693 + .../source/libs/gmp/gmp-6.0.0/mpn/pa64/aors_n.asm | 130 + .../libs/gmp/gmp-6.0.0/mpn/pa64/aorslsh1_n.asm | 228 + .../libs/gmp/gmp-6.0.0/mpn/pa64/gmp-mparam.h | 247 + .../source/libs/gmp/gmp-6.0.0/mpn/pa64/lshift.asm | 114 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/mul_1.asm | 646 + .../source/libs/gmp/gmp-6.0.0/mpn/pa64/rshift.asm | 111 + .../libs/gmp/gmp-6.0.0/mpn/pa64/sqr_diagonal.asm | 191 + .../libs/gmp/gmp-6.0.0/mpn/pa64/submul_1.asm | 700 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/udiv.asm | 125 + Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/umul.asm | 98 + .../source/libs/gmp/gmp-6.0.0/mpn/power/add_n.asm | 83 + .../libs/gmp/gmp-6.0.0/mpn/power/addmul_1.asm | 126 + .../libs/gmp/gmp-6.0.0/mpn/power/gmp-mparam.h | 69 + .../source/libs/gmp/gmp-6.0.0/mpn/power/lshift.asm | 61 + .../source/libs/gmp/gmp-6.0.0/mpn/power/mul_1.asm | 113 + .../source/libs/gmp/gmp-6.0.0/mpn/power/rshift.asm | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/power/sdiv.asm | 39 + .../source/libs/gmp/gmp-6.0.0/mpn/power/sub_n.asm | 85 + .../libs/gmp/gmp-6.0.0/mpn/power/submul_1.asm | 131 + Build/source/libs/gmp/gmp-6.0.0/mpn/power/umul.asm | 43 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/750/com.asm | 79 + .../gmp/gmp-6.0.0/mpn/powerpc32/750/gmp-mparam.h | 192 + .../gmp/gmp-6.0.0/mpn/powerpc32/750/lshift.asm | 155 + .../gmp/gmp-6.0.0/mpn/powerpc32/750/rshift.asm | 153 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc32/README | 180 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/addlsh1_n.asm | 100 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/addmul_1.asm | 155 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aix.m4 | 82 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/aors_n.asm | 157 + .../gmp/gmp-6.0.0/mpn/powerpc32/bdiv_dbm1c.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/darwin.m4 | 91 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/diveby3.asm | 93 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/divrem_2.asm | 182 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/eabi.m4 | 86 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc32/elf.m4 | 97 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/gmp-mparam.h | 217 + .../gmp/gmp-6.0.0/mpn/powerpc32/invert_limb.asm | 142 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/lshift.asm | 166 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/lshiftc.asm | 168 + .../gmp/gmp-6.0.0/mpn/powerpc32/mod_34lsub1.asm | 145 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/mode1o.asm | 127 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/mul_1.asm | 101 + .../gmp/gmp-6.0.0/mpn/powerpc32/p3-p7/aors_n.asm | 186 + .../gmp/gmp-6.0.0/mpn/powerpc32/p3/gmp-mparam.h | 155 + .../gmp/gmp-6.0.0/mpn/powerpc32/p4/gmp-mparam.h | 204 + .../gmp/gmp-6.0.0/mpn/powerpc32/p5/gmp-mparam.h | 156 + .../gmp/gmp-6.0.0/mpn/powerpc32/p6/gmp-mparam.h | 165 + .../gmp/gmp-6.0.0/mpn/powerpc32/p7/gmp-mparam.h | 159 + .../gmp/gmp-6.0.0/mpn/powerpc32/powerpc-defs.m4 | 104 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/rshift.asm | 164 + .../gmp/gmp-6.0.0/mpn/powerpc32/sec_tabselect.asm | 141 + .../gmp-6.0.0/mpn/powerpc32/sqr_diag_addlsh1.asm | 80 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/sublsh1_n.asm | 101 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/submul_1.asm | 147 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/umul.asm | 50 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyd.asm | 203 + .../libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyi.asm | 198 + .../gmp/gmp-6.0.0/mpn/powerpc32/vmx/logops_n.asm | 310 + .../gmp-6.0.0/mpn/powerpc32/vmx/mod_34lsub1.asm | 386 + .../gmp/gmp-6.0.0/mpn/powerpc32/vmx/popcount.asm | 34 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc64/README | 166 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc64/aix.m4 | 97 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/com.asm | 136 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/copyd.asm | 84 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/copyi.asm | 78 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/darwin.m4 | 119 + .../source/libs/gmp/gmp-6.0.0/mpn/powerpc64/elf.m4 | 123 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/logops_n.asm | 151 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/lshift.asm | 207 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/lshiftc.asm | 210 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode32/add_n.asm | 86 + .../gmp-6.0.0/mpn/powerpc64/mode32/addmul_1.asm | 79 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode32/mul_1.asm | 73 + .../gmp-6.0.0/mpn/powerpc64/mode32/p4/gmp-mparam.h | 173 + .../mpn/powerpc64/mode32/sqr_diagonal.asm | 117 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode32/sub_n.asm | 88 + .../gmp-6.0.0/mpn/powerpc64/mode32/submul_1.asm | 82 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/aors_n.asm | 189 + .../gmp-6.0.0/mpn/powerpc64/mode64/aorsmul_1.asm | 225 + .../mpn/powerpc64/mode64/aorsorrlsh1_n.asm | 43 + .../mpn/powerpc64/mode64/aorsorrlsh2_n.asm | 43 + .../mpn/powerpc64/mode64/aorsorrlshC_n.asm | 187 + .../gmp-6.0.0/mpn/powerpc64/mode64/bdiv_dbm1c.asm | 132 + .../gmp-6.0.0/mpn/powerpc64/mode64/cnd_aors_n.asm | 196 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/dive_1.asm | 132 + .../gmp-6.0.0/mpn/powerpc64/mode64/divrem_1.asm | 274 + .../gmp-6.0.0/mpn/powerpc64/mode64/divrem_2.asm | 187 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/gcd_1.asm | 122 + .../gmp-6.0.0/mpn/powerpc64/mode64/gmp-mparam.h | 82 + .../gmp-6.0.0/mpn/powerpc64/mode64/invert_limb.asm | 88 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_1.asm | 164 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_4.asm | 270 + .../gmp-6.0.0/mpn/powerpc64/mode64/mod_34lsub1.asm | 132 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/mode1o.asm | 117 + .../gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_1.asm | 168 + .../mpn/powerpc64/mode64/mul_basecase.asm | 708 + .../gmp-6.0.0/mpn/powerpc64/mode64/p3/gmp-mparam.h | 179 + .../gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h | 208 + .../gmp-6.0.0/mpn/powerpc64/mode64/p5/gmp-mparam.h | 219 + .../mpn/powerpc64/mode64/p6/aorsmul_1.asm | 183 + .../gmp-6.0.0/mpn/powerpc64/mode64/p6/gmp-mparam.h | 160 + .../mpn/powerpc64/mode64/p6/mul_basecase.asm | 589 + .../gmp-6.0.0/mpn/powerpc64/mode64/p7/aormul_2.asm | 135 + .../gmp-6.0.0/mpn/powerpc64/mode64/p7/aors_n.asm | 128 + .../mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm | 43 + .../mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm | 43 + .../mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm | 129 + .../gmp-6.0.0/mpn/powerpc64/mode64/p7/gcd_1.asm | 110 + .../gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h | 243 + .../gmp-6.0.0/mpn/powerpc64/mode64/rsh1aors_n.asm | 172 + .../mpn/powerpc64/mode64/sqr_basecase.asm | 863 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshift.asm | 132 + .../gmp/gmp-6.0.0/mpn/powerpc64/p6/lshiftc.asm | 136 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/rshift.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyd.asm | 128 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyi.asm | 129 + .../gmp/gmp-6.0.0/mpn/powerpc64/p7/hamdist.asm | 110 + .../gmp/gmp-6.0.0/mpn/powerpc64/p7/popcount.asm | 90 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/rshift.asm | 207 + .../gmp/gmp-6.0.0/mpn/powerpc64/sec_tabselect.asm | 147 + .../libs/gmp/gmp-6.0.0/mpn/powerpc64/umul.asm | 53 + .../gmp/gmp-6.0.0/mpn/powerpc64/vmx/popcount.asm | 230 + Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/README | 37 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/addmul_1.asm | 93 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/copyd.asm | 145 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/copyi.asm | 69 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/addmul_1.asm | 72 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/aors_n.asm | 137 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/aorslsh1_n.asm | 173 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/bdiv_dbm1c.asm | 65 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/gmp-mparam.h | 207 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_1.asm | 66 + .../gmp-6.0.0/mpn/s390_32/esame/mul_basecase.asm | 130 + .../gmp-6.0.0/mpn/s390_32/esame/sqr_basecase.asm | 203 + .../gmp/gmp-6.0.0/mpn/s390_32/esame/submul_1.asm | 70 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/gmp-mparam.h | 138 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/logops_n.asm | 295 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/lshift.asm | 144 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/lshiftc.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/mul_1.asm | 85 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/rshift.asm | 138 + .../libs/gmp/gmp-6.0.0/mpn/s390_32/submul_1.asm | 93 + Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/README | 88 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/addmul_1.asm | 72 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/aorrlsh1_n.asm | 168 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/aors_n.asm | 136 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/bdiv_dbm1c.asm | 65 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/copyd.asm | 144 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/copyi.asm | 68 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/gmp-mparam.h | 175 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/invert_limb.asm | 94 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/logops_n.asm | 291 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/lshift.asm | 196 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/lshiftc.asm | 207 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/mod_34lsub1.asm | 109 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/mul_1.asm | 66 + .../gmp/gmp-6.0.0/mpn/s390_64/mul_basecase.asm | 130 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/rshift.asm | 195 + .../gmp/gmp-6.0.0/mpn/s390_64/sqr_basecase.asm | 203 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/sublsh1_n.asm | 169 + .../libs/gmp/gmp-6.0.0/mpn/s390_64/submul_1.asm | 70 + .../gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h | 231 + Build/source/libs/gmp/gmp-6.0.0/mpn/sh/add_n.asm | 59 + .../libs/gmp/gmp-6.0.0/mpn/sh/sh2/addmul_1.asm | 65 + .../source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/mul_1.asm | 62 + .../libs/gmp/gmp-6.0.0/mpn/sh/sh2/submul_1.asm | 65 + Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sub_n.asm | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/README | 71 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/add_n.asm | 245 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/addmul_1.asm | 155 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/gmp-mparam.h | 67 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/lshift.asm | 105 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/mul_1.asm | 146 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/rshift.asm | 102 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/sparc-defs.m4 | 79 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/sub_n.asm | 335 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/submul_1.asm | 155 + .../source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv.asm | 167 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/udiv_nfp.asm | 202 + .../gmp-6.0.0/mpn/sparc32/ultrasparct1/add_n.asm | 70 + .../mpn/sparc32/ultrasparct1/addmul_1.asm | 90 + .../mpn/sparc32/ultrasparct1/gmp-mparam.h | 153 + .../gmp-6.0.0/mpn/sparc32/ultrasparct1/mul_1.asm | 83 + .../mpn/sparc32/ultrasparct1/sqr_diagonal.asm | 55 + .../gmp-6.0.0/mpn/sparc32/ultrasparct1/sub_n.asm | 70 + .../mpn/sparc32/ultrasparct1/submul_1.asm | 91 + .../source/libs/gmp/gmp-6.0.0/mpn/sparc32/umul.asm | 77 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/addmul_1.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/gmp-mparam.h | 73 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/mul_1.asm | 112 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/submul_1.asm | 67 + .../mpn/sparc32/v8/supersparc/gmp-mparam.h | 73 + .../gmp-6.0.0/mpn/sparc32/v8/supersparc/udiv.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/udiv.asm | 131 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v8/umul.asm | 40 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/README | 4 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/add_n.asm | 129 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/addmul_1.asm | 306 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/gmp-mparam.h | 204 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/mul_1.asm | 287 + .../gmp/gmp-6.0.0/mpn/sparc32/v9/sqr_diagonal.asm | 462 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sub_n.asm | 129 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/submul_1.asm | 316 + .../libs/gmp/gmp-6.0.0/mpn/sparc32/v9/udiv.asm | 52 + Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/README | 125 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/copyd.asm | 89 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/copyi.asm | 86 + .../source/libs/gmp/gmp-6.0.0/mpn/sparc64/dive_1.c | 158 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/divrem_1.c | 243 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/gcd_1.asm | 135 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/gmp-mparam.h | 139 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/lshift.asm | 140 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/lshiftc.asm | 147 + .../source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1.c | 239 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1_4.c | 236 + .../source/libs/gmp/gmp-6.0.0/mpn/sparc64/mode1o.c | 197 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/rshift.asm | 142 + .../gmp/gmp-6.0.0/mpn/sparc64/sec_tabselect.asm | 162 + .../libs/gmp/gmp-6.0.0/mpn/sparc64/sparc64.h | 219 + .../gmp-6.0.0/mpn/sparc64/ultrasparc1234/add_n.asm | 241 + .../mpn/sparc64/ultrasparc1234/addmul_1.asm | 606 + .../mpn/sparc64/ultrasparc1234/addmul_2.asm | 551 + .../mpn/sparc64/ultrasparc1234/lshiftc.asm | 165 + .../gmp-6.0.0/mpn/sparc64/ultrasparc1234/mul_1.asm | 580 + .../mpn/sparc64/ultrasparc1234/sqr_diagonal.asm | 342 + .../gmp-6.0.0/mpn/sparc64/ultrasparc1234/sub_n.asm | 241 + .../mpn/sparc64/ultrasparc1234/submul_1.asm | 68 + .../mpn/sparc64/ultrasparc34/gmp-mparam.h | 219 + .../gmp-6.0.0/mpn/sparc64/ultrasparct1/add_n.asm | 68 + .../mpn/sparc64/ultrasparct1/addlsh1_n.asm | 41 + .../mpn/sparc64/ultrasparct1/addlsh2_n.asm | 41 + .../mpn/sparc64/ultrasparct1/addlshC_n.asm | 69 + .../mpn/sparc64/ultrasparct1/addmul_1.asm | 86 + .../mpn/sparc64/ultrasparct1/gmp-mparam.h | 154 + .../gmp-6.0.0/mpn/sparc64/ultrasparct1/mul_1.asm | 82 + .../mpn/sparc64/ultrasparct1/rsblsh1_n.asm | 41 + .../mpn/sparc64/ultrasparct1/rsblsh2_n.asm | 41 + .../mpn/sparc64/ultrasparct1/rsblshC_n.asm | 69 + .../gmp-6.0.0/mpn/sparc64/ultrasparct1/sub_n.asm | 68 + .../mpn/sparc64/ultrasparct1/sublsh1_n.asm | 41 + .../mpn/sparc64/ultrasparct1/sublsh2_n.asm | 41 + .../mpn/sparc64/ultrasparct1/sublshC_n.asm | 69 + .../mpn/sparc64/ultrasparct1/submul_1.asm | 86 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/add_n.asm | 126 + .../mpn/sparc64/ultrasparct3/addmul_1.asm | 182 + .../mpn/sparc64/ultrasparct3/aormul_2.asm | 228 + .../mpn/sparc64/ultrasparct3/aormul_4.asm | 219 + .../mpn/sparc64/ultrasparct3/aorslsh_n.asm | 147 + .../mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm | 147 + .../mpn/sparc64/ultrasparct3/cnd_aors_n.asm | 143 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/dive_1.asm | 129 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/hamdist.asm | 78 + .../mpn/sparc64/ultrasparct3/invert_limb.asm | 92 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.asm | 77 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.m4 | 88 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_1_4.asm | 233 + .../mpn/sparc64/ultrasparct3/mod_34lsub1.asm | 117 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/mode1o.asm | 82 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/mul_1.asm | 174 + .../mpn/sparc64/ultrasparct3/popcount.asm | 70 + .../mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm | 93 + .../gmp-6.0.0/mpn/sparc64/ultrasparct3/sub_n.asm | 144 + .../mpn/sparc64/ultrasparct3/submul_1.asm | 170 + .../source/libs/gmp/gmp-6.0.0/mpn/thumb/add_n.asm | 63 + .../source/libs/gmp/gmp-6.0.0/mpn/thumb/sub_n.asm | 63 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/add_n.asm | 64 + .../source/libs/gmp/gmp-6.0.0/mpn/vax/addmul_1.asm | 124 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/elf.m4 | 54 + .../source/libs/gmp/gmp-6.0.0/mpn/vax/gmp-mparam.h | 60 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/lshift.asm | 59 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/mul_1.asm | 118 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/rshift.asm | 57 + Build/source/libs/gmp/gmp-6.0.0/mpn/vax/sub_n.asm | 64 + .../source/libs/gmp/gmp-6.0.0/mpn/vax/submul_1.asm | 124 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/README | 525 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aors_n.asm | 202 + .../libs/gmp/gmp-6.0.0/mpn/x86/aorsmul_1.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh1_n.asm | 53 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh2_n.asm | 53 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlshC_n.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/aors_n.asm | 159 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/aorslshC_n.asm | 247 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/bdiv_q_1.asm | 35 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_add_n.asm | 113 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_sub_n.asm | 124 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/dive_1.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h | 201 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/logops_n.asm | 151 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/lshift.asm | 218 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/lshiftc.asm | 159 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyd.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyi.asm | 34 + .../gmp/gmp-6.0.0/mpn/x86/atom/mmx/hamdist.asm | 34 + .../gmp/gmp-6.0.0/mpn/x86/atom/mod_34lsub1.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/mode1o.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/rshift.asm | 152 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/aorsmul_1.asm | 174 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/bdiv_dbm1c.asm | 34 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/divrem_1.asm | 34 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_1.asm | 34 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_4.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_1.asm | 124 + .../gmp-6.0.0/mpn/x86/atom/sse2/mul_basecase.asm | 501 + .../gmp/gmp-6.0.0/mpn/x86/atom/sse2/popcount.asm | 35 + .../gmp-6.0.0/mpn/x86/atom/sse2/sqr_basecase.asm | 634 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh1_n.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh2_n.asm | 57 + .../libs/gmp/gmp-6.0.0/mpn/x86/bd1/gmp-mparam.h | 208 + .../libs/gmp/gmp-6.0.0/mpn/x86/bd2/gmp-mparam.h | 209 + .../libs/gmp/gmp-6.0.0/mpn/x86/bdiv_dbm1c.asm | 129 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_q_1.asm | 208 + .../libs/gmp/gmp-6.0.0/mpn/x86/bobcat/gmp-mparam.h | 197 + .../libs/gmp/gmp-6.0.0/mpn/x86/cnd_aors_n.asm | 124 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyd.asm | 91 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyi.asm | 99 + .../libs/gmp/gmp-6.0.0/mpn/x86/core2/gmp-mparam.h | 200 + .../gmp/gmp-6.0.0/mpn/x86/coreihwl/gmp-mparam.h | 210 + .../gmp/gmp-6.0.0/mpn/x86/coreinhm/gmp-mparam.h | 224 + .../gmp/gmp-6.0.0/mpn/x86/coreisbr/gmp-mparam.h | 203 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/darwin.m4 | 82 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/dive_1.asm | 189 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_1.asm | 233 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_2.asm | 199 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/com.c | 32 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat.c | 473 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/fat_entry.asm | 220 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gcd_1.c | 32 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/gmp-mparam.h | 71 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/lshiftc.c | 32 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1.c | 32 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_1.c | 36 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_2.c | 36 + .../libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_4.c | 36 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mode1o.c | 32 + .../gmp/gmp-6.0.0/mpn/x86/fat/mullo_basecase.c | 32 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_1.c | 32 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_2.c | 32 + .../libs/gmp/gmp-6.0.0/mpn/x86/geode/gmp-mparam.h | 141 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/gmp-mparam.h | 38 + .../libs/gmp/gmp-6.0.0/mpn/x86/i486/gmp-mparam.h | 69 + .../libs/gmp/gmp-6.0.0/mpn/x86/k10/gmp-mparam.h | 211 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/README | 251 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/aors_n.asm | 337 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/aorsmul_1.asm | 391 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/k6/cross.pl | 182 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/divrem_1.asm | 203 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gcd_1.asm | 362 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/gmp-mparam.h | 166 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/copyd.asm | 118 + .../gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/lshift.asm | 294 + .../gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/rshift.asm | 293 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/com.asm | 103 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/dive_1.asm | 281 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/logops_n.asm | 226 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/lshift.asm | 130 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/popham.asm | 236 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/rshift.asm | 130 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mod_34lsub1.asm | 190 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mode1o.asm | 175 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_1.asm | 292 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_basecase.asm | 612 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/pre_mod_1.asm | 146 + .../libs/gmp/gmp-6.0.0/mpn/x86/k6/sqr_basecase.asm | 680 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/README | 174 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/addlsh1_n.asm | 196 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/aors_n.asm | 258 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/aorsmul_1.asm | 167 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/bdiv_q_1.asm | 244 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/dive_1.asm | 207 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gcd_1.asm | 186 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h | 241 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/invert_limb.asm | 193 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/com.asm | 125 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyd.asm | 144 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyi.asm | 157 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/divrem_1.asm | 832 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/lshift.asm | 481 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/popham.asm | 213 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/rshift.asm | 480 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_1.asm | 221 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_4.asm | 260 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_34lsub1.asm | 188 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mode1o.asm | 180 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_1.asm | 237 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_basecase.asm | 602 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/sqr_basecase.asm | 635 + .../libs/gmp/gmp-6.0.0/mpn/x86/k7/sublsh1_n.asm | 173 + .../libs/gmp/gmp-6.0.0/mpn/x86/k8/gmp-mparam.h | 198 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/lshift.asm | 106 + .../gmp/gmp-6.0.0/mpn/x86/mmx/sec_tabselect.asm | 163 + .../libs/gmp/gmp-6.0.0/mpn/x86/mod_34lsub1.asm | 183 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_1.asm | 140 + .../libs/gmp/gmp-6.0.0/mpn/x86/mul_basecase.asm | 223 + .../libs/gmp/gmp-6.0.0/mpn/x86/nano/gmp-mparam.h | 162 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/README | 125 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/aors_n.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/aorsmul_1.asm | 320 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/bdiv_q_1.asm | 286 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/p6/copyd.asm | 178 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/dive_1.asm | 266 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gcd_1.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/gmp-mparam.h | 194 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/lshsub_n.asm | 169 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/divrem_1.asm | 767 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/gmp-mparam.h | 198 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/lshift.asm | 38 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/popham.asm | 39 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/rshift.asm | 38 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mod_34lsub1.asm | 190 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mode1o.asm | 169 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/mul_basecase.asm | 607 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/p3mmx/popham.asm | 42 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/sqr_basecase.asm | 649 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/addmul_1.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/gmp-mparam.h | 197 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_1.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_4.asm | 34 + .../libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_1.asm | 38 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_basecase.asm | 35 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/popcount.asm | 35 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/sqr_basecase.asm | 35 + .../gmp/gmp-6.0.0/mpn/x86/p6/sse2/submul_1.asm | 35 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/README | 181 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/aors_n.asm | 203 + .../gmp/gmp-6.0.0/mpn/x86/pentium/aorsmul_1.asm | 144 + .../gmp/gmp-6.0.0/mpn/x86/pentium/bdiv_q_1.asm | 260 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/com.asm | 181 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyd.asm | 146 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyi.asm | 164 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/dive_1.asm | 272 + .../gmp/gmp-6.0.0/mpn/x86/pentium/gmp-mparam.h | 76 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/hamdist.asm | 143 + .../gmp/gmp-6.0.0/mpn/x86/pentium/logops_n.asm | 176 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/lshift.asm | 243 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mmx/gmp-mparam.h | 163 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mmx/hamdist.asm | 40 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mmx/lshift.asm | 463 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mmx/mul_1.asm | 371 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mmx/rshift.asm | 468 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mod_34lsub1.asm | 192 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/mode1o.asm | 266 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_1.asm | 177 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_2.asm | 150 + .../gmp/gmp-6.0.0/mpn/x86/pentium/mul_basecase.asm | 143 + .../gmp/gmp-6.0.0/mpn/x86/pentium/popcount.asm | 134 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium/rshift.asm | 243 + .../gmp/gmp-6.0.0/mpn/x86/pentium/sqr_basecase.asm | 528 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium4/README | 124 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyd.asm | 71 + .../libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyi.asm | 93 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/lshift.asm | 39 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/popham.asm | 203 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/rshift.asm | 39 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/add_n.asm | 101 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/addlsh1_n.asm | 108 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/addmul_1.asm | 189 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm | 141 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_q_1.asm | 233 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_add_n.asm | 95 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_sub_n.asm | 114 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/dive_1.asm | 215 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/divrem_1.asm | 645 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/gmp-mparam.h | 206 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_1.asm | 166 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_4.asm | 269 + .../mpn/x86/pentium4/sse2/mod_34lsub1.asm | 175 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mode1o.asm | 174 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_1.asm | 164 + .../mpn/x86/pentium4/sse2/mul_basecase.asm | 662 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/popcount.asm | 280 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/rsh1add_n.asm | 126 + .../mpn/x86/pentium4/sse2/sqr_basecase.asm | 705 + .../gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sub_n.asm | 119 + .../gmp-6.0.0/mpn/x86/pentium4/sse2/submul_1.asm | 182 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/rshift.asm | 108 + .../libs/gmp/gmp-6.0.0/mpn/x86/sec_tabselect.asm | 115 + .../libs/gmp/gmp-6.0.0/mpn/x86/sqr_basecase.asm | 359 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp.sh | 71 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp2.pl | 147 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/udiv.asm | 52 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86/umul.asm | 51 + .../source/libs/gmp/gmp-6.0.0/mpn/x86/x86-defs.m4 | 999 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/README | 74 + .../gmp/gmp-6.0.0/mpn/x86_64/addaddmul_1msb0.asm | 170 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/addmul_2.asm | 184 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh1_n.asm | 170 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh2_n.asm | 53 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlshC_n.asm | 160 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh_n.asm | 176 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err1_n.asm | 225 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err2_n.asm | 172 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err3_n.asm | 156 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aors_n.asm | 169 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/aorsmul_1.asm | 180 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/addmul_2.asm | 186 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh1_n.asm | 238 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh2_n.asm | 191 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aors_n.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/aorsmul_1.asm | 190 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/com.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyd.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyi.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/dive_1.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h | 220 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshift.asm | 123 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshiftc.asm | 127 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_1.asm | 143 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_2.asm | 186 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/popcount.asm | 35 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/redc_1.asm | 574 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/rsh1aors_n.asm | 287 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rshift.asm | 121 + .../gmp/gmp-6.0.0/mpn/x86_64/atom/sublsh1_n.asm | 242 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/README | 11 + .../gmp/gmp-6.0.0/mpn/x86_64/bd1/aorrlsh1_n.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/bd1/aorsmul_1.asm | 181 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/com.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyd.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyi.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gcd_1.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h | 236 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/hamdist.asm | 38 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_1.asm | 184 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_2.asm | 192 + .../gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_basecase.asm | 416 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/popcount.asm | 38 + .../gmp/gmp-6.0.0/mpn/x86_64/bd1/sec_tabselect.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/bd1/sublsh1_n.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h | 237 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_dbm1c.asm | 106 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_q_1.asm | 167 + .../gmp/gmp-6.0.0/mpn/x86_64/bobcat/aors_n.asm | 150 + .../gmp/gmp-6.0.0/mpn/x86_64/bobcat/aorsmul_1.asm | 183 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyd.asm | 91 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyi.asm | 94 + .../gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h | 208 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_1.asm | 187 + .../gmp-6.0.0/mpn/x86_64/bobcat/mul_basecase.asm | 486 + .../gmp/gmp-6.0.0/mpn/x86_64/bobcat/redc_1.asm | 502 + .../gmp-6.0.0/mpn/x86_64/bobcat/sqr_basecase.asm | 565 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/cnd_aors_n.asm | 183 + Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/com.asm | 95 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyd.asm | 93 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyi.asm | 92 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh1_n.asm | 53 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh2_n.asm | 53 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh_n.asm | 38 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/aors_err1_n.asm | 225 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_n.asm | 141 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/aorsmul_1.asm | 178 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyd.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyi.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/divrem_1.asm | 237 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gcd_1.asm | 144 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/gmp-mparam.h | 217 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshift.asm | 149 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/lshiftc.asm | 159 + .../gmp-6.0.0/mpn/x86_64/core2/mul_basecase.asm | 975 + .../gmp-6.0.0/mpn/x86_64/core2/mullo_basecase.asm | 427 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/popcount.asm | 35 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/redc_1.asm | 425 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/rsh1aors_n.asm | 169 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rshift.asm | 147 + .../gmp-6.0.0/mpn/x86_64/core2/sec_tabselect.asm | 37 + .../gmp-6.0.0/mpn/x86_64/core2/sqr_basecase.asm | 984 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh1_n.asm | 47 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh2_n.asm | 47 + .../gmp/gmp-6.0.0/mpn/x86_64/core2/sublshC_n.asm | 158 + .../gmp/gmp-6.0.0/mpn/x86_64/coreihwl/addmul_2.asm | 238 + .../gmp-6.0.0/mpn/x86_64/coreihwl/aorsmul_1.asm | 198 + .../gmp/gmp-6.0.0/mpn/x86_64/coreihwl/gmp-mparam.h | 237 + .../gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_1.asm | 155 + .../gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_2.asm | 173 + .../gmp-6.0.0/mpn/x86_64/coreihwl/mul_basecase.asm | 441 + .../mpn/x86_64/coreihwl/mullo_basecase.asm | 426 + .../gmp/gmp-6.0.0/mpn/x86_64/coreihwl/redc_1.asm | 433 + .../gmp-6.0.0/mpn/x86_64/coreihwl/sqr_basecase.asm | 506 + .../gmp-6.0.0/mpn/x86_64/coreinhm/aorrlsh_n.asm | 200 + .../gmp-6.0.0/mpn/x86_64/coreinhm/aorsmul_1.asm | 187 + .../gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h | 231 + .../gmp/gmp-6.0.0/mpn/x86_64/coreinhm/hamdist.asm | 38 + .../gmp/gmp-6.0.0/mpn/x86_64/coreinhm/popcount.asm | 38 + .../gmp/gmp-6.0.0/mpn/x86_64/coreinhm/redc_1.asm | 544 + .../mpn/x86_64/coreinhm/sec_tabselect.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/addmul_2.asm | 224 + .../gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh1_n.asm | 54 + .../gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh2_n.asm | 56 + .../gmp-6.0.0/mpn/x86_64/coreisbr/aorrlshC_n.asm | 173 + .../gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh_n.asm | 215 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aors_n.asm | 198 + .../gmp-6.0.0/mpn/x86_64/coreisbr/aorsmul_1.asm | 209 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/divrem_1.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h | 224 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshift.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshiftc.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_1.asm | 161 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_2.asm | 163 + .../gmp-6.0.0/mpn/x86_64/coreisbr/mul_basecase.asm | 407 + .../mpn/x86_64/coreisbr/mullo_basecase.asm | 384 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/popcount.asm | 118 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/redc_1.asm | 541 + .../gmp-6.0.0/mpn/x86_64/coreisbr/rsh1aors_n.asm | 193 + .../gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rshift.asm | 37 + .../mpn/x86_64/coreisbr/sec_tabselect.asm | 37 + .../gmp-6.0.0/mpn/x86_64/coreisbr/sqr_basecase.asm | 484 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/darwin.m4 | 81 + .../gmp/gmp-6.0.0/mpn/x86_64/div_qr_1n_pi1.asm | 247 + .../gmp/gmp-6.0.0/mpn/x86_64/div_qr_2n_pi1.asm | 158 + .../gmp/gmp-6.0.0/mpn/x86_64/div_qr_2u_pi1.asm | 200 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/dive_1.asm | 158 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_1.asm | 306 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_2.asm | 189 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/dos64.m4 | 100 + .../gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyd.asm | 171 + .../gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyi.asm | 168 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/README | 21 + .../gmp-6.0.0/mpn/x86_64/fastsse/com-palignr.asm | 302 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com.asm | 161 + .../gmp-6.0.0/mpn/x86_64/fastsse/copyd-palignr.asm | 251 + .../gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd.asm | 145 + .../gmp-6.0.0/mpn/x86_64/fastsse/copyi-palignr.asm | 295 + .../gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi.asm | 166 + .../mpn/x86_64/fastsse/lshift-movdqu2.asm | 182 + .../gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift.asm | 169 + .../mpn/x86_64/fastsse/lshiftc-movdqu2.asm | 193 + .../gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc.asm | 179 + .../mpn/x86_64/fastsse/rshift-movdqu2.asm | 201 + .../gmp-6.0.0/mpn/x86_64/fastsse/sec_tabselect.asm | 192 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat.c | 368 + .../gmp/gmp-6.0.0/mpn/x86_64/fat/fat_entry.asm | 204 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fat/gmp-mparam.h | 72 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mod_1.c | 32 + .../gmp/gmp-6.0.0/mpn/x86_64/fat/mul_basecase.c | 32 + .../gmp/gmp-6.0.0/mpn/x86_64/fat/mullo_basecase.c | 32 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_1.c | 32 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_2.c | 32 + .../gmp/gmp-6.0.0/mpn/x86_64/fat/sqr_basecase.c | 32 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/gcd_1.asm | 163 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/gmp-mparam.h | 218 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb.asm | 115 + .../gmp/gmp-6.0.0/mpn/x86_64/invert_limb_table.asm | 50 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gcd_1.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h | 222 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/hamdist.asm | 103 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshift.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshiftc.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/popcount.asm | 138 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k10/rshift.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/k10/sec_tabselect.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k8/aorrlsh_n.asm | 217 + .../gmp/gmp-6.0.0/mpn/x86_64/k8/div_qr_1n_pi1.asm | 249 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k8/gmp-mparam.h | 236 + .../gmp/gmp-6.0.0/mpn/x86_64/k8/mul_basecase.asm | 469 + .../gmp/gmp-6.0.0/mpn/x86_64/k8/mullo_basecase.asm | 436 + .../gmp-6.0.0/mpn/x86_64/k8/mulmid_basecase.asm | 559 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/k8/redc_1.asm | 590 + .../gmp/gmp-6.0.0/mpn/x86_64/k8/sqr_basecase.asm | 807 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/logops_n.asm | 244 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/lshift.asm | 247 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/lshiftc.asm | 182 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/lshsub_n.asm | 172 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/missing-call.m4 | 53 + .../gmp/gmp-6.0.0/mpn/x86_64/missing-inline.m4 | 100 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/missing.asm | 130 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_1.asm | 235 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_2.asm | 238 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_4.asm | 269 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mod_34lsub1.asm | 205 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mode1o.asm | 171 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_1.asm | 183 + .../source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_2.asm | 192 + .../gmp/gmp-6.0.0/mpn/x86_64/mulx/adx/addmul_1.asm | 149 + .../gmp/gmp-6.0.0/mpn/x86_64/mulx/aorsmul_1.asm | 161 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/mul_1.asm | 154 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyd.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyi.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/nano/dive_1.asm | 166 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gcd_1.asm | 37 + .../gmp/gmp-6.0.0/mpn/x86_64/nano/gmp-mparam.h | 243 + .../gmp/gmp-6.0.0/mpn/x86_64/nano/popcount.asm | 35 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/aors_n.asm | 196 + .../gmp-6.0.0/mpn/x86_64/pentium4/aorslsh1_n.asm | 50 + .../gmp-6.0.0/mpn/x86_64/pentium4/aorslsh2_n.asm | 50 + .../gmp-6.0.0/mpn/x86_64/pentium4/aorslshC_n.asm | 203 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/gmp-mparam.h | 231 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshift.asm | 166 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshiftc.asm | 179 + .../gmp-6.0.0/mpn/x86_64/pentium4/mod_34lsub1.asm | 167 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/popcount.asm | 35 + .../gmp-6.0.0/mpn/x86_64/pentium4/rsh1aors_n.asm | 334 + .../gmp/gmp-6.0.0/mpn/x86_64/pentium4/rshift.asm | 169 + .../mpn/x86_64/pentium4/sec_tabselect.asm | 37 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/popham.asm | 177 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/rsh1aors_n.asm | 189 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/rshift.asm | 176 + .../gmp/gmp-6.0.0/mpn/x86_64/sec_tabselect.asm | 176 + .../gmp/gmp-6.0.0/mpn/x86_64/sqr_diag_addlsh1.asm | 116 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/sublsh1_n.asm | 160 + .../libs/gmp/gmp-6.0.0/mpn/x86_64/x86_64-defs.m4 | 354 + Build/source/libs/gmp/gmp-6.0.0/mpq/Makefile.am | 41 + Build/source/libs/gmp/gmp-6.0.0/mpq/abs.c | 56 + Build/source/libs/gmp/gmp-6.0.0/mpq/aors.c | 113 + Build/source/libs/gmp/gmp-6.0.0/mpq/canonicalize.c | 63 + Build/source/libs/gmp/gmp-6.0.0/mpq/clear.c | 41 + Build/source/libs/gmp/gmp-6.0.0/mpq/clears.c | 52 + Build/source/libs/gmp/gmp-6.0.0/mpq/cmp.c | 126 + Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_si.c | 67 + Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_ui.c | 100 + Build/source/libs/gmp/gmp-6.0.0/mpq/div.c | 115 + Build/source/libs/gmp/gmp-6.0.0/mpq/equal.c | 69 + Build/source/libs/gmp/gmp-6.0.0/mpq/get_d.c | 175 + Build/source/libs/gmp/gmp-6.0.0/mpq/get_den.c | 43 + Build/source/libs/gmp/gmp-6.0.0/mpq/get_num.c | 45 + Build/source/libs/gmp/gmp-6.0.0/mpq/get_str.c | 76 + Build/source/libs/gmp/gmp-6.0.0/mpq/init.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpq/inits.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpq/inp_str.c | 76 + Build/source/libs/gmp/gmp-6.0.0/mpq/inv.c | 71 + Build/source/libs/gmp/gmp-6.0.0/mpq/md_2exp.c | 111 + Build/source/libs/gmp/gmp-6.0.0/mpq/mul.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpq/neg.c | 58 + Build/source/libs/gmp/gmp-6.0.0/mpq/out_str.c | 54 + Build/source/libs/gmp/gmp-6.0.0/mpq/set.c | 51 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_d.c | 166 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_den.c | 45 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_f.c | 107 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_num.c | 45 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_si.c | 65 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_str.c | 69 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_ui.c | 61 + Build/source/libs/gmp/gmp-6.0.0/mpq/set_z.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpq/swap.c | 71 + Build/source/libs/gmp/gmp-6.0.0/mpz/2fac_ui.c | 100 + Build/source/libs/gmp/gmp-6.0.0/mpz/Makefile.am | 67 + Build/source/libs/gmp/gmp-6.0.0/mpz/abs.c | 55 + Build/source/libs/gmp/gmp-6.0.0/mpz/add.c | 33 + Build/source/libs/gmp/gmp-6.0.0/mpz/add_ui.c | 33 + Build/source/libs/gmp/gmp-6.0.0/mpz/and.c | 244 + Build/source/libs/gmp/gmp-6.0.0/mpz/aors.h | 124 + Build/source/libs/gmp/gmp-6.0.0/mpz/aors_ui.h | 121 + Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul.c | 164 + Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul_i.c | 255 + Build/source/libs/gmp/gmp-6.0.0/mpz/array_init.c | 50 + Build/source/libs/gmp/gmp-6.0.0/mpz/bin_ui.c | 143 + Build/source/libs/gmp/gmp-6.0.0/mpz/bin_uiui.c | 696 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q_ui.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr.c | 65 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr_ui.c | 119 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r.c | 61 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r_ui.c | 110 + Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_ui.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_q_2exp.c | 113 + Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_r_2exp.c | 164 + Build/source/libs/gmp/gmp-6.0.0/mpz/clear.c | 40 + Build/source/libs/gmp/gmp-6.0.0/mpz/clears.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpz/clrbit.c | 116 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmp.c | 54 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_d.c | 145 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_si.c | 70 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_ui.c | 78 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs.c | 54 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_d.c | 130 + Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_ui.c | 77 + Build/source/libs/gmp/gmp-6.0.0/mpz/com.c | 88 + Build/source/libs/gmp/gmp-6.0.0/mpz/combit.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpz/cong.c | 183 + Build/source/libs/gmp/gmp-6.0.0/mpz/cong_2exp.c | 150 + Build/source/libs/gmp/gmp-6.0.0/mpz/cong_ui.c | 116 + Build/source/libs/gmp/gmp-6.0.0/mpz/dive_ui.c | 69 + Build/source/libs/gmp/gmp-6.0.0/mpz/divegcd.c | 157 + Build/source/libs/gmp/gmp-6.0.0/mpz/divexact.c | 91 + Build/source/libs/gmp/gmp-6.0.0/mpz/divis.c | 44 + Build/source/libs/gmp/gmp-6.0.0/mpz/divis_2exp.c | 61 + Build/source/libs/gmp/gmp-6.0.0/mpz/divis_ui.c | 81 + Build/source/libs/gmp/gmp-6.0.0/mpz/dump.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpz/export.c | 190 + Build/source/libs/gmp/gmp-6.0.0/mpz/fac_ui.c | 108 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q_ui.c | 101 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr.c | 65 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr_ui.c | 118 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r.c | 60 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r_ui.c | 108 + Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_ui.c | 101 + Build/source/libs/gmp/gmp-6.0.0/mpz/fib2_ui.c | 50 + Build/source/libs/gmp/gmp-6.0.0/mpz/fib_ui.c | 152 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_s.h | 61 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sint.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_slong.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sshort.c | 36 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_uint.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ulong.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ushort.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/gcd.c | 167 + Build/source/libs/gmp/gmp-6.0.0/mpz/gcd_ui.c | 85 + Build/source/libs/gmp/gmp-6.0.0/mpz/gcdext.c | 124 + Build/source/libs/gmp/gmp-6.0.0/mpz/get_d.c | 44 + Build/source/libs/gmp/gmp-6.0.0/mpz/get_d_2exp.c | 54 + Build/source/libs/gmp/gmp-6.0.0/mpz/get_si.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpz/get_str.c | 119 + Build/source/libs/gmp/gmp-6.0.0/mpz/get_ui.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/getlimbn.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/hamdist.c | 175 + Build/source/libs/gmp/gmp-6.0.0/mpz/import.c | 180 + Build/source/libs/gmp/gmp-6.0.0/mpz/init.c | 45 + Build/source/libs/gmp/gmp-6.0.0/mpz/init2.c | 61 + Build/source/libs/gmp/gmp-6.0.0/mpz/inits.c | 49 + Build/source/libs/gmp/gmp-6.0.0/mpz/inp_raw.c | 173 + Build/source/libs/gmp/gmp-6.0.0/mpz/inp_str.c | 174 + Build/source/libs/gmp/gmp-6.0.0/mpz/invert.c | 73 + Build/source/libs/gmp/gmp-6.0.0/mpz/ior.c | 230 + Build/source/libs/gmp/gmp-6.0.0/mpz/iset.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpz/iset_d.c | 42 + Build/source/libs/gmp/gmp-6.0.0/mpz/iset_si.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpz/iset_str.c | 52 + Build/source/libs/gmp/gmp-6.0.0/mpz/iset_ui.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpz/jacobi.c | 211 + Build/source/libs/gmp/gmp-6.0.0/mpz/kronsz.c | 138 + Build/source/libs/gmp/gmp-6.0.0/mpz/kronuz.c | 130 + Build/source/libs/gmp/gmp-6.0.0/mpz/kronzs.c | 93 + Build/source/libs/gmp/gmp-6.0.0/mpz/kronzu.c | 89 + Build/source/libs/gmp/gmp-6.0.0/mpz/lcm.c | 88 + Build/source/libs/gmp/gmp-6.0.0/mpz/lcm_ui.c | 79 + Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_finish.c | 40 + Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_modify.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_read.c | 38 + Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_write.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum2_ui.c | 90 + Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum_ui.c | 209 + Build/source/libs/gmp/gmp-6.0.0/mpz/mfac_uiui.c | 140 + Build/source/libs/gmp/gmp-6.0.0/mpz/millerrabin.c | 124 + Build/source/libs/gmp/gmp-6.0.0/mpz/mod.c | 68 + Build/source/libs/gmp/gmp-6.0.0/mpz/mul.c | 157 + Build/source/libs/gmp/gmp-6.0.0/mpz/mul_2exp.c | 73 + Build/source/libs/gmp/gmp-6.0.0/mpz/mul_i.h | 107 + Build/source/libs/gmp/gmp-6.0.0/mpz/mul_si.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/mul_ui.c | 34 + Build/source/libs/gmp/gmp-6.0.0/mpz/n_pow_ui.c | 533 + Build/source/libs/gmp/gmp-6.0.0/mpz/neg.c | 57 + Build/source/libs/gmp/gmp-6.0.0/mpz/nextprime.c | 129 + Build/source/libs/gmp/gmp-6.0.0/mpz/oddfac_1.c | 427 + Build/source/libs/gmp/gmp-6.0.0/mpz/out_raw.c | 173 + Build/source/libs/gmp/gmp-6.0.0/mpz/out_str.c | 112 + Build/source/libs/gmp/gmp-6.0.0/mpz/perfpow.c | 39 + Build/source/libs/gmp/gmp-6.0.0/mpz/perfsqr.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpz/popcount.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpz/pow_ui.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpz/powm.c | 283 + Build/source/libs/gmp/gmp-6.0.0/mpz/powm_sec.c | 104 + Build/source/libs/gmp/gmp-6.0.0/mpz/powm_ui.c | 292 + Build/source/libs/gmp/gmp-6.0.0/mpz/pprime_p.c | 164 + Build/source/libs/gmp/gmp-6.0.0/mpz/primorial_ui.c | 164 + Build/source/libs/gmp/gmp-6.0.0/mpz/prodlimbs.c | 109 + Build/source/libs/gmp/gmp-6.0.0/mpz/random.c | 40 + Build/source/libs/gmp/gmp-6.0.0/mpz/random2.c | 51 + Build/source/libs/gmp/gmp-6.0.0/mpz/realloc.c | 71 + Build/source/libs/gmp/gmp-6.0.0/mpz/realloc2.c | 60 + Build/source/libs/gmp/gmp-6.0.0/mpz/remove.c | 147 + Build/source/libs/gmp/gmp-6.0.0/mpz/roinit_n.c | 44 + Build/source/libs/gmp/gmp-6.0.0/mpz/root.c | 93 + Build/source/libs/gmp/gmp-6.0.0/mpz/rootrem.c | 101 + Build/source/libs/gmp/gmp-6.0.0/mpz/rrandomb.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpz/scan0.c | 130 + Build/source/libs/gmp/gmp-6.0.0/mpz/scan1.c | 124 + Build/source/libs/gmp/gmp-6.0.0/mpz/set.c | 50 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_d.c | 117 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_f.c | 72 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_q.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_si.c | 55 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_str.c | 145 + Build/source/libs/gmp/gmp-6.0.0/mpz/set_ui.c | 53 + Build/source/libs/gmp/gmp-6.0.0/mpz/setbit.c | 105 + Build/source/libs/gmp/gmp-6.0.0/mpz/size.c | 35 + Build/source/libs/gmp/gmp-6.0.0/mpz/sizeinbase.c | 43 + Build/source/libs/gmp/gmp-6.0.0/mpz/sqrt.c | 77 + Build/source/libs/gmp/gmp-6.0.0/mpz/sqrtrem.c | 85 + Build/source/libs/gmp/gmp-6.0.0/mpz/sub.c | 33 + Build/source/libs/gmp/gmp-6.0.0/mpz/sub_ui.c | 33 + Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c | 55 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q.c | 93 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_2exp.c | 68 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_ui.c | 84 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr.c | 107 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr_ui.c | 103 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r.c | 98 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_2exp.c | 78 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_ui.c | 99 + Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_ui.c | 85 + Build/source/libs/gmp/gmp-6.0.0/mpz/tstbit.c | 81 + Build/source/libs/gmp/gmp-6.0.0/mpz/ui_pow_ui.c | 59 + Build/source/libs/gmp/gmp-6.0.0/mpz/ui_sub.c | 96 + Build/source/libs/gmp/gmp-6.0.0/mpz/urandomb.c | 48 + Build/source/libs/gmp/gmp-6.0.0/mpz/urandomm.c | 105 + Build/source/libs/gmp/gmp-6.0.0/mpz/xor.c | 194 + Build/source/libs/gmp/gmp-6.0.0/nextprime.c | 167 + Build/source/libs/gmp/gmp-6.0.0/primesieve.c | 295 + Build/source/libs/gmp/gmp-6.0.0/printf/Makefile.am | 41 + Build/source/libs/gmp/gmp-6.0.0/printf/asprintf.c | 48 + .../source/libs/gmp/gmp-6.0.0/printf/asprntffuns.c | 72 + Build/source/libs/gmp/gmp-6.0.0/printf/doprnt.c | 627 + Build/source/libs/gmp/gmp-6.0.0/printf/doprntf.c | 390 + Build/source/libs/gmp/gmp-6.0.0/printf/doprnti.c | 137 + Build/source/libs/gmp/gmp-6.0.0/printf/fprintf.c | 49 + Build/source/libs/gmp/gmp-6.0.0/printf/obprintf.c | 59 + .../source/libs/gmp/gmp-6.0.0/printf/obprntffuns.c | 72 + Build/source/libs/gmp/gmp-6.0.0/printf/obvprintf.c | 52 + Build/source/libs/gmp/gmp-6.0.0/printf/printf.c | 49 + .../source/libs/gmp/gmp-6.0.0/printf/printffuns.c | 80 + .../libs/gmp/gmp-6.0.0/printf/repl-vsnprintf.c | 396 + Build/source/libs/gmp/gmp-6.0.0/printf/snprintf.c | 54 + .../source/libs/gmp/gmp-6.0.0/printf/snprntffuns.c | 160 + Build/source/libs/gmp/gmp-6.0.0/printf/sprintf.c | 55 + .../source/libs/gmp/gmp-6.0.0/printf/sprintffuns.c | 95 + Build/source/libs/gmp/gmp-6.0.0/printf/vasprintf.c | 117 + Build/source/libs/gmp/gmp-6.0.0/printf/vfprintf.c | 42 + Build/source/libs/gmp/gmp-6.0.0/printf/vprintf.c | 42 + Build/source/libs/gmp/gmp-6.0.0/printf/vsnprintf.c | 48 + Build/source/libs/gmp/gmp-6.0.0/printf/vsprintf.c | 51 + Build/source/libs/gmp/gmp-6.0.0/rand/Makefile.am | 38 + Build/source/libs/gmp/gmp-6.0.0/rand/rand.c | 52 + Build/source/libs/gmp/gmp-6.0.0/rand/randbui.c | 57 + Build/source/libs/gmp/gmp-6.0.0/rand/randclr.c | 38 + Build/source/libs/gmp/gmp-6.0.0/rand/randdef.c | 38 + Build/source/libs/gmp/gmp-6.0.0/rand/randiset.c | 39 + Build/source/libs/gmp/gmp-6.0.0/rand/randlc2s.c | 93 + Build/source/libs/gmp/gmp-6.0.0/rand/randlc2x.c | 333 + Build/source/libs/gmp/gmp-6.0.0/rand/randmt.c | 416 + Build/source/libs/gmp/gmp-6.0.0/rand/randmt.h | 51 + Build/source/libs/gmp/gmp-6.0.0/rand/randmts.c | 165 + Build/source/libs/gmp/gmp-6.0.0/rand/randmui.c | 86 + Build/source/libs/gmp/gmp-6.0.0/rand/rands.c | 42 + Build/source/libs/gmp/gmp-6.0.0/rand/randsd.c | 39 + Build/source/libs/gmp/gmp-6.0.0/rand/randsdui.c | 44 + Build/source/libs/gmp/gmp-6.0.0/scanf/Makefile.am | 38 + Build/source/libs/gmp/gmp-6.0.0/scanf/doscan.c | 768 + Build/source/libs/gmp/gmp-6.0.0/scanf/fscanf.c | 48 + Build/source/libs/gmp/gmp-6.0.0/scanf/fscanffuns.c | 62 + Build/source/libs/gmp/gmp-6.0.0/scanf/scanf.c | 48 + Build/source/libs/gmp/gmp-6.0.0/scanf/sscanf.c | 53 + Build/source/libs/gmp/gmp-6.0.0/scanf/sscanffuns.c | 124 + Build/source/libs/gmp/gmp-6.0.0/scanf/vfscanf.c | 42 + Build/source/libs/gmp/gmp-6.0.0/scanf/vscanf.c | 43 + Build/source/libs/gmp/gmp-6.0.0/scanf/vsscanf.c | 61 + Build/source/libs/gmp/gmp-6.0.0/tal-debug.c | 151 + Build/source/libs/gmp/gmp-6.0.0/tal-notreent.c | 130 + Build/source/libs/gmp/gmp-6.0.0/tal-reent.c | 82 + Build/source/libs/gmp/gmp-6.0.0/version.c | 34 + Build/source/libs/gmp/gmp.test | 7 + Build/source/libs/gmp/gmptest.c | 16 + Build/source/libs/gmp/include/Makefile.am | 16 + Build/source/libs/gmp/include/Makefile.in | 430 + Build/source/libs/gmp/m4/gmp-alloca.m4 | 56 + Build/source/libs/gmp/m4/gmp-attribute.m4 | 75 + Build/source/libs/gmp/m4/gmp-double-format.m4 | 242 + Build/source/libs/gmp/native/Makefile.am | 67 + Build/source/libs/gmp/native/Makefile.in | 786 + Build/source/libs/gmp/native/aclocal.m4 | 1188 + Build/source/libs/gmp/native/config.h.in | 25 + Build/source/libs/gmp/native/configure | 5899 ++ Build/source/libs/gmp/native/configure.ac | 30 + Build/source/libs/gmp/version.ac | 11 + Build/source/libs/mpfr/ChangeLog | 13 + Build/source/libs/mpfr/Makefile.am | 279 + Build/source/libs/mpfr/Makefile.in | 1926 + Build/source/libs/mpfr/README | 14 + Build/source/libs/mpfr/ac/mpfr.ac | 9 + Build/source/libs/mpfr/ac/withenable.ac | 8 + Build/source/libs/mpfr/aclocal.m4 | 1193 + Build/source/libs/mpfr/config.h.in | 161 + Build/source/libs/mpfr/configure | 8532 +++ Build/source/libs/mpfr/configure.ac | 129 + Build/source/libs/mpfr/include/Makefile.am | 16 + Build/source/libs/mpfr/include/Makefile.in | 431 + .../source/libs/mpfr/m4/mpfr-check-printf-spec.m4 | 72 + Build/source/libs/mpfr/m4/mpfr-configs.m4 | 270 + .../source/libs/mpfr/m4/mpfr-long-double-format.m4 | 355 + .../source/libs/mpfr/mpfr-3.1.2-PATCHES/ChangeLog | 4 + .../source/libs/mpfr/mpfr-3.1.2-PATCHES/TL-Changes | 24 + .../libs/mpfr/mpfr-3.1.2-PATCHES/patch-01-TL | 42 + Build/source/libs/mpfr/mpfr-3.1.2/AUTHORS | 23 + Build/source/libs/mpfr/mpfr-3.1.2/BUGS | 73 + Build/source/libs/mpfr/mpfr-3.1.2/ChangeLog | 65716 +++++++++++++++++++ Build/source/libs/mpfr/mpfr-3.1.2/INSTALL | 651 + Build/source/libs/mpfr/mpfr-3.1.2/Makefile.am | 32 + Build/source/libs/mpfr/mpfr-3.1.2/NEWS | 314 + Build/source/libs/mpfr/mpfr-3.1.2/PATCHES | 0 Build/source/libs/mpfr/mpfr-3.1.2/README | 84 + Build/source/libs/mpfr/mpfr-3.1.2/TODO | 434 + Build/source/libs/mpfr/mpfr-3.1.2/VERSION | 1 + Build/source/libs/mpfr/mpfr-3.1.2/acinclude.m4 | 918 + Build/source/libs/mpfr/mpfr-3.1.2/configure.ac | 561 + Build/source/libs/mpfr/mpfr-3.1.2/src/Makefile.am | 93 + .../libs/mpfr/mpfr-3.1.2/src/abort_prec_max.c | 32 + Build/source/libs/mpfr/mpfr-3.1.2/src/acos.c | 146 + Build/source/libs/mpfr/mpfr-3.1.2/src/acosh.c | 158 + Build/source/libs/mpfr/mpfr-3.1.2/src/add.c | 111 + Build/source/libs/mpfr/mpfr-3.1.2/src/add1.c | 538 + Build/source/libs/mpfr/mpfr-3.1.2/src/add1sp.c | 387 + Build/source/libs/mpfr/mpfr-3.1.2/src/add_d.c | 52 + Build/source/libs/mpfr/mpfr-3.1.2/src/add_ui.c | 58 + Build/source/libs/mpfr/mpfr-3.1.2/src/agm.c | 319 + Build/source/libs/mpfr/mpfr-3.1.2/src/ai.c | 664 + .../libs/mpfr/mpfr-3.1.2/src/amd/amdfam10/mparam.h | 236 + .../libs/mpfr/mpfr-3.1.2/src/amd/athlon/mparam.h | 90 + .../libs/mpfr/mpfr-3.1.2/src/amd/k8/mparam.h | 236 + Build/source/libs/mpfr/mpfr-3.1.2/src/arm/mparam.h | 232 + Build/source/libs/mpfr/mpfr-3.1.2/src/asin.c | 125 + Build/source/libs/mpfr/mpfr-3.1.2/src/asinh.c | 119 + Build/source/libs/mpfr/mpfr-3.1.2/src/atan.c | 437 + Build/source/libs/mpfr/mpfr-3.1.2/src/atan2.c | 281 + Build/source/libs/mpfr/mpfr-3.1.2/src/atanh.c | 130 + Build/source/libs/mpfr/mpfr-3.1.2/src/bernoulli.c | 80 + Build/source/libs/mpfr/mpfr-3.1.2/src/buildopt.c | 63 + Build/source/libs/mpfr/mpfr-3.1.2/src/cache.c | 145 + Build/source/libs/mpfr/mpfr-3.1.2/src/cbrt.c | 153 + Build/source/libs/mpfr/mpfr-3.1.2/src/check.c | 80 + Build/source/libs/mpfr/mpfr-3.1.2/src/clear.c | 31 + Build/source/libs/mpfr/mpfr-3.1.2/src/clears.c | 61 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp.c | 104 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp2.c | 243 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_abs.c | 94 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_d.c | 38 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_ld.c | 38 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_si.c | 101 + Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_ui.c | 101 + .../source/libs/mpfr/mpfr-3.1.2/src/comparisons.c | 78 + .../libs/mpfr/mpfr-3.1.2/src/const_catalan.c | 153 + .../source/libs/mpfr/mpfr-3.1.2/src/const_euler.c | 221 + Build/source/libs/mpfr/mpfr-3.1.2/src/const_log2.c | 200 + Build/source/libs/mpfr/mpfr-3.1.2/src/const_pi.c | 128 + Build/source/libs/mpfr/mpfr-3.1.2/src/constant.c | 28 + Build/source/libs/mpfr/mpfr-3.1.2/src/copysign.c | 38 + Build/source/libs/mpfr/mpfr-3.1.2/src/cos.c | 298 + Build/source/libs/mpfr/mpfr-3.1.2/src/cosh.c | 128 + Build/source/libs/mpfr/mpfr-3.1.2/src/cot.c | 96 + Build/source/libs/mpfr/mpfr-3.1.2/src/coth.c | 93 + Build/source/libs/mpfr/mpfr-3.1.2/src/csc.c | 76 + Build/source/libs/mpfr/mpfr-3.1.2/src/csch.c | 79 + Build/source/libs/mpfr/mpfr-3.1.2/src/d_div.c | 50 + Build/source/libs/mpfr/mpfr-3.1.2/src/d_sub.c | 50 + Build/source/libs/mpfr/mpfr-3.1.2/src/digamma.c | 378 + Build/source/libs/mpfr/mpfr-3.1.2/src/dim.c | 48 + Build/source/libs/mpfr/mpfr-3.1.2/src/div.c | 790 + Build/source/libs/mpfr/mpfr-3.1.2/src/div_2exp.c | 33 + Build/source/libs/mpfr/mpfr-3.1.2/src/div_2si.c | 60 + Build/source/libs/mpfr/mpfr-3.1.2/src/div_2ui.c | 61 + Build/source/libs/mpfr/mpfr-3.1.2/src/div_d.c | 51 + Build/source/libs/mpfr/mpfr-3.1.2/src/div_ui.c | 281 + Build/source/libs/mpfr/mpfr-3.1.2/src/dump.c | 30 + Build/source/libs/mpfr/mpfr-3.1.2/src/eint.c | 319 + Build/source/libs/mpfr/mpfr-3.1.2/src/eq.c | 141 + Build/source/libs/mpfr/mpfr-3.1.2/src/erf.c | 262 + Build/source/libs/mpfr/mpfr-3.1.2/src/erfc.c | 277 + Build/source/libs/mpfr/mpfr-3.1.2/src/exceptions.c | 360 + Build/source/libs/mpfr/mpfr-3.1.2/src/exp.c | 164 + Build/source/libs/mpfr/mpfr-3.1.2/src/exp10.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/exp2.c | 151 + Build/source/libs/mpfr/mpfr-3.1.2/src/exp3.c | 335 + Build/source/libs/mpfr/mpfr-3.1.2/src/exp_2.c | 421 + Build/source/libs/mpfr/mpfr-3.1.2/src/expm1.c | 179 + Build/source/libs/mpfr/mpfr-3.1.2/src/extract.c | 55 + Build/source/libs/mpfr/mpfr-3.1.2/src/factorial.c | 113 + .../source/libs/mpfr/mpfr-3.1.2/src/fits_intmax.c | 107 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_s.h | 89 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_sint.c | 28 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_slong.c | 28 + .../source/libs/mpfr/mpfr-3.1.2/src/fits_sshort.c | 28 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_u.h | 67 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_uint.c | 27 + .../source/libs/mpfr/mpfr-3.1.2/src/fits_uintmax.c | 77 + Build/source/libs/mpfr/mpfr-3.1.2/src/fits_ulong.c | 27 + .../source/libs/mpfr/mpfr-3.1.2/src/fits_ushort.c | 27 + Build/source/libs/mpfr/mpfr-3.1.2/src/fma.c | 302 + Build/source/libs/mpfr/mpfr-3.1.2/src/fms.c | 304 + Build/source/libs/mpfr/mpfr-3.1.2/src/frac.c | 144 + Build/source/libs/mpfr/mpfr-3.1.2/src/free_cache.c | 59 + Build/source/libs/mpfr/mpfr-3.1.2/src/frexp.c | 56 + Build/source/libs/mpfr/mpfr-3.1.2/src/gamma.c | 439 + .../libs/mpfr/mpfr-3.1.2/src/gammaonethird.c | 191 + .../source/libs/mpfr/mpfr-3.1.2/src/gen_inverse.h | 106 + .../libs/mpfr/mpfr-3.1.2/src/generic/mparam.h | 69 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_d.c | 183 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_d64.c | 400 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_exp.c | 31 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_f.c | 148 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_flt.c | 123 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_ld.c | 222 + .../source/libs/mpfr/mpfr-3.1.2/src/get_patches.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_si.c | 69 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_sj.c | 123 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_str.c | 2555 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_ui.c | 65 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_uj.c | 82 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_z.c | 61 + Build/source/libs/mpfr/mpfr-3.1.2/src/get_z_exp.c | 79 + Build/source/libs/mpfr/mpfr-3.1.2/src/gmp_op.c | 489 + Build/source/libs/mpfr/mpfr-3.1.2/src/grandom.c | 198 + .../source/libs/mpfr/mpfr-3.1.2/src/hppa/mparam.h | 233 + Build/source/libs/mpfr/mpfr-3.1.2/src/hypot.c | 194 + .../source/libs/mpfr/mpfr-3.1.2/src/ia64/mparam.h | 233 + .../source/libs/mpfr/mpfr-3.1.2/src/ieee_floats.h | 80 + Build/source/libs/mpfr/mpfr-3.1.2/src/init.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/init2.c | 69 + Build/source/libs/mpfr/mpfr-3.1.2/src/inits.c | 62 + Build/source/libs/mpfr/mpfr-3.1.2/src/inits2.c | 66 + Build/source/libs/mpfr/mpfr-3.1.2/src/inp_str.c | 89 + .../libs/mpfr/mpfr-3.1.2/src/int_ceil_log2.c | 42 + Build/source/libs/mpfr/mpfr-3.1.2/src/isinf.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/isinteger.c | 59 + Build/source/libs/mpfr/mpfr-3.1.2/src/isnan.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/isnum.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/isqrt.c | 84 + Build/source/libs/mpfr/mpfr-3.1.2/src/isregular.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/iszero.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/jn.c | 329 + Build/source/libs/mpfr/mpfr-3.1.2/src/jyn_asympt.c | 269 + Build/source/libs/mpfr/mpfr-3.1.2/src/li2.c | 634 + Build/source/libs/mpfr/mpfr-3.1.2/src/lngamma.c | 738 + Build/source/libs/mpfr/mpfr-3.1.2/src/log.c | 171 + Build/source/libs/mpfr/mpfr-3.1.2/src/log10.c | 150 + Build/source/libs/mpfr/mpfr-3.1.2/src/log1p.c | 158 + Build/source/libs/mpfr/mpfr-3.1.2/src/log2.c | 142 + Build/source/libs/mpfr/mpfr-3.1.2/src/logging.c | 124 + Build/source/libs/mpfr/mpfr-3.1.2/src/min_prec.c | 33 + Build/source/libs/mpfr/mpfr-3.1.2/src/minmax.c | 92 + Build/source/libs/mpfr/mpfr-3.1.2/src/modf.c | 102 + Build/source/libs/mpfr/mpfr-3.1.2/src/mp_clz_tab.c | 38 + Build/source/libs/mpfr/mpfr-3.1.2/src/mparam_h.in | 94 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpf2mpfr.h | 175 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-gmp.c | 386 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-gmp.h | 411 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-impl.h | 1923 + .../source/libs/mpfr/mpfr-3.1.2/src/mpfr-intmax.h | 40 + .../libs/mpfr/mpfr-3.1.2/src/mpfr-longlong.h | 1943 + .../source/libs/mpfr/mpfr-3.1.2/src/mpfr-thread.h | 48 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr.h | 1059 + Build/source/libs/mpfr/mpfr-3.1.2/src/mpn_exp.c | 174 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul.c | 547 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2exp.c | 33 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2si.c | 59 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2ui.c | 66 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul_d.c | 52 + Build/source/libs/mpfr/mpfr-3.1.2/src/mul_ui.c | 133 + Build/source/libs/mpfr/mpfr-3.1.2/src/mulders.c | 495 + Build/source/libs/mpfr/mpfr-3.1.2/src/neg.c | 39 + Build/source/libs/mpfr/mpfr-3.1.2/src/next.c | 150 + Build/source/libs/mpfr/mpfr-3.1.2/src/out_str.c | 98 + Build/source/libs/mpfr/mpfr-3.1.2/src/pow.c | 715 + Build/source/libs/mpfr/mpfr-3.1.2/src/pow_si.c | 250 + Build/source/libs/mpfr/mpfr-3.1.2/src/pow_ui.c | 164 + Build/source/libs/mpfr/mpfr-3.1.2/src/pow_z.c | 373 + Build/source/libs/mpfr/mpfr-3.1.2/src/powerof2.c | 49 + .../libs/mpfr/mpfr-3.1.2/src/powerpc32/mparam.h | 232 + .../libs/mpfr/mpfr-3.1.2/src/powerpc64/mparam.h | 233 + Build/source/libs/mpfr/mpfr-3.1.2/src/print_raw.c | 129 + .../libs/mpfr/mpfr-3.1.2/src/print_rnd_mode.c | 46 + Build/source/libs/mpfr/mpfr-3.1.2/src/printf.c | 215 + Build/source/libs/mpfr/mpfr-3.1.2/src/rec_sqrt.c | 556 + Build/source/libs/mpfr/mpfr-3.1.2/src/reldiff.c | 73 + Build/source/libs/mpfr/mpfr-3.1.2/src/rem1.c | 229 + Build/source/libs/mpfr/mpfr-3.1.2/src/rint.c | 437 + Build/source/libs/mpfr/mpfr-3.1.2/src/root.c | 205 + .../source/libs/mpfr/mpfr-3.1.2/src/round_near_x.c | 233 + Build/source/libs/mpfr/mpfr-3.1.2/src/round_p.c | 123 + Build/source/libs/mpfr/mpfr-3.1.2/src/round_prec.c | 240 + .../libs/mpfr/mpfr-3.1.2/src/round_raw_generic.c | 259 + Build/source/libs/mpfr/mpfr-3.1.2/src/scale2.c | 91 + Build/source/libs/mpfr/mpfr-3.1.2/src/sec.c | 34 + Build/source/libs/mpfr/mpfr-3.1.2/src/sech.c | 40 + Build/source/libs/mpfr/mpfr-3.1.2/src/set.c | 80 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_d.c | 255 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_d64.c | 224 + .../source/libs/mpfr/mpfr-3.1.2/src/set_dfl_prec.c | 41 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_exp.c | 37 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_f.c | 99 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_flt.c | 34 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_inf.c | 33 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_ld.c | 331 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_nan.c | 31 + .../source/libs/mpfr/mpfr-3.1.2/src/set_prc_raw.c | 31 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_prec.c | 55 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_q.c | 133 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_rnd.c | 40 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_si.c | 30 + .../source/libs/mpfr/mpfr-3.1.2/src/set_si_2exp.c | 73 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_sj.c | 52 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_str.c | 42 + .../source/libs/mpfr/mpfr-3.1.2/src/set_str_raw.c | 55 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_ui.c | 30 + .../source/libs/mpfr/mpfr-3.1.2/src/set_ui_2exp.c | 72 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_uj.c | 123 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_z.c | 30 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_z_exp.c | 180 + Build/source/libs/mpfr/mpfr-3.1.2/src/set_zero.c | 31 + Build/source/libs/mpfr/mpfr-3.1.2/src/setmax.c | 41 + Build/source/libs/mpfr/mpfr-3.1.2/src/setmin.c | 38 + Build/source/libs/mpfr/mpfr-3.1.2/src/setsign.c | 30 + Build/source/libs/mpfr/mpfr-3.1.2/src/sgn.c | 40 + Build/source/libs/mpfr/mpfr-3.1.2/src/si_op.c | 57 + Build/source/libs/mpfr/mpfr-3.1.2/src/signbit.c | 30 + Build/source/libs/mpfr/mpfr-3.1.2/src/sin.c | 183 + Build/source/libs/mpfr/mpfr-3.1.2/src/sin_cos.c | 662 + Build/source/libs/mpfr/mpfr-3.1.2/src/sinh.c | 184 + Build/source/libs/mpfr/mpfr-3.1.2/src/sinh_cosh.c | 161 + .../libs/mpfr/mpfr-3.1.2/src/sparc64/mparam.h | 233 + Build/source/libs/mpfr/mpfr-3.1.2/src/sqr.c | 112 + Build/source/libs/mpfr/mpfr-3.1.2/src/sqrt.c | 231 + Build/source/libs/mpfr/mpfr-3.1.2/src/sqrt_ui.c | 54 + .../libs/mpfr/mpfr-3.1.2/src/stack_interface.c | 104 + Build/source/libs/mpfr/mpfr-3.1.2/src/strtofr.c | 851 + Build/source/libs/mpfr/mpfr-3.1.2/src/sub.c | 116 + Build/source/libs/mpfr/mpfr-3.1.2/src/sub1.c | 657 + Build/source/libs/mpfr/mpfr-3.1.2/src/sub1sp.c | 810 + Build/source/libs/mpfr/mpfr-3.1.2/src/sub_d.c | 51 + Build/source/libs/mpfr/mpfr-3.1.2/src/sub_ui.c | 60 + Build/source/libs/mpfr/mpfr-3.1.2/src/subnormal.c | 163 + Build/source/libs/mpfr/mpfr-3.1.2/src/sum.c | 316 + Build/source/libs/mpfr/mpfr-3.1.2/src/swap.c | 54 + Build/source/libs/mpfr/mpfr-3.1.2/src/tan.c | 89 + Build/source/libs/mpfr/mpfr-3.1.2/src/tanh.c | 153 + Build/source/libs/mpfr/mpfr-3.1.2/src/uceil_exp2.c | 65 + Build/source/libs/mpfr/mpfr-3.1.2/src/uceil_log2.c | 63 + .../source/libs/mpfr/mpfr-3.1.2/src/ufloor_log2.c | 53 + Build/source/libs/mpfr/mpfr-3.1.2/src/ui_div.c | 103 + Build/source/libs/mpfr/mpfr-3.1.2/src/ui_pow.c | 41 + Build/source/libs/mpfr/mpfr-3.1.2/src/ui_pow_ui.c | 95 + Build/source/libs/mpfr/mpfr-3.1.2/src/ui_sub.c | 68 + Build/source/libs/mpfr/mpfr-3.1.2/src/urandom.c | 147 + Build/source/libs/mpfr/mpfr-3.1.2/src/urandomb.c | 108 + Build/source/libs/mpfr/mpfr-3.1.2/src/vasprintf.c | 2086 + Build/source/libs/mpfr/mpfr-3.1.2/src/version.c | 29 + Build/source/libs/mpfr/mpfr-3.1.2/src/volatile.c | 36 + .../libs/mpfr/mpfr-3.1.2/src/x86/core2/mparam.h | 234 + Build/source/libs/mpfr/mpfr-3.1.2/src/x86/mparam.h | 233 + .../libs/mpfr/mpfr-3.1.2/src/x86_64/core2/mparam.h | 236 + .../mpfr/mpfr-3.1.2/src/x86_64/pentium4/mparam.h | 160 + Build/source/libs/mpfr/mpfr-3.1.2/src/yn.c | 426 + Build/source/libs/mpfr/mpfr-3.1.2/src/zeta.c | 466 + Build/source/libs/mpfr/mpfr-3.1.2/src/zeta_ui.c | 230 + Build/source/libs/mpfr/mpfr.test | 7 + Build/source/libs/mpfr/mpfrtest.c | 19 + Build/source/libs/mpfr/version.ac | 11 + 1788 files changed, 446616 insertions(+) create mode 100644 Build/source/libs/gmp/ChangeLog create mode 100644 Build/source/libs/gmp/Makefile.am create mode 100644 Build/source/libs/gmp/Makefile.in create mode 100644 Build/source/libs/gmp/README create mode 100644 Build/source/libs/gmp/ac/gmp.ac create mode 100644 Build/source/libs/gmp/ac/withenable.ac create mode 100644 Build/source/libs/gmp/aclocal.m4 create mode 100644 Build/source/libs/gmp/config.h.in create mode 100755 Build/source/libs/gmp/configure create mode 100644 Build/source/libs/gmp/configure.ac create mode 100644 Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog create mode 100644 Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes create mode 100644 Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const create mode 100644 Build/source/libs/gmp/gmp-6.0.0/AUTHORS create mode 100644 Build/source/libs/gmp/gmp-6.0.0/ChangeLog create mode 100644 Build/source/libs/gmp/gmp-6.0.0/INSTALL create mode 100644 Build/source/libs/gmp/gmp-6.0.0/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/NEWS create mode 100644 Build/source/libs/gmp/gmp-6.0.0/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/assert.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/bootstrap.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/compat.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/config.in create mode 100755 Build/source/libs/gmp/gmp-6.0.0/configgmp.guess create mode 100755 Build/source/libs/gmp/gmp-6.0.0/configgmp.sub create mode 100644 Build/source/libs/gmp/gmp-6.0.0/configure.ac create mode 100644 Build/source/libs/gmp/gmp-6.0.0/errno.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/extract-dbl.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-bases.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-fac.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-fib.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-jacobitab.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-psqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gen-trialdivtab.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gmp-h.in create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gmp-impl.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/gmpxx.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/invalid.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/longlong.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/memory.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mini-gmp/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mini-gmp/mini-gmp.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_bpl.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_clz_tab.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_dv_tab.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_get_fns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_minv_tab.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mp_set_fns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/abs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/add.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/add_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/ceilfloor.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/clear.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/clears.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/cmp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/cmp_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/div.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/div_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/div_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/dump.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/eq.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_s.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sint.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_slong.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_sshort.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_u.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_uint.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ulong.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/fits_ushort.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_d_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_dfl_prec.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_prc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/get_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/init.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/init2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/inits.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/inp_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/int_p.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/iset.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/iset_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/iset_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/iset_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/iset_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/mul_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/mul_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/neg.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/out_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/pow_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/random2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/reldiff.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_dfl_prec.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_prc_raw.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/set_z.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/size.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/sqrt_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/sub.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/sub_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/swap.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/trunc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/ui_div.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/ui_sub.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpf/urandomb.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/Makeasm.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/alpha-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/aorslsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/cntlz.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/default.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/dive_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/diveby3.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev5/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_3.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/addmul_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/nails/submul_1.asm create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/slot.pl create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev6/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/ev67/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sqr_diag_addlsh1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/alpha/unicos.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/arm-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lorrshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/neon/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v5/mod_1_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/addmul_3.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v6t2/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/neon/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora15/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm/v7a/cora9/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/arm64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/asm-defs.m4 create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/cpp-ccas create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/add_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/addmul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwc90.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/mulwwj90.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/cfp/submul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/hamdist.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/addmul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/invert_limb.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/mul_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/sqr_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/ieee/submul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/lshift.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/mulww.f create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/popcount.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/rshift.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/cray/sub_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err1_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err2_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_err3_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/add_n_sub_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/addmul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_dbm1c.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_q_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/binvert.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/broot.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/brootinv.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrt.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/bsqrtinv.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cmp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_add_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/cnd_sub_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/com.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/comb_tables.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/copyi.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_bdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_div_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dcpi1_divappr_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1n_pi2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_1u_pi2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2n_pi1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/div_qr_2u_pi1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dive_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/diveby3.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divexact.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divis.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/divrem_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/dump.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/fib2_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcd_subdiv_step.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gcdext_lehmer.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/get_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd2_jacobi.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_appr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_jacobi.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_matrix.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_reduce.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/hgcd_step.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invert.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/invertappr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacbase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/jacobi_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/logops_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshift.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/lshiftc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/matrix22_mul1_inverse_vector.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_3.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_1_4.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mod_34lsub1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mode1o.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_bdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_div_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mu_divappr_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_fft.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mul_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mullo_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmid_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/mulmod_bnm1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/neg.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/nussbaumer_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfpow.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/perfsqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/popham.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pow_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powlo.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/powm.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_divrem_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/pre_mod_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/random2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/redc_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/remove.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rootrem.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/rshift.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_bdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_div_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sbpi1_divappr_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan0.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/scan1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_aors_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_div.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_invert.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_pi1_div.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_powm.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sec_tabselect.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/set_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sizeinbase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqr_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrmod_bnm1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sqrtrem.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err1_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err2_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_err3_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/sub_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/submul_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/tdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom22_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom2_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom32_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom33_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom3_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom42_mulmid.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom43_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom44_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom4_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom52_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom53_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom54_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom62_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom63_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom6h_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8_sqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom8h_mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_couple_handling.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_dgr3_pm2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_eval_pm2rexp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_12pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_16pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_5pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_6pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_7pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/toom_interpolate_8pts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/trialdiv.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/udiv_w_sdiv.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/generic/zero.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/add_n_sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/aorsorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/ia64-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lorrshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/sqr_diag_addlsh1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/ia64/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/lisp/gmpasm-mode.el create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/m4-ccas create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/m68k-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/mc68020/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m68k/t-m68k-defs.pl create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/add_n.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/add_n.S create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/addmul_1.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/mul_1.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mc88110/sub_n.S create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/mul_1.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/m88k/sub_n.s create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/minithres/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mips.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips32/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/mips64/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/pa7100/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa1_1/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/hppa2_0/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/pa-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa32/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/pa64/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/sdiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/power/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/750/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aix.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/darwin.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/diveby3.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/eabi.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/elf.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3-p7/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p3/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p4/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p5/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/p7/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/powerpc-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sqr_diag_addlsh1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc32/vmx/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/aix.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/darwin.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/elf.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/p4/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode32/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/aorsorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p3/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p4/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p5/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p6/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aormul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/p7/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/mode64/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p6/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/p7/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/powerpc64/vmx/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/esame/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_32/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/s390_64/z10/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sh/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sh2/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sh/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sparc-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/udiv_nfp.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/ultrasparct1/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/supersparc/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v8/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc32/v9/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/dive_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/divrem_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mod_1_4.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/mode1o.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/sparc64.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sqr_diagonal.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc1234/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparc34/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/rsblshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/sublshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct1/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aormul_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/aorslsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/missing.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/sparc64/ultrasparct3/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/thumb/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/elf.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/vax/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/aorslshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/cnd_sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mmx/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sse2/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/atom/sublsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd1/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bd2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/bobcat/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/core2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreihwl/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreinhm/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/coreisbr/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/darwin.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/com.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/fat_entry.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gcd_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/lshiftc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mod_1_4.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mode1o.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/mullo_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/fat/redc_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/geode/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/i486/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k10/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/aorsmul_1.asm create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/cross.pl create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/k62mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/pre_mod_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k6/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/addlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k7/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/k8/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mmx/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/nano/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/lshsub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/p3mmx/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/p6/sse2/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/mmx/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/cnd_sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/rsh1add_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/sub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/pentium4/sse2/submul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/sqr_basecase.asm create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp.sh create mode 100755 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/t-zdisp2.pl create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/udiv.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/umul.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86/x86-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addaddmul_1msb0.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorrlsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_err3_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/atom/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd1/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bd2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_dbm1c.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bdiv_q_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/bobcat/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/cnd_aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorrlsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_err1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/mullo_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/core2/sublshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/mullo_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreihwl/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorrlsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreinhm/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/addmul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorrlsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/mullo_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/coreisbr/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/darwin.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_1n_pi1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2n_pi1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/div_qr_2u_pi1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/divrem_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/dos64.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastavx/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/README create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com-palignr.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/com.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd-palignr.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi-palignr.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift-movdqu2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc-movdqu2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/rshift-movdqu2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fastsse/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/fat_entry.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mod_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mul_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/mullo_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/redc_2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/fat/sqr_basecase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/invert_limb_table.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/hamdist.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k10/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/aorrlsh_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/div_qr_1n_pi1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mul_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mullo_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/mulmid_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/redc_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/k8/sqr_basecase.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/logops_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/lshsub_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-call.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing-inline.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/missing.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_1_4.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mode1o.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mul_2.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/adx/addmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/aorsmul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/mulx/mul_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyd.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/copyi.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/dive_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gcd_1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/nano/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslsh2_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/aorslshC_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/gmp-mparam.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/lshiftc.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/mod_34lsub1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/popcount.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/pentium4/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/popham.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rsh1aors_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/rshift.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sec_tabselect.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sqr_diag_addlsh1.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/sublsh1_n.asm create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpn/x86_64/x86_64-defs.m4 create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/abs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/aors.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/canonicalize.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/clear.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/clears.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/cmp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/cmp_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/div.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/equal.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/get_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/get_den.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/get_num.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/get_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/init.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/inits.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/inp_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/inv.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/md_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/neg.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/out_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_den.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_f.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_num.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/set_z.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpq/swap.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/2fac_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/abs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/add.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/add_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/and.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/aors.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/aors_ui.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/aorsmul_i.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/array_init.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/bin_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/bin_uiui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_q_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_qr_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_r_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cdiv_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_q_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cfdiv_r_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/clear.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/clears.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/clrbit.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmp_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cmpabs_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/com.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/combit.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cong.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cong_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/cong_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/dive_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/divegcd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/divexact.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/divis.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/divis_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/divis_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/dump.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/export.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fac_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_q_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_qr_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_r_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fdiv_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fib2_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fib_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_s.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sint.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_slong.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_sshort.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_uint.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ulong.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/fits_ushort.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/gcd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/gcd_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/gcdext.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/get_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/get_d_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/get_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/get_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/get_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/getlimbn.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/hamdist.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/import.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/init.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/init2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/inits.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/inp_raw.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/inp_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/invert.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/ior.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/iset.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/iset_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/iset_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/iset_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/iset_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/jacobi.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/kronsz.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/kronuz.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/kronzs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/kronzu.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/lcm.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/lcm_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_finish.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_modify.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_read.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/limbs_write.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum2_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/lucnum_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mfac_uiui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/millerrabin.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mod.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mul.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mul_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mul_i.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mul_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/mul_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/n_pow_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/neg.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/nextprime.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/oddfac_1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/out_raw.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/out_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/perfpow.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/perfsqr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/popcount.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/pow_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/powm.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/powm_sec.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/powm_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/pprime_p.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/primorial_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/prodlimbs.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/random.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/random2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/realloc.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/realloc2.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/remove.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/roinit_n.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/root.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/rootrem.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/rrandomb.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/scan0.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/scan1.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_d.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_f.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_si.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_str.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/set_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/setbit.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/size.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/sizeinbase.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/sqrt.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/sqrtrem.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/sub.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/sub_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/swap.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_q_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_qr_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_2exp.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_r_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tdiv_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/tstbit.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/ui_pow_ui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/ui_sub.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/urandomb.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/urandomm.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/mpz/xor.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/nextprime.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/primesieve.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/asprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/asprntffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/doprnt.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/doprntf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/doprnti.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/fprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/obprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/obprntffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/obvprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/printf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/printffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/repl-vsnprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/snprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/snprntffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/sprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/sprintffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/vasprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/vfprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/vprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/vsnprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/printf/vsprintf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/rand.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randbui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randclr.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randdef.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randiset.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randlc2s.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randlc2x.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randmt.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randmt.h create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randmts.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randmui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/rands.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randsd.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/rand/randsdui.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/Makefile.am create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/doscan.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/fscanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/fscanffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/scanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/sscanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/sscanffuns.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/vfscanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/vscanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/scanf/vsscanf.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/tal-debug.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/tal-notreent.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/tal-reent.c create mode 100644 Build/source/libs/gmp/gmp-6.0.0/version.c create mode 100755 Build/source/libs/gmp/gmp.test create mode 100644 Build/source/libs/gmp/gmptest.c create mode 100644 Build/source/libs/gmp/include/Makefile.am create mode 100644 Build/source/libs/gmp/include/Makefile.in create mode 100644 Build/source/libs/gmp/m4/gmp-alloca.m4 create mode 100644 Build/source/libs/gmp/m4/gmp-attribute.m4 create mode 100644 Build/source/libs/gmp/m4/gmp-double-format.m4 create mode 100644 Build/source/libs/gmp/native/Makefile.am create mode 100644 Build/source/libs/gmp/native/Makefile.in create mode 100644 Build/source/libs/gmp/native/aclocal.m4 create mode 100644 Build/source/libs/gmp/native/config.h.in create mode 100755 Build/source/libs/gmp/native/configure create mode 100644 Build/source/libs/gmp/native/configure.ac create mode 100644 Build/source/libs/gmp/version.ac create mode 100644 Build/source/libs/mpfr/ChangeLog create mode 100644 Build/source/libs/mpfr/Makefile.am create mode 100644 Build/source/libs/mpfr/Makefile.in create mode 100644 Build/source/libs/mpfr/README create mode 100644 Build/source/libs/mpfr/ac/mpfr.ac create mode 100644 Build/source/libs/mpfr/ac/withenable.ac create mode 100644 Build/source/libs/mpfr/aclocal.m4 create mode 100644 Build/source/libs/mpfr/config.h.in create mode 100755 Build/source/libs/mpfr/configure create mode 100644 Build/source/libs/mpfr/configure.ac create mode 100644 Build/source/libs/mpfr/include/Makefile.am create mode 100644 Build/source/libs/mpfr/include/Makefile.in create mode 100644 Build/source/libs/mpfr/m4/mpfr-check-printf-spec.m4 create mode 100644 Build/source/libs/mpfr/m4/mpfr-configs.m4 create mode 100644 Build/source/libs/mpfr/m4/mpfr-long-double-format.m4 create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2-PATCHES/ChangeLog create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2-PATCHES/TL-Changes create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2-PATCHES/patch-01-TL create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/AUTHORS create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/BUGS create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/ChangeLog create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/INSTALL create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/Makefile.am create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/NEWS create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/PATCHES create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/README create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/TODO create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/VERSION create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/acinclude.m4 create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/configure.ac create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/Makefile.am create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/abort_prec_max.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/acos.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/acosh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/add.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/add1.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/add1sp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/add_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/add_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/agm.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ai.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/amd/amdfam10/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/amd/athlon/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/amd/k8/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/arm/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/asin.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/asinh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/atan.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/atan2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/atanh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/bernoulli.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/buildopt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cache.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cbrt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/check.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/clear.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/clears.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_abs.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_ld.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cmp_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/comparisons.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/const_catalan.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/const_euler.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/const_log2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/const_pi.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/constant.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/copysign.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cos.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cosh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/cot.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/coth.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/csc.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/csch.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/d_div.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/d_sub.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/digamma.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/dim.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div_2exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div_2si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div_2ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/div_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/dump.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/eint.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/eq.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/erf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/erfc.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exceptions.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exp10.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exp2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exp3.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/exp_2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/expm1.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/extract.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/factorial.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_intmax.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_s.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_sint.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_slong.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_sshort.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_u.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_uint.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_uintmax.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_ulong.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fits_ushort.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fma.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/fms.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/frac.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/free_cache.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/frexp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/gamma.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/gammaonethird.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/gen_inverse.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/generic/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_d64.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_f.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_flt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_ld.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_patches.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_sj.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_str.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_uj.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_z.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/get_z_exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/gmp_op.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/grandom.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/hppa/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/hypot.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ia64/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ieee_floats.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/init.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/init2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/inits.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/inits2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/inp_str.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/int_ceil_log2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isinf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isinteger.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isnan.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isnum.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isqrt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/isregular.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/iszero.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/jn.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/jyn_asympt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/li2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/lngamma.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/log.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/log10.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/log1p.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/log2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/logging.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/min_prec.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/minmax.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/modf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mp_clz_tab.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mparam_h.in create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpf2mpfr.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-gmp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-gmp.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-impl.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-intmax.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-longlong.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr-thread.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpfr.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mpn_exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul_2ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mul_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/mulders.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/neg.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/next.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/out_str.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/pow.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/pow_si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/pow_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/pow_z.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/powerof2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/powerpc32/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/powerpc64/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/print_raw.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/print_rnd_mode.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/printf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/rec_sqrt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/reldiff.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/rem1.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/rint.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/root.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/round_near_x.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/round_p.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/round_prec.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/round_raw_generic.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/scale2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sec.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sech.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_d64.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_dfl_prec.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_f.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_flt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_inf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_ld.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_nan.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_prc_raw.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_prec.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_q.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_rnd.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_si.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_si_2exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_sj.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_str.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_str_raw.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_ui_2exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_uj.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_z.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_z_exp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/set_zero.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/setmax.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/setmin.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/setsign.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sgn.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/si_op.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/signbit.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sin.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sin_cos.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sinh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sinh_cosh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sparc64/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sqr.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sqrt.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sqrt_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/stack_interface.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/strtofr.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sub.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sub1.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sub1sp.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sub_d.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sub_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/subnormal.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/sum.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/swap.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/tan.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/tanh.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/uceil_exp2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/uceil_log2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ufloor_log2.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ui_div.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ui_pow.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ui_pow_ui.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/ui_sub.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/urandom.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/urandomb.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/vasprintf.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/version.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/volatile.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/x86/core2/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/x86/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/x86_64/core2/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/x86_64/pentium4/mparam.h create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/yn.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/zeta.c create mode 100644 Build/source/libs/mpfr/mpfr-3.1.2/src/zeta_ui.c create mode 100755 Build/source/libs/mpfr/mpfr.test create mode 100644 Build/source/libs/mpfr/mpfrtest.c create mode 100644 Build/source/libs/mpfr/version.ac (limited to 'Build/source/libs') diff --git a/Build/source/libs/gmp/ChangeLog b/Build/source/libs/gmp/ChangeLog new file mode 100644 index 00000000000..b527a756c98 --- /dev/null +++ b/Build/source/libs/gmp/ChangeLog @@ -0,0 +1,15 @@ +2014-05-27 Peter Breitenlohner + + Converted wrapper => proxy build system. + + * Makefile.am (basic_unused, mpn_unused, mpz_unused): + Compile only as needed by mpost (via libmpfr). + +2014-05-07 Peter Breitenlohner + + Integrated into TeX Live with wrapper build system. + Imported gmp-6.0.0. + +2014-03-31 Taco Hoekwater + + Imported gmp-5.1.3. diff --git a/Build/source/libs/gmp/Makefile.am b/Build/source/libs/gmp/Makefile.am new file mode 100644 index 00000000000..5f1e5ef8b41 --- /dev/null +++ b/Build/source/libs/gmp/Makefile.am @@ -0,0 +1,486 @@ +## Proxy Makefile.am to build GNU MP for TeX Live. +## +## Copyright (C) 2014 Taco Hoekwater +## Copyright (C) 2014 Peter Breitenlohner +## +## This file is free software; the copyright holder +## gives unlimited permission to copy and/or distribute it, +## with or without modifications, as long as this notice is preserved. +## +## We want to re-distribute the whole GNU MP source tree. +## +EXTRA_DIST = $(GMP_TREE) + +## Changes applied to the original source tree +## +EXTRA_DIST += $(GMP_TREE)-PATCHES + +# in case of an SVN repository +dist-hook: + rm -rf `find $(distdir) -name .svn -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'` + +SUBDIRS = native . include + +AM_CPPFLAGS = -I$(srcdir)/$(GMP_TREE) -I$(srcdir)/$(GMP_TREE)/mpn/generic -DNO_ASM +AM_CFLAGS = # $(WARNING_CFLAGS) + +noinst_LIBRARIES = libgmp.a +$(libgmp_a_OBJECTS): mp_bases.h fac_table.h fib_table.h +nodist_libgmp_a_SOURCES = \ + $(basic_sources) \ + $(mpn_sources) \ + $(mpz_sources) + +basic_sources = \ + @GMP_TREE@/assert.c \ + @GMP_TREE@/compat.c \ + @GMP_TREE@/errno.c \ + @GMP_TREE@/extract-dbl.c \ + @GMP_TREE@/invalid.c \ + @GMP_TREE@/memory.c \ + @GMP_TREE@/mp_bpl.c \ + @GMP_TREE@/mp_clz_tab.c \ + @GMP_TREE@/mp_dv_tab.c \ + @GMP_TREE@/mp_get_fns.c \ + @GMP_TREE@/mp_minv_tab.c \ + @GMP_TREE@/mp_set_fns.c \ + @GMP_TREE@/nextprime.c \ + @GMP_TREE@/primesieve.c \ + @GMP_TREE@/tal-reent.c \ + @GMP_TREE@/version.c + +basic_unused = \ + @GMP_TREE@/tal-debug.c \ + @GMP_TREE@/tal-notreent.c + +logops_n_sources = and_n.c andn_n.c ior_n.c iorn_n.c nand_n.c nior_n.c xnor_n.c xor_n.c +popham_sources = hamdist.c popcount.c +sec_aors_1_sources = sec_add_1.c sec_sub_1.c +sec_div_sources = sec_div_qr.c sec_div_r.c +sec_pi1_div_sources = sec_pi1_div_qr.c sec_pi1_div_r.c + +$(logops_n_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(popham_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_aors_1_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_div_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_pi1_div_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ + +mpn_sources = \ + mp_bases.c \ + popcount.c \ + @GMP_TREE@/mpn/generic/add.c \ + @GMP_TREE@/mpn/generic/add_n.c \ + @GMP_TREE@/mpn/generic/addmul_1.c \ + @GMP_TREE@/mpn/generic/bdiv_dbm1c.c \ + @GMP_TREE@/mpn/generic/bdiv_q.c \ + @GMP_TREE@/mpn/generic/binvert.c \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_q.c \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/dcpi1_div_q.c \ + @GMP_TREE@/mpn/generic/dcpi1_div_qr.c \ + @GMP_TREE@/mpn/generic/dcpi1_divappr_q.c \ + @GMP_TREE@/mpn/generic/div_q.c \ + @GMP_TREE@/mpn/generic/div_qr_2n_pi1.c \ + @GMP_TREE@/mpn/generic/dive_1.c \ + @GMP_TREE@/mpn/generic/divexact.c \ + @GMP_TREE@/mpn/generic/divrem.c \ + @GMP_TREE@/mpn/generic/divrem_1.c \ + @GMP_TREE@/mpn/generic/divrem_2.c \ + @GMP_TREE@/mpn/generic/gcd_subdiv_step.c \ + @GMP_TREE@/mpn/generic/gcdext.c \ + @GMP_TREE@/mpn/generic/gcdext_1.c \ + @GMP_TREE@/mpn/generic/gcdext_lehmer.c \ + @GMP_TREE@/mpn/generic/get_str.c \ + @GMP_TREE@/mpn/generic/hgcd.c \ + @GMP_TREE@/mpn/generic/hgcd2.c \ + @GMP_TREE@/mpn/generic/hgcd_appr.c \ + @GMP_TREE@/mpn/generic/hgcd_matrix.c \ + @GMP_TREE@/mpn/generic/hgcd_reduce.c \ + @GMP_TREE@/mpn/generic/hgcd_step.c \ + @GMP_TREE@/mpn/generic/invertappr.c \ + @GMP_TREE@/mpn/generic/lshift.c \ + @GMP_TREE@/mpn/generic/lshiftc.c \ + @GMP_TREE@/mpn/generic/matrix22_mul.c \ + @GMP_TREE@/mpn/generic/matrix22_mul1_inverse_vector.c \ + @GMP_TREE@/mpn/generic/mu_bdiv_q.c \ + @GMP_TREE@/mpn/generic/mu_div_q.c \ + @GMP_TREE@/mpn/generic/mu_div_qr.c \ + @GMP_TREE@/mpn/generic/mu_divappr_q.c \ + @GMP_TREE@/mpn/generic/mul.c \ + @GMP_TREE@/mpn/generic/mul_1.c \ + @GMP_TREE@/mpn/generic/mul_basecase.c \ + @GMP_TREE@/mpn/generic/mul_n.c \ + @GMP_TREE@/mpn/generic/mul_fft.c \ + @GMP_TREE@/mpn/generic/mullo_basecase.c \ + @GMP_TREE@/mpn/generic/mullo_n.c \ + @GMP_TREE@/mpn/generic/mulmod_bnm1.c \ + @GMP_TREE@/mpn/generic/nussbaumer_mul.c \ + @GMP_TREE@/mpn/generic/powlo.c \ + @GMP_TREE@/mpn/generic/powm.c \ + @GMP_TREE@/mpn/generic/pre_divrem_1.c \ + @GMP_TREE@/mpn/generic/redc_1.c \ + @GMP_TREE@/mpn/generic/redc_n.c \ + @GMP_TREE@/mpn/generic/rshift.c \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_q.c \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/sbpi1_div_q.c \ + @GMP_TREE@/mpn/generic/sbpi1_div_qr.c \ + @GMP_TREE@/mpn/generic/sbpi1_divappr_q.c \ + @GMP_TREE@/mpn/generic/scan1.c \ + @GMP_TREE@/mpn/generic/set_str.c \ + @GMP_TREE@/mpn/generic/sqr.c \ + @GMP_TREE@/mpn/generic/sqr_basecase.c \ + @GMP_TREE@/mpn/generic/sqrmod_bnm1.c \ + @GMP_TREE@/mpn/generic/sqrtrem.c \ + @GMP_TREE@/mpn/generic/sub.c \ + @GMP_TREE@/mpn/generic/sub_n.c \ + @GMP_TREE@/mpn/generic/submul_1.c \ + @GMP_TREE@/mpn/generic/tdiv_qr.c \ + @GMP_TREE@/mpn/generic/toom2_sqr.c \ + @GMP_TREE@/mpn/generic/toom22_mul.c \ + @GMP_TREE@/mpn/generic/toom3_sqr.c \ + @GMP_TREE@/mpn/generic/toom32_mul.c \ + @GMP_TREE@/mpn/generic/toom33_mul.c \ + @GMP_TREE@/mpn/generic/toom42_mul.c \ + @GMP_TREE@/mpn/generic/toom42_mulmid.c \ + @GMP_TREE@/mpn/generic/toom43_mul.c \ + @GMP_TREE@/mpn/generic/toom44_mul.c \ + @GMP_TREE@/mpn/generic/toom53_mul.c \ + @GMP_TREE@/mpn/generic/toom63_mul.c \ + @GMP_TREE@/mpn/generic/toom6_sqr.c \ + @GMP_TREE@/mpn/generic/toom6h_mul.c \ + @GMP_TREE@/mpn/generic/toom8_sqr.c \ + @GMP_TREE@/mpn/generic/toom8h_mul.c \ + @GMP_TREE@/mpn/generic/toom_couple_handling.c \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm1.c \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm2.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm1.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2exp.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2rexp.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_12pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_16pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_5pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_6pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_7pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c + +mpn_unused = \ + $(logops_n_sources) \ + $(sec_aors_1_sources) \ + $(sec_div_sources) \ + $(sec_pi1_div_sources) \ + fib_table.c \ + hamdist.c \ + @GMP_TREE@/mpn/generic/add_1.c \ + @GMP_TREE@/mpn/generic/add_err1_n.c \ + @GMP_TREE@/mpn/generic/add_err2_n.c \ + @GMP_TREE@/mpn/generic/add_err3_n.c \ + @GMP_TREE@/mpn/generic/add_n_sub_n.c \ + @GMP_TREE@/mpn/generic/bdiv_q_1.c \ + @GMP_TREE@/mpn/generic/bdiv_qr.c \ + @GMP_TREE@/mpn/generic/broot.c \ + @GMP_TREE@/mpn/generic/brootinv.c \ + @GMP_TREE@/mpn/generic/bsqrt.c \ + @GMP_TREE@/mpn/generic/bsqrtinv.c \ + @GMP_TREE@/mpn/generic/cmp.c \ + @GMP_TREE@/mpn/generic/cnd_add_n.c \ + @GMP_TREE@/mpn/generic/cnd_sub_n.c \ + @GMP_TREE@/mpn/generic/com.c \ + @GMP_TREE@/mpn/generic/comb_tables.c \ + @GMP_TREE@/mpn/generic/copyd.c \ + @GMP_TREE@/mpn/generic/copyi.c \ + @GMP_TREE@/mpn/generic/div_qr_1.c \ + @GMP_TREE@/mpn/generic/div_qr_1n_pi1.c \ + @GMP_TREE@/mpn/generic/div_qr_2.c \ + @GMP_TREE@/mpn/generic/div_qr_2u_pi1.c \ + @GMP_TREE@/mpn/generic/diveby3.c \ + @GMP_TREE@/mpn/generic/divis.c \ + @GMP_TREE@/mpn/generic/dump.c \ + @GMP_TREE@/mpn/generic/fib2_ui.c \ + @GMP_TREE@/mpn/generic/gcd.c \ + @GMP_TREE@/mpn/generic/gcd_1.c \ + @GMP_TREE@/mpn/generic/get_d.c \ + @GMP_TREE@/mpn/generic/hgcd2_jacobi.c \ + @GMP_TREE@/mpn/generic/hgcd_jacobi.c \ + @GMP_TREE@/mpn/generic/invert.c \ + @GMP_TREE@/mpn/generic/jacbase.c \ + @GMP_TREE@/mpn/generic/jacobi.c \ + @GMP_TREE@/mpn/generic/jacobi_2.c \ + @GMP_TREE@/mpn/generic/mod_1.c \ + @GMP_TREE@/mpn/generic/mod_1_1.c \ + @GMP_TREE@/mpn/generic/mod_1_2.c \ + @GMP_TREE@/mpn/generic/mod_1_3.c \ + @GMP_TREE@/mpn/generic/mod_1_4.c \ + @GMP_TREE@/mpn/generic/mod_34lsub1.c \ + @GMP_TREE@/mpn/generic/mode1o.c \ + @GMP_TREE@/mpn/generic/mu_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/mulmid.c \ + @GMP_TREE@/mpn/generic/mulmid_basecase.c \ + @GMP_TREE@/mpn/generic/mulmid_n.c \ + @GMP_TREE@/mpn/generic/neg.c \ + @GMP_TREE@/mpn/generic/perfpow.c \ + @GMP_TREE@/mpn/generic/perfsqr.c \ + @GMP_TREE@/mpn/generic/pow_1.c \ + @GMP_TREE@/mpn/generic/pre_mod_1.c \ + @GMP_TREE@/mpn/generic/random.c \ + @GMP_TREE@/mpn/generic/random2.c \ + @GMP_TREE@/mpn/generic/redc_2.c \ + @GMP_TREE@/mpn/generic/remove.c \ + @GMP_TREE@/mpn/generic/rootrem.c \ + @GMP_TREE@/mpn/generic/scan0.c \ + @GMP_TREE@/mpn/generic/sec_invert.c \ + @GMP_TREE@/mpn/generic/sec_mul.c \ + @GMP_TREE@/mpn/generic/sec_powm.c \ + @GMP_TREE@/mpn/generic/sec_sqr.c \ + @GMP_TREE@/mpn/generic/sec_tabselect.c \ + @GMP_TREE@/mpn/generic/sizeinbase.c \ + @GMP_TREE@/mpn/generic/sub_1.c \ + @GMP_TREE@/mpn/generic/sub_err1_n.c \ + @GMP_TREE@/mpn/generic/sub_err2_n.c \ + @GMP_TREE@/mpn/generic/sub_err3_n.c \ + @GMP_TREE@/mpn/generic/toom4_sqr.c \ + @GMP_TREE@/mpn/generic/toom52_mul.c \ + @GMP_TREE@/mpn/generic/toom54_mul.c \ + @GMP_TREE@/mpn/generic/toom62_mul.c \ + @GMP_TREE@/mpn/generic/trialdiv.c \ + @GMP_TREE@/mpn/generic/zero.c + +mpz_sources = \ + @GMP_TREE@/mpz/add.c \ + @GMP_TREE@/mpz/add_ui.c \ + @GMP_TREE@/mpz/aorsmul.c \ + @GMP_TREE@/mpz/aorsmul_i.c \ + @GMP_TREE@/mpz/cfdiv_q_2exp.c \ + @GMP_TREE@/mpz/clear.c \ + @GMP_TREE@/mpz/cmp_ui.c \ + @GMP_TREE@/mpz/cmpabs.c \ + @GMP_TREE@/mpz/divexact.c \ + @GMP_TREE@/mpz/fdiv_q.c \ + @GMP_TREE@/mpz/fdiv_q_ui.c \ + @GMP_TREE@/mpz/fdiv_qr.c \ + @GMP_TREE@/mpz/gcdext.c \ + @GMP_TREE@/mpz/get_si.c \ + @GMP_TREE@/mpz/init.c \ + @GMP_TREE@/mpz/invert.c \ + @GMP_TREE@/mpz/iset.c \ + @GMP_TREE@/mpz/iset_ui.c \ + @GMP_TREE@/mpz/mod.c \ + @GMP_TREE@/mpz/mul.c \ + @GMP_TREE@/mpz/mul_2exp.c \ + @GMP_TREE@/mpz/mul_si.c \ + @GMP_TREE@/mpz/mul_ui.c \ + @GMP_TREE@/mpz/n_pow_ui.c \ + @GMP_TREE@/mpz/powm.c \ + @GMP_TREE@/mpz/powm_ui.c \ + @GMP_TREE@/mpz/realloc.c \ + @GMP_TREE@/mpz/scan1.c \ + @GMP_TREE@/mpz/set.c \ + @GMP_TREE@/mpz/set_ui.c \ + @GMP_TREE@/mpz/sizeinbase.c \ + @GMP_TREE@/mpz/sqrt.c \ + @GMP_TREE@/mpz/sub.c \ + @GMP_TREE@/mpz/sub_ui.c \ + @GMP_TREE@/mpz/swap.c \ + @GMP_TREE@/mpz/tdiv_q.c \ + @GMP_TREE@/mpz/tdiv_q_2exp.c \ + @GMP_TREE@/mpz/tdiv_qr.c \ + @GMP_TREE@/mpz/tdiv_r.c \ + @GMP_TREE@/mpz/tdiv_r_2exp.c \ + @GMP_TREE@/mpz/tstbit.c \ + @GMP_TREE@/mpz/ui_pow_ui.c + +mpz_unused = \ + @GMP_TREE@/mpz/2fac_ui.c \ + @GMP_TREE@/mpz/abs.c \ + @GMP_TREE@/mpz/and.c \ + @GMP_TREE@/mpz/array_init.c \ + @GMP_TREE@/mpz/bin_ui.c \ + @GMP_TREE@/mpz/bin_uiui.c \ + @GMP_TREE@/mpz/cdiv_q.c \ + @GMP_TREE@/mpz/cdiv_q_ui.c \ + @GMP_TREE@/mpz/cdiv_qr.c \ + @GMP_TREE@/mpz/cdiv_qr_ui.c \ + @GMP_TREE@/mpz/cdiv_r.c \ + @GMP_TREE@/mpz/cdiv_r_ui.c \ + @GMP_TREE@/mpz/cdiv_ui.c \ + @GMP_TREE@/mpz/cfdiv_r_2exp.c \ + @GMP_TREE@/mpz/clears.c \ + @GMP_TREE@/mpz/clrbit.c \ + @GMP_TREE@/mpz/cmp.c \ + @GMP_TREE@/mpz/cmp_d.c \ + @GMP_TREE@/mpz/cmp_si.c \ + @GMP_TREE@/mpz/cmpabs_d.c \ + @GMP_TREE@/mpz/cmpabs_ui.c \ + @GMP_TREE@/mpz/com.c \ + @GMP_TREE@/mpz/combit.c \ + @GMP_TREE@/mpz/cong.c \ + @GMP_TREE@/mpz/cong_2exp.c \ + @GMP_TREE@/mpz/cong_ui.c \ + @GMP_TREE@/mpz/dive_ui.c \ + @GMP_TREE@/mpz/divegcd.c \ + @GMP_TREE@/mpz/divis.c \ + @GMP_TREE@/mpz/divis_2exp.c \ + @GMP_TREE@/mpz/divis_ui.c \ + @GMP_TREE@/mpz/dump.c \ + @GMP_TREE@/mpz/export.c \ + @GMP_TREE@/mpz/fac_ui.c \ + @GMP_TREE@/mpz/fdiv_qr_ui.c \ + @GMP_TREE@/mpz/fdiv_r.c \ + @GMP_TREE@/mpz/fdiv_r_ui.c \ + @GMP_TREE@/mpz/fdiv_ui.c \ + @GMP_TREE@/mpz/fib2_ui.c \ + @GMP_TREE@/mpz/fib_ui.c \ + @GMP_TREE@/mpz/fits_sint.c \ + @GMP_TREE@/mpz/fits_slong.c \ + @GMP_TREE@/mpz/fits_sshort.c \ + @GMP_TREE@/mpz/fits_uint.c \ + @GMP_TREE@/mpz/fits_ulong.c \ + @GMP_TREE@/mpz/fits_ushort.c \ + @GMP_TREE@/mpz/gcd.c \ + @GMP_TREE@/mpz/gcd_ui.c \ + @GMP_TREE@/mpz/get_d.c \ + @GMP_TREE@/mpz/get_d_2exp.c \ + @GMP_TREE@/mpz/get_str.c \ + @GMP_TREE@/mpz/get_ui.c \ + @GMP_TREE@/mpz/getlimbn.c \ + @GMP_TREE@/mpz/hamdist.c \ + @GMP_TREE@/mpz/import.c \ + @GMP_TREE@/mpz/init2.c \ + @GMP_TREE@/mpz/inits.c \ + @GMP_TREE@/mpz/inp_raw.c \ + @GMP_TREE@/mpz/inp_str.c \ + @GMP_TREE@/mpz/ior.c \ + @GMP_TREE@/mpz/iset_d.c \ + @GMP_TREE@/mpz/iset_si.c \ + @GMP_TREE@/mpz/iset_str.c \ + @GMP_TREE@/mpz/jacobi.c \ + @GMP_TREE@/mpz/kronsz.c \ + @GMP_TREE@/mpz/kronuz.c \ + @GMP_TREE@/mpz/kronzs.c \ + @GMP_TREE@/mpz/kronzu.c \ + @GMP_TREE@/mpz/lcm.c \ + @GMP_TREE@/mpz/lcm_ui.c \ + @GMP_TREE@/mpz/limbs_finish.c \ + @GMP_TREE@/mpz/limbs_modify.c \ + @GMP_TREE@/mpz/limbs_read.c \ + @GMP_TREE@/mpz/limbs_write.c \ + @GMP_TREE@/mpz/lucnum2_ui.c \ + @GMP_TREE@/mpz/lucnum_ui.c \ + @GMP_TREE@/mpz/mfac_uiui.c \ + @GMP_TREE@/mpz/millerrabin.c \ + @GMP_TREE@/mpz/neg.c \ + @GMP_TREE@/mpz/nextprime.c \ + @GMP_TREE@/mpz/oddfac_1.c \ + @GMP_TREE@/mpz/out_raw.c \ + @GMP_TREE@/mpz/out_str.c \ + @GMP_TREE@/mpz/perfpow.c \ + @GMP_TREE@/mpz/perfsqr.c \ + @GMP_TREE@/mpz/popcount.c \ + @GMP_TREE@/mpz/pow_ui.c \ + @GMP_TREE@/mpz/powm_sec.c \ + @GMP_TREE@/mpz/pprime_p.c \ + @GMP_TREE@/mpz/primorial_ui.c \ + @GMP_TREE@/mpz/prodlimbs.c \ + @GMP_TREE@/mpz/random.c \ + @GMP_TREE@/mpz/random2.c \ + @GMP_TREE@/mpz/realloc2.c \ + @GMP_TREE@/mpz/remove.c \ + @GMP_TREE@/mpz/roinit_n.c \ + @GMP_TREE@/mpz/root.c \ + @GMP_TREE@/mpz/rootrem.c \ + @GMP_TREE@/mpz/rrandomb.c \ + @GMP_TREE@/mpz/scan0.c \ + @GMP_TREE@/mpz/set_d.c \ + @GMP_TREE@/mpz/set_f.c \ + @GMP_TREE@/mpz/set_q.c \ + @GMP_TREE@/mpz/set_si.c \ + @GMP_TREE@/mpz/set_str.c \ + @GMP_TREE@/mpz/setbit.c \ + @GMP_TREE@/mpz/size.c \ + @GMP_TREE@/mpz/sqrtrem.c \ + @GMP_TREE@/mpz/tdiv_q_ui.c \ + @GMP_TREE@/mpz/tdiv_qr_ui.c \ + @GMP_TREE@/mpz/tdiv_r_ui.c \ + @GMP_TREE@/mpz/tdiv_ui.c \ + @GMP_TREE@/mpz/ui_sub.c \ + @GMP_TREE@/mpz/urandomb.c \ + @GMP_TREE@/mpz/urandomm.c \ + @GMP_TREE@/mpz/xor.c + +DISTCLEANFILES = + +native/stamp-bases: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-bases +mp_bases.h: native/stamp-bases + $(AM_V_GEN)native/gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +mp_bases.c: mp_bases.h + $(AM_V_GEN)native/gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += mp_bases.h mp_bases.c + +native/stamp-fac: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-fac +fac_table.h: native/stamp-fac + $(AM_V_GEN)native/gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += fac_table.h + +native/stamp-fib: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-fib +fib_table.h: native/stamp-fib + $(AM_V_GEN)native/gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +fib_table.c: fib_table.h + $(AM_V_GEN)native/gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += fib_table.h fib_table.c + +native/stamp-jacobitab: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-jacobitab +jacobitab.h: native/stamp-jacobitab + $(AM_V_GEN)native/gen-jacobitab >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += jacobitab.h + +native/stamp-psqr: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-psqr +perfsqr.h: native/stamp-psqr + $(AM_V_GEN)native/gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += perfsqr.h + +native/stamp-trialdivtab: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-trialdivtab +trialdivtab.h: native/stamp-trialdivtab + $(AM_V_GEN)native/gen-trialdivtab $(GMP_LIMB_BITS) 8000 >$@ || (rm -f $@; exit 1) +DISTCLEANFILES += trialdivtab.h + +if build +check_PROGRAMS = gmptest +dist_check_SCRIPTS = gmp.test +TESTS = gmp.test +endif build + +gmptest_SOURCES = gmptest.c + +gmptest_CPPFLAGS = -Iinclude + +LDADD = libgmp.a + +# Reconfig +reconfig_prereq = + +include $(srcdir)/../../am/reconfig.am + +# Rebuild +rebuild_prereq = +rebuild_target = all +CLEANFILES = + +include $(srcdir)/../../am/rebuild.am + diff --git a/Build/source/libs/gmp/Makefile.in b/Build/source/libs/gmp/Makefile.in new file mode 100644 index 00000000000..bb4461beaf4 --- /dev/null +++ b/Build/source/libs/gmp/Makefile.in @@ -0,0 +1,2474 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@build_TRUE@check_PROGRAMS = gmptest$(EXEEXT) +DIST_COMMON = $(srcdir)/../../am/reconfig.am \ + $(srcdir)/../../am/rebuild.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(srcdir)/config.h.in \ + $(top_srcdir)/gmp-6.0.0/gmp-h.in \ + $(am__dist_check_SCRIPTS_DIST) \ + $(top_srcdir)/../../build-aux/depcomp \ + $(top_srcdir)/../../build-aux/test-driver ChangeLog README \ + ../../build-aux/compile ../../build-aux/config.guess \ + ../../build-aux/config.sub ../../build-aux/depcomp \ + ../../build-aux/install-sh ../../build-aux/missing \ + ../../build-aux/texinfo.tex ../../build-aux/ylwrap \ + ../../build-aux/ltmain.sh \ + $(top_srcdir)/../../build-aux/compile \ + $(top_srcdir)/../../build-aux/config.guess \ + $(top_srcdir)/../../build-aux/config.sub \ + $(top_srcdir)/../../build-aux/install-sh \ + $(top_srcdir)/../../build-aux/missing +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gmp-alloca.m4 \ + $(top_srcdir)/m4/gmp-attribute.m4 \ + $(top_srcdir)/m4/gmp-double-format.m4 \ + $(top_srcdir)/../../m4/kpse-common.m4 \ + $(top_srcdir)/../../m4/kpse-warnings.m4 \ + $(top_srcdir)/version.ac $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = gmp.h +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = +libgmp_a_AR = $(AR) $(ARFLAGS) +libgmp_a_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = @GMP_TREE@/assert.$(OBJEXT) \ + @GMP_TREE@/compat.$(OBJEXT) @GMP_TREE@/errno.$(OBJEXT) \ + @GMP_TREE@/extract-dbl.$(OBJEXT) @GMP_TREE@/invalid.$(OBJEXT) \ + @GMP_TREE@/memory.$(OBJEXT) @GMP_TREE@/mp_bpl.$(OBJEXT) \ + @GMP_TREE@/mp_clz_tab.$(OBJEXT) @GMP_TREE@/mp_dv_tab.$(OBJEXT) \ + @GMP_TREE@/mp_get_fns.$(OBJEXT) \ + @GMP_TREE@/mp_minv_tab.$(OBJEXT) \ + @GMP_TREE@/mp_set_fns.$(OBJEXT) @GMP_TREE@/nextprime.$(OBJEXT) \ + @GMP_TREE@/primesieve.$(OBJEXT) @GMP_TREE@/tal-reent.$(OBJEXT) \ + @GMP_TREE@/version.$(OBJEXT) +am__objects_2 = mp_bases.$(OBJEXT) popcount.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/add.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/add_n.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/addmul_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/bdiv_dbm1c.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/bdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/binvert.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dcpi1_div_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dcpi1_div_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dcpi1_divappr_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/div_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/div_qr_2n_pi1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/dive_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/divexact.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/divrem.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/divrem_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/divrem_2.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/gcd_subdiv_step.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/gcdext.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/gcdext_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/gcdext_lehmer.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/get_str.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd2.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd_appr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd_matrix.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd_reduce.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/hgcd_step.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/invertappr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/lshift.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/lshiftc.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/matrix22_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/matrix22_mul1_inverse_vector.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mu_bdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mu_div_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mu_div_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mu_divappr_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mul_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mul_basecase.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mul_n.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mul_fft.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mullo_basecase.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mullo_n.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/mulmod_bnm1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/nussbaumer_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/powlo.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/powm.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/pre_divrem_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/redc_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/redc_n.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/rshift.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sbpi1_div_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sbpi1_div_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sbpi1_divappr_q.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/scan1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/set_str.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sqr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sqr_basecase.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sqrmod_bnm1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sqrtrem.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sub.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/sub_n.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/submul_1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/tdiv_qr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom22_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom32_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom33_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom42_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom42_mulmid.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom43_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom44_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom53_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom63_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom6_sqr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom6h_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom8_sqr.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom8h_mul.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_couple_handling.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm2.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_pm1.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_pm2.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_pm2exp.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_eval_pm2rexp.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_12pts.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_16pts.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_5pts.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_6pts.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_7pts.$(OBJEXT) \ + @GMP_TREE@/mpn/generic/toom_interpolate_8pts.$(OBJEXT) +am__objects_3 = @GMP_TREE@/mpz/add.$(OBJEXT) \ + @GMP_TREE@/mpz/add_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/aorsmul.$(OBJEXT) \ + @GMP_TREE@/mpz/aorsmul_i.$(OBJEXT) \ + @GMP_TREE@/mpz/cfdiv_q_2exp.$(OBJEXT) \ + @GMP_TREE@/mpz/clear.$(OBJEXT) @GMP_TREE@/mpz/cmp_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/cmpabs.$(OBJEXT) \ + @GMP_TREE@/mpz/divexact.$(OBJEXT) \ + @GMP_TREE@/mpz/fdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpz/fdiv_q_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/fdiv_qr.$(OBJEXT) \ + @GMP_TREE@/mpz/gcdext.$(OBJEXT) \ + @GMP_TREE@/mpz/get_si.$(OBJEXT) @GMP_TREE@/mpz/init.$(OBJEXT) \ + @GMP_TREE@/mpz/invert.$(OBJEXT) @GMP_TREE@/mpz/iset.$(OBJEXT) \ + @GMP_TREE@/mpz/iset_ui.$(OBJEXT) @GMP_TREE@/mpz/mod.$(OBJEXT) \ + @GMP_TREE@/mpz/mul.$(OBJEXT) @GMP_TREE@/mpz/mul_2exp.$(OBJEXT) \ + @GMP_TREE@/mpz/mul_si.$(OBJEXT) \ + @GMP_TREE@/mpz/mul_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/n_pow_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/powm.$(OBJEXT) @GMP_TREE@/mpz/powm_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/realloc.$(OBJEXT) \ + @GMP_TREE@/mpz/scan1.$(OBJEXT) @GMP_TREE@/mpz/set.$(OBJEXT) \ + @GMP_TREE@/mpz/set_ui.$(OBJEXT) \ + @GMP_TREE@/mpz/sizeinbase.$(OBJEXT) \ + @GMP_TREE@/mpz/sqrt.$(OBJEXT) @GMP_TREE@/mpz/sub.$(OBJEXT) \ + @GMP_TREE@/mpz/sub_ui.$(OBJEXT) @GMP_TREE@/mpz/swap.$(OBJEXT) \ + @GMP_TREE@/mpz/tdiv_q.$(OBJEXT) \ + @GMP_TREE@/mpz/tdiv_q_2exp.$(OBJEXT) \ + @GMP_TREE@/mpz/tdiv_qr.$(OBJEXT) \ + @GMP_TREE@/mpz/tdiv_r.$(OBJEXT) \ + @GMP_TREE@/mpz/tdiv_r_2exp.$(OBJEXT) \ + @GMP_TREE@/mpz/tstbit.$(OBJEXT) \ + @GMP_TREE@/mpz/ui_pow_ui.$(OBJEXT) +nodist_libgmp_a_OBJECTS = $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) +libgmp_a_OBJECTS = $(nodist_libgmp_a_OBJECTS) +am_gmptest_OBJECTS = gmptest-gmptest.$(OBJEXT) +gmptest_OBJECTS = $(am_gmptest_OBJECTS) +gmptest_LDADD = $(LDADD) +gmptest_DEPENDENCIES = libgmp.a +am__dist_check_SCRIPTS_DIST = gmp.test +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(nodist_libgmp_a_SOURCES) $(gmptest_SOURCES) +DIST_SOURCES = $(gmptest_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope check recheck distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFN_LONG_LONG_LIMB = @DEFN_LONG_LONG_LIMB@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GMP_LIMB_BITS = @GMP_LIMB_BITS@ +GMP_NAIL_BITS = @GMP_NAIL_BITS@ +GMP_TREE = @GMP_TREE@ +GREP = @GREP@ +HAVE_HOST_CPU_FAMILY_power = @HAVE_HOST_CPU_FAMILY_power@ +HAVE_HOST_CPU_FAMILY_powerpc = @HAVE_HOST_CPU_FAMILY_powerpc@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBGMP_DLL = @LIBGMP_DLL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = $(GMP_TREE) $(GMP_TREE)-PATCHES +SUBDIRS = native . include +AM_CPPFLAGS = -I$(srcdir)/$(GMP_TREE) -I$(srcdir)/$(GMP_TREE)/mpn/generic -DNO_ASM +AM_CFLAGS = # $(WARNING_CFLAGS) +noinst_LIBRARIES = libgmp.a +nodist_libgmp_a_SOURCES = \ + $(basic_sources) \ + $(mpn_sources) \ + $(mpz_sources) + +basic_sources = \ + @GMP_TREE@/assert.c \ + @GMP_TREE@/compat.c \ + @GMP_TREE@/errno.c \ + @GMP_TREE@/extract-dbl.c \ + @GMP_TREE@/invalid.c \ + @GMP_TREE@/memory.c \ + @GMP_TREE@/mp_bpl.c \ + @GMP_TREE@/mp_clz_tab.c \ + @GMP_TREE@/mp_dv_tab.c \ + @GMP_TREE@/mp_get_fns.c \ + @GMP_TREE@/mp_minv_tab.c \ + @GMP_TREE@/mp_set_fns.c \ + @GMP_TREE@/nextprime.c \ + @GMP_TREE@/primesieve.c \ + @GMP_TREE@/tal-reent.c \ + @GMP_TREE@/version.c + +basic_unused = \ + @GMP_TREE@/tal-debug.c \ + @GMP_TREE@/tal-notreent.c + +logops_n_sources = and_n.c andn_n.c ior_n.c iorn_n.c nand_n.c nior_n.c xnor_n.c xor_n.c +popham_sources = hamdist.c popcount.c +sec_aors_1_sources = sec_add_1.c sec_sub_1.c +sec_div_sources = sec_div_qr.c sec_div_r.c +sec_pi1_div_sources = sec_pi1_div_qr.c sec_pi1_div_r.c +mpn_sources = \ + mp_bases.c \ + popcount.c \ + @GMP_TREE@/mpn/generic/add.c \ + @GMP_TREE@/mpn/generic/add_n.c \ + @GMP_TREE@/mpn/generic/addmul_1.c \ + @GMP_TREE@/mpn/generic/bdiv_dbm1c.c \ + @GMP_TREE@/mpn/generic/bdiv_q.c \ + @GMP_TREE@/mpn/generic/binvert.c \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_q.c \ + @GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/dcpi1_div_q.c \ + @GMP_TREE@/mpn/generic/dcpi1_div_qr.c \ + @GMP_TREE@/mpn/generic/dcpi1_divappr_q.c \ + @GMP_TREE@/mpn/generic/div_q.c \ + @GMP_TREE@/mpn/generic/div_qr_2n_pi1.c \ + @GMP_TREE@/mpn/generic/dive_1.c \ + @GMP_TREE@/mpn/generic/divexact.c \ + @GMP_TREE@/mpn/generic/divrem.c \ + @GMP_TREE@/mpn/generic/divrem_1.c \ + @GMP_TREE@/mpn/generic/divrem_2.c \ + @GMP_TREE@/mpn/generic/gcd_subdiv_step.c \ + @GMP_TREE@/mpn/generic/gcdext.c \ + @GMP_TREE@/mpn/generic/gcdext_1.c \ + @GMP_TREE@/mpn/generic/gcdext_lehmer.c \ + @GMP_TREE@/mpn/generic/get_str.c \ + @GMP_TREE@/mpn/generic/hgcd.c \ + @GMP_TREE@/mpn/generic/hgcd2.c \ + @GMP_TREE@/mpn/generic/hgcd_appr.c \ + @GMP_TREE@/mpn/generic/hgcd_matrix.c \ + @GMP_TREE@/mpn/generic/hgcd_reduce.c \ + @GMP_TREE@/mpn/generic/hgcd_step.c \ + @GMP_TREE@/mpn/generic/invertappr.c \ + @GMP_TREE@/mpn/generic/lshift.c \ + @GMP_TREE@/mpn/generic/lshiftc.c \ + @GMP_TREE@/mpn/generic/matrix22_mul.c \ + @GMP_TREE@/mpn/generic/matrix22_mul1_inverse_vector.c \ + @GMP_TREE@/mpn/generic/mu_bdiv_q.c \ + @GMP_TREE@/mpn/generic/mu_div_q.c \ + @GMP_TREE@/mpn/generic/mu_div_qr.c \ + @GMP_TREE@/mpn/generic/mu_divappr_q.c \ + @GMP_TREE@/mpn/generic/mul.c \ + @GMP_TREE@/mpn/generic/mul_1.c \ + @GMP_TREE@/mpn/generic/mul_basecase.c \ + @GMP_TREE@/mpn/generic/mul_n.c \ + @GMP_TREE@/mpn/generic/mul_fft.c \ + @GMP_TREE@/mpn/generic/mullo_basecase.c \ + @GMP_TREE@/mpn/generic/mullo_n.c \ + @GMP_TREE@/mpn/generic/mulmod_bnm1.c \ + @GMP_TREE@/mpn/generic/nussbaumer_mul.c \ + @GMP_TREE@/mpn/generic/powlo.c \ + @GMP_TREE@/mpn/generic/powm.c \ + @GMP_TREE@/mpn/generic/pre_divrem_1.c \ + @GMP_TREE@/mpn/generic/redc_1.c \ + @GMP_TREE@/mpn/generic/redc_n.c \ + @GMP_TREE@/mpn/generic/rshift.c \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_q.c \ + @GMP_TREE@/mpn/generic/sbpi1_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/sbpi1_div_q.c \ + @GMP_TREE@/mpn/generic/sbpi1_div_qr.c \ + @GMP_TREE@/mpn/generic/sbpi1_divappr_q.c \ + @GMP_TREE@/mpn/generic/scan1.c \ + @GMP_TREE@/mpn/generic/set_str.c \ + @GMP_TREE@/mpn/generic/sqr.c \ + @GMP_TREE@/mpn/generic/sqr_basecase.c \ + @GMP_TREE@/mpn/generic/sqrmod_bnm1.c \ + @GMP_TREE@/mpn/generic/sqrtrem.c \ + @GMP_TREE@/mpn/generic/sub.c \ + @GMP_TREE@/mpn/generic/sub_n.c \ + @GMP_TREE@/mpn/generic/submul_1.c \ + @GMP_TREE@/mpn/generic/tdiv_qr.c \ + @GMP_TREE@/mpn/generic/toom2_sqr.c \ + @GMP_TREE@/mpn/generic/toom22_mul.c \ + @GMP_TREE@/mpn/generic/toom3_sqr.c \ + @GMP_TREE@/mpn/generic/toom32_mul.c \ + @GMP_TREE@/mpn/generic/toom33_mul.c \ + @GMP_TREE@/mpn/generic/toom42_mul.c \ + @GMP_TREE@/mpn/generic/toom42_mulmid.c \ + @GMP_TREE@/mpn/generic/toom43_mul.c \ + @GMP_TREE@/mpn/generic/toom44_mul.c \ + @GMP_TREE@/mpn/generic/toom53_mul.c \ + @GMP_TREE@/mpn/generic/toom63_mul.c \ + @GMP_TREE@/mpn/generic/toom6_sqr.c \ + @GMP_TREE@/mpn/generic/toom6h_mul.c \ + @GMP_TREE@/mpn/generic/toom8_sqr.c \ + @GMP_TREE@/mpn/generic/toom8h_mul.c \ + @GMP_TREE@/mpn/generic/toom_couple_handling.c \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm1.c \ + @GMP_TREE@/mpn/generic/toom_eval_dgr3_pm2.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm1.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2exp.c \ + @GMP_TREE@/mpn/generic/toom_eval_pm2rexp.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_12pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_16pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_5pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_6pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_7pts.c \ + @GMP_TREE@/mpn/generic/toom_interpolate_8pts.c + +mpn_unused = \ + $(logops_n_sources) \ + $(sec_aors_1_sources) \ + $(sec_div_sources) \ + $(sec_pi1_div_sources) \ + fib_table.c \ + hamdist.c \ + @GMP_TREE@/mpn/generic/add_1.c \ + @GMP_TREE@/mpn/generic/add_err1_n.c \ + @GMP_TREE@/mpn/generic/add_err2_n.c \ + @GMP_TREE@/mpn/generic/add_err3_n.c \ + @GMP_TREE@/mpn/generic/add_n_sub_n.c \ + @GMP_TREE@/mpn/generic/bdiv_q_1.c \ + @GMP_TREE@/mpn/generic/bdiv_qr.c \ + @GMP_TREE@/mpn/generic/broot.c \ + @GMP_TREE@/mpn/generic/brootinv.c \ + @GMP_TREE@/mpn/generic/bsqrt.c \ + @GMP_TREE@/mpn/generic/bsqrtinv.c \ + @GMP_TREE@/mpn/generic/cmp.c \ + @GMP_TREE@/mpn/generic/cnd_add_n.c \ + @GMP_TREE@/mpn/generic/cnd_sub_n.c \ + @GMP_TREE@/mpn/generic/com.c \ + @GMP_TREE@/mpn/generic/comb_tables.c \ + @GMP_TREE@/mpn/generic/copyd.c \ + @GMP_TREE@/mpn/generic/copyi.c \ + @GMP_TREE@/mpn/generic/div_qr_1.c \ + @GMP_TREE@/mpn/generic/div_qr_1n_pi1.c \ + @GMP_TREE@/mpn/generic/div_qr_2.c \ + @GMP_TREE@/mpn/generic/div_qr_2u_pi1.c \ + @GMP_TREE@/mpn/generic/diveby3.c \ + @GMP_TREE@/mpn/generic/divis.c \ + @GMP_TREE@/mpn/generic/dump.c \ + @GMP_TREE@/mpn/generic/fib2_ui.c \ + @GMP_TREE@/mpn/generic/gcd.c \ + @GMP_TREE@/mpn/generic/gcd_1.c \ + @GMP_TREE@/mpn/generic/get_d.c \ + @GMP_TREE@/mpn/generic/hgcd2_jacobi.c \ + @GMP_TREE@/mpn/generic/hgcd_jacobi.c \ + @GMP_TREE@/mpn/generic/invert.c \ + @GMP_TREE@/mpn/generic/jacbase.c \ + @GMP_TREE@/mpn/generic/jacobi.c \ + @GMP_TREE@/mpn/generic/jacobi_2.c \ + @GMP_TREE@/mpn/generic/mod_1.c \ + @GMP_TREE@/mpn/generic/mod_1_1.c \ + @GMP_TREE@/mpn/generic/mod_1_2.c \ + @GMP_TREE@/mpn/generic/mod_1_3.c \ + @GMP_TREE@/mpn/generic/mod_1_4.c \ + @GMP_TREE@/mpn/generic/mod_34lsub1.c \ + @GMP_TREE@/mpn/generic/mode1o.c \ + @GMP_TREE@/mpn/generic/mu_bdiv_qr.c \ + @GMP_TREE@/mpn/generic/mulmid.c \ + @GMP_TREE@/mpn/generic/mulmid_basecase.c \ + @GMP_TREE@/mpn/generic/mulmid_n.c \ + @GMP_TREE@/mpn/generic/neg.c \ + @GMP_TREE@/mpn/generic/perfpow.c \ + @GMP_TREE@/mpn/generic/perfsqr.c \ + @GMP_TREE@/mpn/generic/pow_1.c \ + @GMP_TREE@/mpn/generic/pre_mod_1.c \ + @GMP_TREE@/mpn/generic/random.c \ + @GMP_TREE@/mpn/generic/random2.c \ + @GMP_TREE@/mpn/generic/redc_2.c \ + @GMP_TREE@/mpn/generic/remove.c \ + @GMP_TREE@/mpn/generic/rootrem.c \ + @GMP_TREE@/mpn/generic/scan0.c \ + @GMP_TREE@/mpn/generic/sec_invert.c \ + @GMP_TREE@/mpn/generic/sec_mul.c \ + @GMP_TREE@/mpn/generic/sec_powm.c \ + @GMP_TREE@/mpn/generic/sec_sqr.c \ + @GMP_TREE@/mpn/generic/sec_tabselect.c \ + @GMP_TREE@/mpn/generic/sizeinbase.c \ + @GMP_TREE@/mpn/generic/sub_1.c \ + @GMP_TREE@/mpn/generic/sub_err1_n.c \ + @GMP_TREE@/mpn/generic/sub_err2_n.c \ + @GMP_TREE@/mpn/generic/sub_err3_n.c \ + @GMP_TREE@/mpn/generic/toom4_sqr.c \ + @GMP_TREE@/mpn/generic/toom52_mul.c \ + @GMP_TREE@/mpn/generic/toom54_mul.c \ + @GMP_TREE@/mpn/generic/toom62_mul.c \ + @GMP_TREE@/mpn/generic/trialdiv.c \ + @GMP_TREE@/mpn/generic/zero.c + +mpz_sources = \ + @GMP_TREE@/mpz/add.c \ + @GMP_TREE@/mpz/add_ui.c \ + @GMP_TREE@/mpz/aorsmul.c \ + @GMP_TREE@/mpz/aorsmul_i.c \ + @GMP_TREE@/mpz/cfdiv_q_2exp.c \ + @GMP_TREE@/mpz/clear.c \ + @GMP_TREE@/mpz/cmp_ui.c \ + @GMP_TREE@/mpz/cmpabs.c \ + @GMP_TREE@/mpz/divexact.c \ + @GMP_TREE@/mpz/fdiv_q.c \ + @GMP_TREE@/mpz/fdiv_q_ui.c \ + @GMP_TREE@/mpz/fdiv_qr.c \ + @GMP_TREE@/mpz/gcdext.c \ + @GMP_TREE@/mpz/get_si.c \ + @GMP_TREE@/mpz/init.c \ + @GMP_TREE@/mpz/invert.c \ + @GMP_TREE@/mpz/iset.c \ + @GMP_TREE@/mpz/iset_ui.c \ + @GMP_TREE@/mpz/mod.c \ + @GMP_TREE@/mpz/mul.c \ + @GMP_TREE@/mpz/mul_2exp.c \ + @GMP_TREE@/mpz/mul_si.c \ + @GMP_TREE@/mpz/mul_ui.c \ + @GMP_TREE@/mpz/n_pow_ui.c \ + @GMP_TREE@/mpz/powm.c \ + @GMP_TREE@/mpz/powm_ui.c \ + @GMP_TREE@/mpz/realloc.c \ + @GMP_TREE@/mpz/scan1.c \ + @GMP_TREE@/mpz/set.c \ + @GMP_TREE@/mpz/set_ui.c \ + @GMP_TREE@/mpz/sizeinbase.c \ + @GMP_TREE@/mpz/sqrt.c \ + @GMP_TREE@/mpz/sub.c \ + @GMP_TREE@/mpz/sub_ui.c \ + @GMP_TREE@/mpz/swap.c \ + @GMP_TREE@/mpz/tdiv_q.c \ + @GMP_TREE@/mpz/tdiv_q_2exp.c \ + @GMP_TREE@/mpz/tdiv_qr.c \ + @GMP_TREE@/mpz/tdiv_r.c \ + @GMP_TREE@/mpz/tdiv_r_2exp.c \ + @GMP_TREE@/mpz/tstbit.c \ + @GMP_TREE@/mpz/ui_pow_ui.c + +mpz_unused = \ + @GMP_TREE@/mpz/2fac_ui.c \ + @GMP_TREE@/mpz/abs.c \ + @GMP_TREE@/mpz/and.c \ + @GMP_TREE@/mpz/array_init.c \ + @GMP_TREE@/mpz/bin_ui.c \ + @GMP_TREE@/mpz/bin_uiui.c \ + @GMP_TREE@/mpz/cdiv_q.c \ + @GMP_TREE@/mpz/cdiv_q_ui.c \ + @GMP_TREE@/mpz/cdiv_qr.c \ + @GMP_TREE@/mpz/cdiv_qr_ui.c \ + @GMP_TREE@/mpz/cdiv_r.c \ + @GMP_TREE@/mpz/cdiv_r_ui.c \ + @GMP_TREE@/mpz/cdiv_ui.c \ + @GMP_TREE@/mpz/cfdiv_r_2exp.c \ + @GMP_TREE@/mpz/clears.c \ + @GMP_TREE@/mpz/clrbit.c \ + @GMP_TREE@/mpz/cmp.c \ + @GMP_TREE@/mpz/cmp_d.c \ + @GMP_TREE@/mpz/cmp_si.c \ + @GMP_TREE@/mpz/cmpabs_d.c \ + @GMP_TREE@/mpz/cmpabs_ui.c \ + @GMP_TREE@/mpz/com.c \ + @GMP_TREE@/mpz/combit.c \ + @GMP_TREE@/mpz/cong.c \ + @GMP_TREE@/mpz/cong_2exp.c \ + @GMP_TREE@/mpz/cong_ui.c \ + @GMP_TREE@/mpz/dive_ui.c \ + @GMP_TREE@/mpz/divegcd.c \ + @GMP_TREE@/mpz/divis.c \ + @GMP_TREE@/mpz/divis_2exp.c \ + @GMP_TREE@/mpz/divis_ui.c \ + @GMP_TREE@/mpz/dump.c \ + @GMP_TREE@/mpz/export.c \ + @GMP_TREE@/mpz/fac_ui.c \ + @GMP_TREE@/mpz/fdiv_qr_ui.c \ + @GMP_TREE@/mpz/fdiv_r.c \ + @GMP_TREE@/mpz/fdiv_r_ui.c \ + @GMP_TREE@/mpz/fdiv_ui.c \ + @GMP_TREE@/mpz/fib2_ui.c \ + @GMP_TREE@/mpz/fib_ui.c \ + @GMP_TREE@/mpz/fits_sint.c \ + @GMP_TREE@/mpz/fits_slong.c \ + @GMP_TREE@/mpz/fits_sshort.c \ + @GMP_TREE@/mpz/fits_uint.c \ + @GMP_TREE@/mpz/fits_ulong.c \ + @GMP_TREE@/mpz/fits_ushort.c \ + @GMP_TREE@/mpz/gcd.c \ + @GMP_TREE@/mpz/gcd_ui.c \ + @GMP_TREE@/mpz/get_d.c \ + @GMP_TREE@/mpz/get_d_2exp.c \ + @GMP_TREE@/mpz/get_str.c \ + @GMP_TREE@/mpz/get_ui.c \ + @GMP_TREE@/mpz/getlimbn.c \ + @GMP_TREE@/mpz/hamdist.c \ + @GMP_TREE@/mpz/import.c \ + @GMP_TREE@/mpz/init2.c \ + @GMP_TREE@/mpz/inits.c \ + @GMP_TREE@/mpz/inp_raw.c \ + @GMP_TREE@/mpz/inp_str.c \ + @GMP_TREE@/mpz/ior.c \ + @GMP_TREE@/mpz/iset_d.c \ + @GMP_TREE@/mpz/iset_si.c \ + @GMP_TREE@/mpz/iset_str.c \ + @GMP_TREE@/mpz/jacobi.c \ + @GMP_TREE@/mpz/kronsz.c \ + @GMP_TREE@/mpz/kronuz.c \ + @GMP_TREE@/mpz/kronzs.c \ + @GMP_TREE@/mpz/kronzu.c \ + @GMP_TREE@/mpz/lcm.c \ + @GMP_TREE@/mpz/lcm_ui.c \ + @GMP_TREE@/mpz/limbs_finish.c \ + @GMP_TREE@/mpz/limbs_modify.c \ + @GMP_TREE@/mpz/limbs_read.c \ + @GMP_TREE@/mpz/limbs_write.c \ + @GMP_TREE@/mpz/lucnum2_ui.c \ + @GMP_TREE@/mpz/lucnum_ui.c \ + @GMP_TREE@/mpz/mfac_uiui.c \ + @GMP_TREE@/mpz/millerrabin.c \ + @GMP_TREE@/mpz/neg.c \ + @GMP_TREE@/mpz/nextprime.c \ + @GMP_TREE@/mpz/oddfac_1.c \ + @GMP_TREE@/mpz/out_raw.c \ + @GMP_TREE@/mpz/out_str.c \ + @GMP_TREE@/mpz/perfpow.c \ + @GMP_TREE@/mpz/perfsqr.c \ + @GMP_TREE@/mpz/popcount.c \ + @GMP_TREE@/mpz/pow_ui.c \ + @GMP_TREE@/mpz/powm_sec.c \ + @GMP_TREE@/mpz/pprime_p.c \ + @GMP_TREE@/mpz/primorial_ui.c \ + @GMP_TREE@/mpz/prodlimbs.c \ + @GMP_TREE@/mpz/random.c \ + @GMP_TREE@/mpz/random2.c \ + @GMP_TREE@/mpz/realloc2.c \ + @GMP_TREE@/mpz/remove.c \ + @GMP_TREE@/mpz/roinit_n.c \ + @GMP_TREE@/mpz/root.c \ + @GMP_TREE@/mpz/rootrem.c \ + @GMP_TREE@/mpz/rrandomb.c \ + @GMP_TREE@/mpz/scan0.c \ + @GMP_TREE@/mpz/set_d.c \ + @GMP_TREE@/mpz/set_f.c \ + @GMP_TREE@/mpz/set_q.c \ + @GMP_TREE@/mpz/set_si.c \ + @GMP_TREE@/mpz/set_str.c \ + @GMP_TREE@/mpz/setbit.c \ + @GMP_TREE@/mpz/size.c \ + @GMP_TREE@/mpz/sqrtrem.c \ + @GMP_TREE@/mpz/tdiv_q_ui.c \ + @GMP_TREE@/mpz/tdiv_qr_ui.c \ + @GMP_TREE@/mpz/tdiv_r_ui.c \ + @GMP_TREE@/mpz/tdiv_ui.c \ + @GMP_TREE@/mpz/ui_sub.c \ + @GMP_TREE@/mpz/urandomb.c \ + @GMP_TREE@/mpz/urandomm.c \ + @GMP_TREE@/mpz/xor.c + +DISTCLEANFILES = mp_bases.h mp_bases.c fac_table.h fib_table.h \ + fib_table.c jacobitab.h perfsqr.h trialdivtab.h config.force +@build_TRUE@dist_check_SCRIPTS = gmp.test +@build_TRUE@TESTS = gmp.test +gmptest_SOURCES = gmptest.c +gmptest_CPPFLAGS = -Iinclude +LDADD = libgmp.a + +# Reconfig +reconfig_prereq = + +# Rebuild +rebuild_prereq = +rebuild_target = all +CLEANFILES = rebuild.stamp +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; +$(srcdir)/../../am/reconfig.am $(srcdir)/../../am/rebuild.am: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +gmp.h: $(top_builddir)/config.status $(top_srcdir)/gmp-6.0.0/gmp-h.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +@GMP_TREE@/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@ + @: > @GMP_TREE@/$(am__dirstamp) +@GMP_TREE@/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@/$(DEPDIR) + @: > @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/assert.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/compat.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/errno.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/extract-dbl.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/invalid.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/memory.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_bpl.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_clz_tab.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_dv_tab.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_get_fns.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_minv_tab.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mp_set_fns.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/nextprime.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/primesieve.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/tal-reent.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/version.$(OBJEXT): @GMP_TREE@/$(am__dirstamp) \ + @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@/mpn/generic + @: > @GMP_TREE@/mpn/generic/$(am__dirstamp) +@GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@/mpn/generic/$(DEPDIR) + @: > @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/add.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/add_n.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/addmul_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/bdiv_dbm1c.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/bdiv_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/binvert.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dcpi1_bdiv_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dcpi1_bdiv_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dcpi1_div_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dcpi1_div_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dcpi1_divappr_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/div_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/div_qr_2n_pi1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/dive_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/divexact.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/divrem.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/divrem_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/divrem_2.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/gcd_subdiv_step.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/gcdext.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/gcdext_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/gcdext_lehmer.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/get_str.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd2.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd_appr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd_matrix.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd_reduce.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/hgcd_step.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/invertappr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/lshift.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/lshiftc.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/matrix22_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/matrix22_mul1_inverse_vector.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mu_bdiv_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mu_div_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mu_div_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mu_divappr_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mul_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mul_basecase.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mul_n.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mul_fft.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mullo_basecase.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mullo_n.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/mulmod_bnm1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/nussbaumer_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/powlo.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/powm.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/pre_divrem_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/redc_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/redc_n.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/rshift.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sbpi1_bdiv_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sbpi1_bdiv_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sbpi1_div_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sbpi1_div_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sbpi1_divappr_q.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/scan1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/set_str.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sqr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sqr_basecase.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sqrmod_bnm1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sqrtrem.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sub.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/sub_n.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/submul_1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/tdiv_qr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom2_sqr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom22_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom3_sqr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom32_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom33_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom42_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom42_mulmid.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom43_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom44_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom53_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom63_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom6_sqr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom6h_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom8_sqr.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom8h_mul.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_couple_handling.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_dgr3_pm1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_dgr3_pm2.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_pm1.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_pm2.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_pm2exp.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_eval_pm2rexp.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_12pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_16pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_5pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_6pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_7pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpn/generic/toom_interpolate_8pts.$(OBJEXT): \ + @GMP_TREE@/mpn/generic/$(am__dirstamp) \ + @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@/mpz + @: > @GMP_TREE@/mpz/$(am__dirstamp) +@GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) @GMP_TREE@/mpz/$(DEPDIR) + @: > @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/add.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/add_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/aorsmul.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/aorsmul_i.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/cfdiv_q_2exp.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/clear.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/cmp_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/cmpabs.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/divexact.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/fdiv_q.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/fdiv_q_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/fdiv_qr.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/gcdext.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/get_si.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/init.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/invert.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/iset.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/iset_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/mod.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/mul.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/mul_2exp.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/mul_si.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/mul_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/n_pow_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/powm.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/powm_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/realloc.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/scan1.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/set.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/set_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/sizeinbase.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/sqrt.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/sub.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/sub_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/swap.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tdiv_q.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tdiv_q_2exp.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tdiv_qr.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tdiv_r.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tdiv_r_2exp.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/tstbit.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) +@GMP_TREE@/mpz/ui_pow_ui.$(OBJEXT): @GMP_TREE@/mpz/$(am__dirstamp) \ + @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) + +libgmp.a: $(libgmp_a_OBJECTS) $(libgmp_a_DEPENDENCIES) $(EXTRA_libgmp_a_DEPENDENCIES) + $(AM_V_at)-rm -f libgmp.a + $(AM_V_AR)$(libgmp_a_AR) libgmp.a $(libgmp_a_OBJECTS) $(libgmp_a_LIBADD) + $(AM_V_at)$(RANLIB) libgmp.a + +clean-checkPROGRAMS: + -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) + +gmptest$(EXEEXT): $(gmptest_OBJECTS) $(gmptest_DEPENDENCIES) $(EXTRA_gmptest_DEPENDENCIES) + @rm -f gmptest$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(gmptest_OBJECTS) $(gmptest_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f @GMP_TREE@/*.$(OBJEXT) + -rm -f @GMP_TREE@/mpn/generic/*.$(OBJEXT) + -rm -f @GMP_TREE@/mpz/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gmptest-gmptest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mp_bases.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/popcount.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/assert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/compat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/errno.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/extract-dbl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/invalid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/memory.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_bpl.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_clz_tab.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_dv_tab.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_get_fns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_minv_tab.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/mp_set_fns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/nextprime.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/primesieve.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/tal-reent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/$(DEPDIR)/version.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/add.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/add_n.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/addmul_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/bdiv_dbm1c.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/bdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/binvert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_bdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_bdiv_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_div_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_div_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dcpi1_divappr_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/div_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/div_qr_2n_pi1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/dive_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/divexact.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/divrem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/divrem_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/divrem_2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/gcd_subdiv_step.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/gcdext.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/gcdext_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/gcdext_lehmer.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/get_str.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd_appr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd_matrix.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd_reduce.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/hgcd_step.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/invertappr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/lshift.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/lshiftc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/matrix22_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/matrix22_mul1_inverse_vector.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mu_bdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mu_div_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mu_div_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mu_divappr_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mul_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mul_basecase.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mul_fft.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mul_n.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mullo_basecase.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mullo_n.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/mulmod_bnm1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/nussbaumer_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/powlo.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/powm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/pre_divrem_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/redc_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/redc_n.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/rshift.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sbpi1_bdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sbpi1_bdiv_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sbpi1_div_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sbpi1_div_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sbpi1_divappr_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/scan1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/set_str.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqr_basecase.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrmod_bnm1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sqrtrem.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sub.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/sub_n.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/submul_1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/tdiv_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom22_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom2_sqr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom32_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom33_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom3_sqr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom42_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom42_mulmid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom43_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom44_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom53_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom63_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom6_sqr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom6h_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom8_sqr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom8h_mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_couple_handling.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_dgr3_pm1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_dgr3_pm2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_pm1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_pm2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_pm2exp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_eval_pm2rexp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_12pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_16pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_5pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_6pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_7pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpn/generic/$(DEPDIR)/toom_interpolate_8pts.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/add.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/add_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/aorsmul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/aorsmul_i.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/cfdiv_q_2exp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/clear.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/cmp_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/cmpabs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/divexact.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/fdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/fdiv_q_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/fdiv_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/gcdext.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/get_si.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/init.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/invert.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/iset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/iset_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/mod.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/mul.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/mul_2exp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/mul_si.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/mul_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/n_pow_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/powm.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/powm_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/realloc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/scan1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/set.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/set_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/sizeinbase.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/sqrt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/sub.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/sub_ui.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/swap.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tdiv_q.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tdiv_q_2exp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tdiv_qr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tdiv_r.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tdiv_r_2exp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/tstbit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GMP_TREE@/mpz/$(DEPDIR)/ui_pow_ui.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +gmptest-gmptest.o: gmptest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gmptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gmptest-gmptest.o -MD -MP -MF $(DEPDIR)/gmptest-gmptest.Tpo -c -o gmptest-gmptest.o `test -f 'gmptest.c' || echo '$(srcdir)/'`gmptest.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmptest-gmptest.Tpo $(DEPDIR)/gmptest-gmptest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gmptest.c' object='gmptest-gmptest.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gmptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gmptest-gmptest.o `test -f 'gmptest.c' || echo '$(srcdir)/'`gmptest.c + +gmptest-gmptest.obj: gmptest.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gmptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gmptest-gmptest.obj -MD -MP -MF $(DEPDIR)/gmptest-gmptest.Tpo -c -o gmptest-gmptest.obj `if test -f 'gmptest.c'; then $(CYGPATH_W) 'gmptest.c'; else $(CYGPATH_W) '$(srcdir)/gmptest.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gmptest-gmptest.Tpo $(DEPDIR)/gmptest-gmptest.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gmptest.c' object='gmptest-gmptest.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gmptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gmptest-gmptest.obj `if test -f 'gmptest.c'; then $(CYGPATH_W) 'gmptest.c'; else $(CYGPATH_W) '$(srcdir)/gmptest.c'; fi` + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + else \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ + $(dist_check_SCRIPTS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-recursive +all-am: Makefile $(LIBRARIES) config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f @GMP_TREE@/$(DEPDIR)/$(am__dirstamp) + -rm -f @GMP_TREE@/$(am__dirstamp) + -rm -f @GMP_TREE@/mpn/generic/$(DEPDIR)/$(am__dirstamp) + -rm -f @GMP_TREE@/mpn/generic/$(am__dirstamp) + -rm -f @GMP_TREE@/mpz/$(DEPDIR)/$(am__dirstamp) + -rm -f @GMP_TREE@/mpz/$(am__dirstamp) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) @GMP_TREE@/$(DEPDIR) @GMP_TREE@/mpn/generic/$(DEPDIR) @GMP_TREE@/mpz/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) @GMP_TREE@/$(DEPDIR) @GMP_TREE@/mpn/generic/$(DEPDIR) @GMP_TREE@/mpz/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) all check-am install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-cscope clean-generic \ + clean-noinstLIBRARIES cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + recheck tags tags-am uninstall uninstall-am + + +# in case of an SVN repository +dist-hook: + rm -rf `find $(distdir) -name .svn -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'` +$(libgmp_a_OBJECTS): mp_bases.h fac_table.h fib_table.h + +$(logops_n_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(popham_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_aors_1_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_div_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ +$(sec_pi1_div_sources): + @echo "#define OPERATION_`echo $@ | sed 's/\.c//'` 1" >$@ + @echo "#include " >>$@ + +native/stamp-bases: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-bases +mp_bases.h: native/stamp-bases + $(AM_V_GEN)native/gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +mp_bases.c: mp_bases.h + $(AM_V_GEN)native/gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) + +native/stamp-fac: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-fac +fac_table.h: native/stamp-fac + $(AM_V_GEN)native/gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) + +native/stamp-fib: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-fib +fib_table.h: native/stamp-fib + $(AM_V_GEN)native/gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) +fib_table.c: fib_table.h + $(AM_V_GEN)native/gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) + +native/stamp-jacobitab: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-jacobitab +jacobitab.h: native/stamp-jacobitab + $(AM_V_GEN)native/gen-jacobitab >$@ || (rm -f $@; exit 1) + +native/stamp-psqr: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-psqr +perfsqr.h: native/stamp-psqr + $(AM_V_GEN)native/gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >$@ || (rm -f $@; exit 1) + +native/stamp-trialdivtab: + cd native && $(MAKE) $(AM_MAKEFLAGS) stamp-trialdivtab +trialdivtab.h: native/stamp-trialdivtab + $(AM_V_GEN)native/gen-trialdivtab $(GMP_LIMB_BITS) 8000 >$@ || (rm -f $@; exit 1) +config.force: $(reconfig_prereq) + @if test -f $@; then :; else \ + trap 'rm -rf reconfig.lock' 1 2 13 15; \ + if mkdir reconfig.lock 2>/dev/null; then \ + echo timestamp >$@; \ + $(SHELL) ./config.status --recheck; \ + rmdir reconfig.lock; \ + else \ + while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \ + test -f $@; \ + fi; \ + fi +rebuild.stamp: $(rebuild_target) + echo timestamp >$@ + +.PHONY: rebuild +rebuild: $(rebuild_prereq) + @dry=; for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=*|--*);; \ + *n*) dry=:;; \ + esac; \ + done; \ + if test -f rebuild.stamp; then :; else \ + $$dry trap 'rm -rf rebuild.lock' 1 2 13 15; \ + if $$dry mkdir rebuild.lock 2>/dev/null; then \ + $(MAKE) $(AM_MAKEFLAGS) rebuild.stamp; \ + $$dry rmdir rebuild.lock; \ + else \ + while test -d rebuild.lock && test -z "$$dry"; do sleep 1; done; \ + fi; \ + $$dry test -f rebuild.stamp; exit $$?; \ + fi + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/gmp/README b/Build/source/libs/gmp/README new file mode 100644 index 00000000000..3d0bf3dcd04 --- /dev/null +++ b/Build/source/libs/gmp/README @@ -0,0 +1,17 @@ + Building GNU MP as part of the TL tree + ====================================== + +This directory libs/gmp/ uses a proxy Makefile.am to build the GNU MP +library 'libgmp' from the unmodified source tree in +libs/gmp/gmp-x.y.z/, bypassing the original build system. + +As far as applicable, the tests in libs/gmp/gmp-x.y.z/configure have +been translated into equivalent test in libs/gmp/configure.ac. + +============================= + +At the moment there is a wrapper Makefile.am and configure.ac. + +============================= + +2014-03-31 Taco Hoekwater diff --git a/Build/source/libs/gmp/ac/gmp.ac b/Build/source/libs/gmp/ac/gmp.ac new file mode 100644 index 00000000000..69fce384df3 --- /dev/null +++ b/Build/source/libs/gmp/ac/gmp.ac @@ -0,0 +1,9 @@ +## libs/gmp/ac/gmp.ac: configure.ac fragment for the TeX Live subdirectory libs/gmp/ +dnl +dnl Copyright (C) 2014 Taco Hoekwater +dnl You may freely use, modify and/or distribute this file. +dnl +## basic check of system gmp +KPSE_TRY_LIB([gmp], + [#include ], + [const char *s = gmp_version;]) diff --git a/Build/source/libs/gmp/ac/withenable.ac b/Build/source/libs/gmp/ac/withenable.ac new file mode 100644 index 00000000000..3621d339b23 --- /dev/null +++ b/Build/source/libs/gmp/ac/withenable.ac @@ -0,0 +1,10 @@ +## libs/gmp/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gmp/ +dnl +dnl Copyright (C) 2014 Taco Hoekwater +dnl Copyright (C) 2014 Peter Breitenlohner +dnl You may freely use, modify and/or distribute this file. +dnl +dnl extra_dirs = libs/gmp/native +dnl +## configure options and TL libraries required for gmp +KPSE_WITH_LIB([gmp]) diff --git a/Build/source/libs/gmp/aclocal.m4 b/Build/source/libs/gmp/aclocal.m4 new file mode 100644 index 00000000000..03e96b7b9b3 --- /dev/null +++ b/Build/source/libs/gmp/aclocal.m4 @@ -0,0 +1,1190 @@ +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.14' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/gmp-alloca.m4]) +m4_include([m4/gmp-attribute.m4]) +m4_include([m4/gmp-double-format.m4]) +m4_include([../../m4/kpse-common.m4]) +m4_include([../../m4/kpse-warnings.m4]) diff --git a/Build/source/libs/gmp/config.h.in b/Build/source/libs/gmp/config.h.in new file mode 100644 index 00000000000..8f962e1eb09 --- /dev/null +++ b/Build/source/libs/gmp/config.h.in @@ -0,0 +1,118 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if alloca() works (via gmp-impl.h). */ +#undef HAVE_ALLOCA + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#undef HAVE_ALLOCA_H + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */ +#undef HAVE_ATTRIBUTE_CONST + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */ +#undef HAVE_ATTRIBUTE_MALLOC + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX))) + */ +#undef HAVE_ATTRIBUTE_MODE + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */ +#undef HAVE_ATTRIBUTE_NORETURN + +/* Define one of the following to 1 for the format of a `double'. + If your format is not among these choices, or you don't know what it is, + then leave all undefined. + IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves + swapped, as used by ARM CPUs in little endian mode. */ +#undef HAVE_DOUBLE_IEEE_BIG_ENDIAN +#undef HAVE_DOUBLE_IEEE_LITTLE_ENDIAN +#undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED +#undef HAVE_DOUBLE_VAX_D +#undef HAVE_DOUBLE_VAX_G +#undef HAVE_DOUBLE_CRAY_CFP + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the `raise' function. */ +#undef HAVE_RAISE + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The size of `mp_limb_t', as computed by sizeof. */ +#undef SIZEOF_MP_LIMB_T + +/* The size of `unsigned', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED + +/* The size of `unsigned long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG + +/* The size of `unsigned long long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG_LONG + +/* The size of `unsigned short', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_SHORT + +/* The size of `void *', as computed by sizeof. */ +#undef SIZEOF_VOID_P + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define one of these to 1 for the temporary memory allocation method. */ +#undef WANT_TMP_ALLOCA +#undef WANT_TMP_REENTRANT diff --git a/Build/source/libs/gmp/configure b/Build/source/libs/gmp/configure new file mode 100755 index 00000000000..986e461c85f --- /dev/null +++ b/Build/source/libs/gmp/configure @@ -0,0 +1,7954 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for gmp (TeX Live) 6.0.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and tex-k@tug.org +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='gmp (TeX Live)' +PACKAGE_TARNAME='gmp--tex-live-' +PACKAGE_VERSION='6.0.0' +PACKAGE_STRING='gmp (TeX Live) 6.0.0' +PACKAGE_BUGREPORT='tex-k@tug.org' +PACKAGE_URL='' + +ac_unique_file="gmp-6.0.0/gmp-impl.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +enable_option_checking=no +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +subdirs +LIBGMP_DLL +HAVE_HOST_CPU_FAMILY_powerpc +HAVE_HOST_CPU_FAMILY_power +GMP_TREE +build_FALSE +build_TRUE +GMP_NAIL_BITS +GMP_LIMB_BITS +DEFN_LONG_LONG_LIMB +EGREP +GREP +CPP +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LN_S +RANLIB +WARNING_CFLAGS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_compiler_warnings +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' +ac_subdirs_all='native' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures gmp (TeX Live) 6.0.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/gmp--tex-live-] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of gmp (TeX Live) 6.0.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-compiler-warnings=[no|min|yes|max|all] + Turn on compiler warnings [default: yes if + maintainer-mode, min otherwise] + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +gmp (TeX Live) configure 6.0.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by gmp (TeX Live) $as_me 6.0.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +ac_aux_dir= +for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + + +am__api_version='1.14' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# Check whether --enable-compiler-warnings was given. +if test "${enable_compiler_warnings+set}" = set; then : + enableval=$enable_compiler_warnings; +fi +case $enable_compiler_warnings in #( + no | min | yes | max | all) : + ;; #( + *) : + if test "x$enable_maintainer_mode" = xyes; then : + enable_compiler_warnings=yes +else + enable_compiler_warnings=min +fi ;; +esac + + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='gmp--tex-live-' + VERSION='6.0.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5 +$as_echo_n "checking whether the compiler accepts prototypes... " >&6; } +if ${kb_cv_c_prototypes+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +extern void foo(int i,...); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + kb_cv_c_prototypes=yes +else + kb_cv_c_prototypes=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5 +$as_echo "$kb_cv_c_prototypes" >&6; } +if test "x$kb_cv_c_prototypes" = xno; then + as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 +$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } +if ${kpse_cv_warning_cflags+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$GCC" = xyes; then + kpse_cv_warning_cflags= +if test "x$enable_compiler_warnings" != xno; then + kpse_cv_warning_cflags="-Wimplicit -Wreturn-type" + case `$CC -dumpversion` in #( + 3.4.* | 4.*) : + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #( + *) : + ;; +esac + case `$CC -dumpversion` in #( + 3.[234].* | 4.*) : + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #( + *) : + ;; +esac + if test "x$enable_compiler_warnings" != xmin; then + kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags" + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations" + if test "x$enable_compiler_warnings" != xyes; then + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith" + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings" + case `$CC -dumpversion` in #( + 3.4.* | 4.*) : + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #( + *) : + ;; +esac + if test "x$enable_compiler_warnings" != xmax; then + kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow" + fi + fi + fi +fi +elif test "x$enable_compiler_warnings" = xno; then + kpse_cv_warning_cflags= +else + kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5 +$as_echo "$kpse_cv_warning_cflags" >&6; } +WARNING_CFLAGS=$kpse_cv_warning_cflags + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + + +CFLAGS="$CFLAGS -DNO_ASM" + +ac_config_headers="$ac_config_headers config.h" + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +if test "x$host_alias" != x && test "x$build_alias" = x; then : + as_fn_error $? "when cross-compiling you must specify both --host and --build." "$LINENO" 5 +fi +eval kpse_build_alias=\${build_alias-$build} + + +for ac_func in memset raise strchr +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc __attribute__ ((const)) works" >&5 +$as_echo_n "checking whether gcc __attribute__ ((const)) works... " >&6; } +if ${gmp_cv_c_attribute_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (int x) __attribute__ ((const)); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gmp_cv_c_attribute_const=yes +else + gmp_cv_c_attribute_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_c_attribute_const" >&5 +$as_echo "$gmp_cv_c_attribute_const" >&6; } +if test $gmp_cv_c_attribute_const = yes; then + +$as_echo "#define HAVE_ATTRIBUTE_CONST 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc __attribute__ ((malloc)) works" >&5 +$as_echo_n "checking whether gcc __attribute__ ((malloc)) works... " >&6; } +if ${gmp_cv_c_attribute_malloc+:} false; then : + $as_echo_n "(cached) " >&6 +else + gmp_cv_c_attribute_malloc=no +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +void *foo (int x) __attribute__ ((malloc)); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep "attribute directive ignored" conftest.err >/dev/null; then : + +else + gmp_cv_c_attribute_malloc=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_c_attribute_malloc" >&5 +$as_echo "$gmp_cv_c_attribute_malloc" >&6; } +if test $gmp_cv_c_attribute_malloc = yes; then + +$as_echo "#define HAVE_ATTRIBUTE_MALLOC 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc __attribute__ ((mode (XX))) works" >&5 +$as_echo_n "checking whether gcc __attribute__ ((mode (XX))) works... " >&6; } +if ${gmp_cv_c_attribute_mode+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int SItype __attribute__ ((mode (SI))); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gmp_cv_c_attribute_mode=yes +else + gmp_cv_c_attribute_mode=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_c_attribute_mode" >&5 +$as_echo "$gmp_cv_c_attribute_mode" >&6; } +if test $gmp_cv_c_attribute_mode = yes; then + +$as_echo "#define HAVE_ATTRIBUTE_MODE 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc __attribute__ ((noreturn)) works" >&5 +$as_echo_n "checking whether gcc __attribute__ ((noreturn)) works... " >&6; } +if ${gmp_cv_c_attribute_noreturn+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +void foo (int x) __attribute__ ((noreturn)); +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gmp_cv_c_attribute_noreturn=yes +else + gmp_cv_c_attribute_noreturn=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_c_attribute_noreturn" >&5 +$as_echo "$gmp_cv_c_attribute_noreturn" >&6; } +if test $gmp_cv_c_attribute_noreturn = yes; then + +$as_echo "#define HAVE_ATTRIBUTE_NORETURN 1" >>confdefs.h + +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" +if test "x$ac_cv_type_long_long" = xyes; then : + +fi + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if ${ac_cv_sizeof_void_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_void_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_void_p=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +$as_echo "$ac_cv_sizeof_void_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned short" >&5 +$as_echo_n "checking size of unsigned short... " >&6; } +if ${ac_cv_sizeof_unsigned_short+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned short))" "ac_cv_sizeof_unsigned_short" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_unsigned_short" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (unsigned short) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_unsigned_short=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_short" >&5 +$as_echo "$ac_cv_sizeof_unsigned_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_SHORT $ac_cv_sizeof_unsigned_short +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned" >&5 +$as_echo_n "checking size of unsigned... " >&6; } +if ${ac_cv_sizeof_unsigned+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned))" "ac_cv_sizeof_unsigned" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_unsigned" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (unsigned) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_unsigned=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned" >&5 +$as_echo "$ac_cv_sizeof_unsigned" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED $ac_cv_sizeof_unsigned +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5 +$as_echo_n "checking size of unsigned long... " >&6; } +if ${ac_cv_sizeof_unsigned_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_unsigned_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (unsigned long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_unsigned_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5 +$as_echo "$ac_cv_sizeof_unsigned_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long" >&5 +$as_echo_n "checking size of unsigned long long... " >&6; } +if ${ac_cv_sizeof_unsigned_long_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long))" "ac_cv_sizeof_unsigned_long_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_unsigned_long_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (unsigned long long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_unsigned_long_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long_long" >&5 +$as_echo "$ac_cv_sizeof_unsigned_long_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_LONG_LONG $ac_cv_sizeof_unsigned_long_long +_ACEOF + + + +case $host in #( + x86_64-*-cygwin) : + gmp_limb=longlong ;; #( + *) : + if test $ac_cv_sizeof_void_p -gt $ac_cv_sizeof_unsigned_long; then : + if test $ac_cv_sizeof_void_p -le $ac_cv_sizeof_unsigned_long_long; then : + gmp_limb=longlong +else + gmp_limb=unknown +fi + +fi + ;; +esac +case $gmp_limb in #( + longlong) : + DEFN_LONG_LONG_LIMB="#define _LONG_LONG_LIMB 1" + gmp_limb_size=$ac_cv_sizeof_unsigned_long_long ;; #( + *) : + DEFN_LONG_LONG_LIMB="/* #undef _LONG_LONG_LIMB */" + gmp_limb_size=$ac_cv_sizeof_unsigned_long ;; +esac + +GMP_LIMB_BITS=`expr 8 \* $gmp_limb_size` + + +GMP_NAIL_BITS=0 + + + # KPSE_GMP_H +cat >gmp-tmp.h <= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of mp_limb_t" >&5 +$as_echo_n "checking size of mp_limb_t... " >&6; } +if ${ac_cv_sizeof_mp_limb_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (mp_limb_t))" "ac_cv_sizeof_mp_limb_t" "#include \"gmp-tmp.h\" +"; then : + +else + if test "$ac_cv_type_mp_limb_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (mp_limb_t) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_mp_limb_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_mp_limb_t" >&5 +$as_echo "$ac_cv_sizeof_mp_limb_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_MP_LIMB_T $ac_cv_sizeof_mp_limb_t +_ACEOF + + + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } +if ${gmp_cv_header_alloca+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gmp_cv_header_alloca=yes +else + gmp_cv_header_alloca=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_header_alloca" >&5 +$as_echo "$gmp_cv_header_alloca" >&6; } +if test "x$gmp_cv_header_alloca" = xyes; then + +$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca (via gmp-impl.h)" >&5 +$as_echo_n "checking for alloca (via gmp-impl.h)... " >&6; } +if ${gmp_cv_func_alloca+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include "gmp-tmp.h" +#include "$srcdir/gmp-6.0.0/gmp-impl.h" +int +main () +{ +char *p = (char *) alloca (1); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gmp_cv_func_alloca=yes +else + gmp_cv_func_alloca=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_func_alloca" >&5 +$as_echo "$gmp_cv_func_alloca" >&6; } +if test "x$gmp_cv_func_alloca" = xyes; then + +$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h + + $as_echo "#define WANT_TMP_ALLOCA 1" >>confdefs.h + +else + $as_echo "#define WANT_TMP_REENTRANT 1" >>confdefs.h + +fi + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking format of \`double' floating point" >&5 +$as_echo_n "checking format of \`double' floating point... " >&6; } +if ${gmp_cv_c_double_format+:} false; then : + $as_echo_n "(cached) " >&6 +else + gmp_cv_c_double_format=unknown +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +struct foo { + char before[8]; + double x; + char after[8]; +}; +extern struct foo foo; +struct foo foo = { + { '\001', '\043', '\105', '\147', '\211', '\253', '\315', '\357' }, + -123456789.0, + { '\376', '\334', '\272', '\230', '\166', '\124', '\062', '\020' }, +}; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat >conftest.awk <<\EOF + +BEGIN { + found = 0 +} + +{ + for (f = 2; f <= NF; f++) + { + for (i = 0; i < 23; i++) + got[i] = got[i+1]; + got[23] = $f; + + # match the special begin and end sequences + if (got[0] != "001") continue + if (got[1] != "043") continue + if (got[2] != "105") continue + if (got[3] != "147") continue + if (got[4] != "211") continue + if (got[5] != "253") continue + if (got[6] != "315") continue + if (got[7] != "357") continue + if (got[16] != "376") continue + if (got[17] != "334") continue + if (got[18] != "272") continue + if (got[19] != "230") continue + if (got[20] != "166") continue + if (got[21] != "124") continue + if (got[22] != "062") continue + if (got[23] != "020") continue + + saw = " (" got[8] " " got[9] " " got[10] " " got[11] " " got[12] " " got[13] " " got[14] " " got[15] ")" + + if (got[8] == "000" && \ + got[9] == "000" && \ + got[10] == "000" && \ + got[11] == "124" && \ + got[12] == "064" && \ + got[13] == "157" && \ + got[14] == "235" && \ + got[15] == "301") + { + print "IEEE little endian" + found = 1 + exit + } + + # Little endian with the two 4-byte halves swapped, as used by ARM + # when the chip is in little endian mode. + # + if (got[8] == "064" && \ + got[9] == "157" && \ + got[10] == "235" && \ + got[11] == "301" && \ + got[12] == "000" && \ + got[13] == "000" && \ + got[14] == "000" && \ + got[15] == "124") + { + print "IEEE little endian, swapped halves" + found = 1 + exit + } + + # gcc 2.95.4 on one GNU/Linux ARM system was seen generating 000 in + # the last byte, whereas 124 is correct. Not sure where the bug + # actually lies, but a running program didn't seem to get a full + # mantissa worth of working bits. + # + # We match this case explicitly so we can give a nice result message, + # but we deliberately exclude it from the normal IEEE double setups + # since it's too broken. + # + if (got[8] == "064" && \ + got[9] == "157" && \ + got[10] == "235" && \ + got[11] == "301" && \ + got[12] == "000" && \ + got[13] == "000" && \ + got[14] == "000" && \ + got[15] == "000") + { + print "bad ARM software floats" + found = 1 + exit + } + + if (got[8] == "301" && \ + got[9] == "235" && \ + got[10] == "157" && \ + got[11] == "064" && \ + got[12] == "124" && \ + got[13] == "000" && \ + got[14] == "000" && \ + got[15] == "000") + { + print "IEEE big endian" + found = 1 + exit + } + + if (got[8] == "353" && \ + got[9] == "315" && \ + got[10] == "242" && \ + got[11] == "171" && \ + got[12] == "000" && \ + got[13] == "240" && \ + got[14] == "000" && \ + got[15] == "000") + { + print "VAX D" + found = 1 + exit + } + + if (got[8] == "275" && \ + got[9] == "301" && \ + got[10] == "064" && \ + got[11] == "157" && \ + got[12] == "000" && \ + got[13] == "124" && \ + got[14] == "000" && \ + got[15] == "000") + { + print "VAX G" + found = 1 + exit + } + + if (got[8] == "300" && \ + got[9] == "033" && \ + got[10] == "353" && \ + got[11] == "171" && \ + got[12] == "242" && \ + got[13] == "240" && \ + got[14] == "000" && \ + got[15] == "000") + { + print "Cray CFP" + found = 1 + exit + } + } +} + +END { + if (! found) + print "unknown", saw +} + +EOF + gmp_cv_c_double_format=`od -b conftest.$ac_objext | $AWK -f conftest.awk` + case $gmp_cv_c_double_format in #( + unknown*) : + echo "cannot match anything, conftest.$ac_objext contains" >&5 + od -b conftest.$ac_objext >&5 ;; #( + *) : + ;; +esac +else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: oops, cannot compile test program" >&5 +$as_echo "$as_me: WARNING: oops, cannot compile test program" >&2;} +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f conftest.awk +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gmp_cv_c_double_format" >&5 +$as_echo "$gmp_cv_c_double_format" >&6; } + + + +case $gmp_cv_c_double_format in #( + "IEEE big endian") : + $as_echo "#define HAVE_DOUBLE_IEEE_BIG_ENDIAN 1" >>confdefs.h + ;; #( + "IEEE little endian") : + $as_echo "#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1" >>confdefs.h + ;; #( + "IEEE little endian, swapped halves") : + $as_echo "#define HAVE_DOUBLE_IEEE_LITTLE_SWAPPED 1" >>confdefs.h + ;; #( + "VAX D") : + $as_echo "#define HAVE_DOUBLE_VAX_D 1" >>confdefs.h + ;; #( + "VAX G") : + $as_echo "#define HAVE_DOUBLE_VAX_G 1" >>confdefs.h + ;; #( + "Cray CFP") : + $as_echo "#define HAVE_DOUBLE_CRAY_CFP 1" >>confdefs.h + ;; #( + "bad ARM software floats") : + ;; #( + unknown*) : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not determine float format." >&5 +$as_echo "$as_me: WARNING: Could not determine float format." >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Conversions to and from \"double\" may be slow." >&5 +$as_echo "$as_me: WARNING: Conversions to and from \"double\" may be slow." >&2;} ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: oops, unrecognised float format: $gmp_cv_c_double_format" >&5 +$as_echo "$as_me: WARNING: oops, unrecognised float format: $gmp_cv_c_double_format" >&2;} ;; +esac + + +if test "x$enable_build" != xno || test -f config.force; then + +case $gmp_limb in #( + unknown) : + as_fn_error $? "Sorry, no suitable limb size" "$LINENO" 5 ;; #( + *) : + ;; +esac + +if test "x$ac_cv_sizeof_mp_limb_t" != "x$gmp_limb_size"; then + as_fn_error $? "Oops, mp_limb_t doesn't seem to work" "$LINENO" 5 +fi + +echo timestamp >config.force +fi + + if test "x$enable_build" != xno; then + build_TRUE= + build_FALSE='#' +else + build_TRUE='#' + build_FALSE= +fi + + +GMP_TREE=gmp-6.0.0 + + +HAVE_HOST_CPU_FAMILY_power=0 + +HAVE_HOST_CPU_FAMILY_powerpc=0 + + +LIBGMP_DLL=0 + + +ac_config_files="$ac_config_files Makefile include/Makefile gmp.h:gmp-6.0.0/gmp-h.in" + + + + +subdirs="$subdirs native" + + + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then + as_fn_error $? "conditional \"build\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by gmp (TeX Live) $as_me 6.0.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +gmp (TeX Live) config.status 6.0.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "gmp.h") CONFIG_FILES="$CONFIG_FILES gmp.h:gmp-6.0.0/gmp-h.in" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + +rm -rf gmp-tmp.h +if test "x$cross_compiling" = xyes; then : + if test "x$cache_file" != x/dev/null; then : + cache_file=config.cache +fi +ac_configure_args="$ac_configure_args --host='$kpse_build_alias' \ +CC='$BUILDCC' CFLAGS='$BUILDCFLAGS' \ +CPPFLAGS='$BUILDCPPFLAGS' LDFLAGS='$BUILDLDFLAGS'" +fi + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi + +# +# CONFIG_SUBDIRS section. +# +if test "$no_recursion" != yes; then + + # Remove --cache-file, --srcdir, and --disable-option-checking arguments + # so they do not pile up. + ac_sub_configure_args= + ac_prev= + eval "set x $ac_configure_args" + shift + for ac_arg + do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case $ac_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + --disable-option-checking) + ;; + *) + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_sub_configure_args " '$ac_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ac_arg="--prefix=$prefix" + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ac_sub_configure_args="--silent $ac_sub_configure_args" + fi + + # Always prepend --disable-option-checking to silence warnings, since + # different subdirs can have different --enable and --with options. + ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" + + ac_popdir=`pwd` + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + test -d "$srcdir/$ac_dir" || continue + + ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" + $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 + $as_echo "$ac_msg" >&6 + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + cd "$ac_dir" + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f "$ac_srcdir/configure.gnu"; then + ac_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ac_sub_configure=$ac_srcdir/configure + elif test -f "$ac_srcdir/configure.in"; then + # This should be Cygnus configure. + ac_sub_configure=$ac_aux_dir/configure + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 +$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; + *) # Relative name. + ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 +$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + fi + + cd "$ac_popdir" + done +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/Build/source/libs/gmp/configure.ac b/Build/source/libs/gmp/configure.ac new file mode 100644 index 00000000000..fd31f005203 --- /dev/null +++ b/Build/source/libs/gmp/configure.ac @@ -0,0 +1,112 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +dnl Copyright (C) 2014 Taco Hoekwater +dnl Copyright (C) 2014 Peter Breitenlohner +dnl +dnl This file is free software; the copyright holder +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +m4_include([version.ac])[] dnl define gmp_version +AC_INIT([gmp (TeX Live)], gmp_version, [tex-k@tug.org]) +AC_PREREQ([2.65]) +AC_CONFIG_SRCDIR([gmp-]gmp_version[/gmp-impl.h]) +AC_CONFIG_AUX_DIR([../../build-aux]) +AC_CONFIG_MACRO_DIRS([../../m4 m4]) + +KPSE_BASIC([gmp]) + +AC_PROG_CC +AC_PROG_RANLIB +AC_PROG_LN_S + +AC_PROG_CC_C99 +CFLAGS="$CFLAGS -DNO_ASM" + +AC_CONFIG_HEADERS([config.h]) + +KPSE_CANONICAL_HOST + +AC_CHECK_FUNCS([memset raise strchr]) + +GMP_C_ATTRIBUTE_CONST +GMP_C_ATTRIBUTE_MALLOC +GMP_C_ATTRIBUTE_MODE +GMP_C_ATTRIBUTE_NORETURN + +AC_CHECK_TYPE([long long]) + +AC_CHECK_SIZEOF([void *]) +AC_CHECK_SIZEOF([unsigned short]) +AC_CHECK_SIZEOF([unsigned]) +AC_CHECK_SIZEOF([unsigned long]) +AC_CHECK_SIZEOF([unsigned long long]) + +AS_CASE([$host], + [x86_64-*-cygwin], [gmp_limb=longlong], [dnl +AS_IF([test $ac_cv_sizeof_void_p -gt $ac_cv_sizeof_unsigned_long], [dnl +AS_IF([test $ac_cv_sizeof_void_p -le $ac_cv_sizeof_unsigned_long_long], + [gmp_limb=longlong], + [gmp_limb=unknown]) +]) +]) +AS_CASE([$gmp_limb], + [longlong], + [DEFN_LONG_LONG_LIMB="@%:@define _LONG_LONG_LIMB 1" + gmp_limb_size=$ac_cv_sizeof_unsigned_long_long], + [DEFN_LONG_LONG_LIMB="/* @%:@undef _LONG_LONG_LIMB */" + gmp_limb_size=$ac_cv_sizeof_unsigned_long]) +AC_SUBST([DEFN_LONG_LONG_LIMB]) +AC_SUBST([GMP_LIMB_BITS], [`expr 8 \* $gmp_limb_size`]) + +AC_SUBST([GMP_NAIL_BITS], 0) + +dnl KPSE_GMP_H +dnl ---------- +dnl Create a temporary file gmp-tmp.h to be used instead of gmp.h, since that +dnl file isn't generated until the end of the configure. +AC_DEFUN([KPSE_GMP_H], [dnl +cat >gmp-tmp.h <config.force +fi + +AM_CONDITIONAL([build], [test "x$enable_build" != xno]) + +AC_SUBST([GMP_TREE], [gmp-]gmp_version) + +AC_SUBST([HAVE_HOST_CPU_FAMILY_power], 0) +AC_SUBST([HAVE_HOST_CPU_FAMILY_powerpc], 0) +AC_SUBST([DEFN_LONG_LONG_LIMB]) +AC_SUBST([LIBGMP_DLL], 0) + +AC_CONFIG_FILES([Makefile include/Makefile gmp.h:gmp-]gmp_version[/gmp-h.in]) + +dnl The subdirectory native must be configured for the build system. +KPSE_NATIVE_SUBDIRS([native]) + +AC_OUTPUT diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog new file mode 100644 index 00000000000..c5ccc01f0c4 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/ChangeLog @@ -0,0 +1,4 @@ +2014-05-26 Peter Breitenlohner + + patch-01-const (new): Avoid incompatible pointer type warning. + diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes new file mode 100644 index 00000000000..13f45565ee9 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/TL-Changes @@ -0,0 +1,37 @@ +Changes applied to the gmp-6.0.6/ tree as obtained from: + http://ftp.gnu.org/gnu/gmp/ + +Removed: + .gdbinit + COPYING + COPYING.LESSERv3 + COPYINGv2 + COPYINGv3 + INSTALL.autoconf + Makefile.in + aclocal.m4 + configfsf.guess + configfsf.sub + configure + cxx/ + demos/ + doc/ + install-sh + ltmain.sh + mini-gmp/tests/ + missing + mpf/Makefile.in + mpn/Makefile.in + mpq/Makefile.in + mpz/Makefile.in + printf/Makefile.in + rand/Makefile.in + scanf/Makefile.in + tests/ + tune/ + ylwrap + +Renamed: + config.guess => configgmp.guess + config.sub => configgmp.sub + diff --git a/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const new file mode 100644 index 00000000000..869a755d548 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0-PATCHES/patch-01-const @@ -0,0 +1,12 @@ +diff -ur gmp-6.0.0.orig/mpn/generic/sec_tabselect.c gmp-6.0.0/mpn/generic/sec_tabselect.c +--- gmp-6.0.0.orig/mpn/generic/sec_tabselect.c 2014-03-25 15:37:55.000000000 +0100 ++++ gmp-6.0.0/mpn/generic/sec_tabselect.c 2014-05-26 17:17:59.000000000 +0200 +@@ -41,7 +41,7 @@ + { + mp_size_t k, i; + mp_limb_t mask; +- volatile mp_limb_t *tp; ++ volatile const mp_limb_t *tp; + + for (k = 0; k < nents; k++) + { diff --git a/Build/source/libs/gmp/gmp-6.0.0/AUTHORS b/Build/source/libs/gmp/gmp-6.0.0/AUTHORS new file mode 100644 index 00000000000..fbe298d61bc --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/AUTHORS @@ -0,0 +1,100 @@ +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, now defunct dc_divrem_n.c, + rootrem.c, old mpz/powm.c, old toom3 code. + +Ken Weber Now defunct mpn/generic/bdivmod.c, old mpn/generic/gcd.c + +Bennet Yee Previous versions of mpz/jacobi.c mpz/legendre.c + +Andreas Schwab mpn/m68k/lshift.asm, mpn/m68k/rshift.asm + +Robert Harley Old mpn/generic/mul_n.c, previous versions of files in + mpn/arm + +Linus Nordberg Random number framework, original autoconfery + +Kent Boortz MacOS 9 port, now defunct. + +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 Previous versions of mpz/fac_ui.c and gen-fac_ui.c + +Niels Möller gen-jacobitab.c, + mpn/generic/hgcd2.c, hgcd.c, hgcd_step.c, + hgcd_appr.c, hgcd_matrix.c, hgcd_reduce.c, + gcd.c, gcdext.c, matrix22_mul.c, + gcdext_1.c, gcd_subdiv_step.c, gcd_lehmer.c, + gcdext_subdiv_step.c, gcdext_lehmer.c, + jacobi_2.c, jacbase.c, hgcd_jacobi.c, hgcd2_jacobi.c + matrix22_mul1_inverse_vector.c, + toom_interpolate_7pts, mulmod_bnm1.c, dcpi1_bdiv_qr.c, + dcpi1_bdiv_q.c, sbpi1_bdiv_qr.c, sbpi1_bdiv_q.c, + sec_invert.c, + toom_eval_dgr3_pm1.c, toom_eval_dgr3_pm2.c, + toom_eval_pm1.c, toom_eval_pm2.c, toom_eval_pm2exp.c, + divexact.c, mod_1_1.c, div_qr_2.c, + div_qr_2n_pi1.c, div_qr_2u_pi1.c, broot.c, + brootinv.c, + mpn/x86/k7/invert_limb.asm, mod_1_1.asm, + mpn/x86_64/invert_limb.asm, + invert_limb_table.asm, mod_1_1.asm, + div_qr_2n_pi1.asm, div_qr_2u_pi1.asm, + mpn/x86_64/core2/aorsmul_1.asm, + mpz/nextprime.c, divexact.c, gcd.c, gcdext.c, + jacobi.c, combit.c, mini-gmp/mini-gmp.c. + +Marco Bodrato mpn/generic/toom44_mul.c, toom4_sqr.c, toom53_mul.c, + toom62_mul.c, toom43_mul.c, toom52_mul.c, toom54_mul.c, + toom_interpolate_6pts.c, toom_couple_handling.c, + toom63_mul.c, toom_interpolate_8pts.c, + toom6h_mul.c, toom6_sqr.c, toom_interpolate_12pts.c, + toom8h_mul.c, toom8_sqr.c, toom_interpolate_16pts.c, + mulmod_bnm1.c, sqrmod_bnm1.c, nussbaumer_mul.c, + toom_eval_pm2.c, toom_eval_pm2rexp.c, + mullo_n.c, invert.c, invertappr.c; + mpz/fac_ui.c, 2fac_ui.c, mfac_uiui.c, oddfac_1.c, + primorial_ui.c, prodlimbs.c, goetgheluck_bin_uiui.c. + +David Harvey mpn/generic/add_err1_n.c, add_err2_n.c, + add_err3_n.c, sub_err1_n.c, sub_err2_n.c, + sub_err3_n.c, mulmid_basecase.c, mulmid_n.c, + toom42_mulmid.c, + mpn/x86_64/mul_basecase.asm, aors_err1_n.asm, + aors_err2_n.asm, aors_err3_n.asm, + mulmid_basecase.asm, + mpn/x86_64/core2/aors_err1_n.asm. + +Martin Boij mpn/generic/perfpow.c + +Marc Glisse gmpxx.h improvements + +David Miller mpn/sparc32/ultrasparct1/{addmul_1,mul_1,submul_1}.asm + mpn/sparc64/ultrasparct3/{mul_1,addmul_1,submul_1}.asm + mpn/sparc64/ultrasparct3/{add_n,sub_n}.asm + mpn/sparc64/ultrasparct3/{popcount,hamdist}.asm + mpn/sparc64/ultrasparct3/cnd_aors_n.asm + mpn/sparc64/{rshift,lshift,lshiftc}.asm + mpn/sparc64/tabselect.asm + +Mark Sofroniou mpn/generic/mul_fft.c type cleanup. + +Ulrich Weigand Changes to support powerpc64le: + configure.ac, mpn/powerpc64/{elf,aix,darwin}.m4, + mpn/powerpc32/{darwin,elf}.m4, + mpn/powerpc64/mode64/{dive_1,divrem_1,divrem_2}.asm, + mpn/powerpc64/mode64/{gcd_1,invert_limb,mode1o}.asm, + mpn/powerpc64/mode64/{mod_1_1,mod_1_4}.asm, + mpn/powerpc64/mode64/p7/gcd_1.asm, + mpn/powerpc64/p6/{lshift,lshiftc,rshift}.asm, + mpn/powerpc64/vmx/popcount.asm. diff --git a/Build/source/libs/gmp/gmp-6.0.0/ChangeLog b/Build/source/libs/gmp/gmp-6.0.0/ChangeLog new file mode 100644 index 00000000000..540c025c51d --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/ChangeLog @@ -0,0 +1,32941 @@ +2014-03-24 Torbjorn Granlund + + * Version 6.0.0 released. + + * mpn: Update countless gmp-mparam.h files. + +2014-03-22 Torbjorn Granlund + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. + * gmp-h.in: Bump version. + +2014-03-17 Torbjorn Granlund + + * configure.ac: Remove clipper, i960, ns32k, pyr, a29k, z8000. + * mpn/clipper: Remove directory and all its files. + * mpn/i960: Likewise. + * mpn/ns32k: Likewise. + * mpn/pyr: Likewise. + * mpn/a29k: Likewise. + * mpn/z8000: Likewise. + * mpn/Makefile.am (TARG_DIST): Purge removed directories. + * doc/gmp.texi: Remove special mentions of removed architectures. + +2014-03-12 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpz_probab_prime_p): Micro-optimisation. + +2014-03-12 Torbjorn Granlund + + * mpn/x86/bd2/gmp-mparam.h: New file. + * mpn/x86_64/bd2/gmp-mparam.h: New file. + +2014-03-06 Niels Möller + + * tests/mpz/t-pprime_p.c (check_composites): New function. + (check_primes): New function. + (main): Call them. Also use TESTS_REPS. + + * mini-gmp/mini-gmp.c (gmp_millerrabin): New internal function. + (mpz_probab_prime_p): New function. + * mini-gmp/mini-gmp.h (mpz_probab_prime_p): Declare it. + * mini-gmp/tests/t-pprime_p.c: New test program. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-pprime_p. + +2014-03-03 Niels Möller + + * mini-gmp/mini-gmp.c (mpz_congruent_p): New function. + * mini-gmp/mini-gmp.h: Declare it. + * mini-gmp/tests/t-cong.c: New file, based on tests/mpz/t-cong.c. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cong. + + * mini-gmp/tests/testutils.c (dump): New function. Deleted static + functions in other files. + (mpz_set_str_or_abort): Moved function here, from... + * mini-gmp/tests/t-cmp_d.c: ... old location. + + * mini-gmp/tests/t-reuse.c (dump3): Renamed, from ... + (dump): ...old name. + +2014-03-01 Niels Möller + + * mpn/generic/sec_powm.c (mpn_sec_powm): Clarify comment and + asserts. + +2014-02-28 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (fake_cpuid): Handle id 7, make bold claims. + +2014-02-27 Torbjorn Granlund + + * mpn/x86_64/fat/fat_entry.asm: Zero ecx for the benefit of new BMI2 + feature test. + + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Run CPUVEC_SETUP_coreihwl + conditionally on BMI2 availability. + + * config.guess: Revert "coreihwl" to "coreisbr" if cpuid indicates that + BMI2 is missing. + (x86 cpuid, 2 variants): Zero ecx for the benefit of new BMI2 feature + test. + +2014-02-21 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpn_sqrtrem): New function. + * mini-gmp/mini-gmp.h: Declare it. + * mini-gmp/tests/t-sqrt.c: Test it. + +2014-02-17 Niels Möller + + * mpn/generic/div_qr_1.c (mpn_div_qr_1): Revert yesterday's fix. + Hopefully no longer needed. + + * mpn/s390_64/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1. + * mpn/s390_64/z10/gmp-mparam.h (DIV_QR_1_NORM_THRESHOLD): Up to 1. + + * tune/tuneup.c (tune_div_qr_1): Ensure DIV_QR_1_NORM_THRESHOLD, + DIV_QR_1_UNNORM_THRESHOLD >= 1. + +2014-02-16 Marco Bodrato + + * mpn/generic/div_qr_1.c: Disallow DIV_QR_1_NORM_THRESHOLD==0. + +2014-02-15 Torbjorn Granlund + + * tests/mpn/t-div.c: Fix typo. + +2014-02-15 Marco Bodrato + + * doc/gmp.texi (mpz_roinit_n, MPZ_ROINIT_N): Document that + at least a readable limb is required. + * mini-gmp/mini-gmp.c (mpz_div_qr): init + set = init_set . + +2014-02-14 Niels Möller + + * doc/gmp.texi (Low-level Functions): Update docs for + mpn_sec_powm, to specify that left-over exponent bits must be + zero. + +2014-02-11 Niels Möller + + * Makefile.am (EXTRA_DIST): Distribute COPYING.LESSERv3, + COPYINGv2, and COPYINGv3. + + * doc/gmp.texi (Low-level Functions): Updated mpn_sec_powm docs. + + * mpn/generic/sec_powm.c (mpn_sec_powm): Replaced exponent limb + count argument by bit count. Don't leak high exponent bits, and + drop the requirement that the most significant exponent limb is + non-zero. + (mpn_sec_powm_itch): Analogous interface change. + * gmp-h.in: Updated prototypes. + * mpz/powm_sec.c (mpz_powm_sec): Update mpn_sec_powm* calls. + * tune/tuneup.c (tune_powm_sec): Likewise. Also deleted code + fiddling with the high exponent bits. + +2014-02-10 Marco Bodrato + + * mini-gmp/tests/t-limbs.c: New test for mpz_limbs_*. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Add it. + +2014-02-09 Niels Möller + + * tune/tuneup.c (tune_powm_sec): Avoid timing of the nonsensical + parameters nbits = 1, winsize = 2. Decrement tabulated values, to + better match the > comparison when the table is used. + + * mpn/generic/sec_powm.c (win_size): Comment why we always get + win_size(eb) <= eb. Make the table const. + (mpn_sec_powm): Deleted handling of winsize > initial ebi. For + now, replaced with an ASSERT_ALWAYS. + +2014-02-08 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpz_realloc2, mpz_limbs_read, mpz_limbs_modify + mpz_limbs_write, mpz_limbs_finish, mpz_roinit_n): New functions. + (mpn_perfect_square_p): New function. + * mini-gmp/mini-gmp.h: Declare them. + + * mini-gmp/tests/t-mul.c: Use roinit and limbs_read to test mpn. + * mini-gmp/tests/t-sqrt.c: Test also mpn_perfect_square_p. + +2014-02-08 Niels Möller + + * mpn/generic/sec_invert.c (mpn_cnd_neg_itch): #if:ed out unused + function. + + * mpn/generic/sec_div.c: Simplified code for the normalized case. + + * tests/mpn/t-div.c (main): Test mpn_sec_div_qr and mpn_sec_div_r + with normalized d. + +2014-02-04 Niels Möller + + * doc/gmp.texi (Low-level Functions): Document mpn_sec_add_1 and + mpn_sec_sub_1. + +2014-02-03 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpn_rootrem): Allow NULL argument. + + * mini-gmp/mini-gmp.c (mpn_zero): New function. + (mpz_perfect_square_p): New function. + * mini-gmp/mini-gmp.h: Declare them. + + * mini-gmp/tests/t-sqrt.c: Test mpz_perfect_square_p. + * mini-gmp/tests/t-root.c: Test also 1-th root, allow perfect powers. + +2014-01-29 Torbjorn Granlund + + * doc/gmp.texi (Floating-point Functions): Revise. + +2014-01-29 Niels Möller + + * README: Don't refer to specific COPYING* files, instead refer to + manual for details. + + * COPYING.LIB: Renamed, to... + * COPYING.LESSERv3: ... new name. + * COPYING: Renamed, to... + * COPYINGv3: ... new name. + * COPYINGv2: New file, GPLv2. + + * doc/gmp.texi (Copying): Document dual licensing. + +2014-01-27 Torbjorn Granlund + + * Update library files license to use LGPL3+ and GPL2+. + +2014-01-27 Marco Bodrato + + * tests/mpn/t-aors_1.c: Check sec_aors_1 red zones (not smart). + + * mpn/generic/sec_aors_1.c: Mark the 2nd argument as const. + * gmp-h.in (mpn_sec_add_1, mpn_sec_sub_1): Likewise. + +2014-01-24 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (fake_cpuid_table): Use proper steamroller and + excavator values. + + * config.guess: Amend last AMD change. + + * mpn/s390_64/lshift.asm: Align loop. + * mpn/s390_64/rshift.asm: Likewise. + * mpn/s390_64/lshiftc.asm: Likewise. + * mpn/s390_64: Add z10 cycle numbers. + +2014-01-23 Marco Bodrato + + * printf/repl-vsnprintf.c: Feed case 'z' in switch (type) with case 'z' + in switch (fchar). + + * mini-gmp/tests/t-aorsmul.c: New file, test for mpz_{add,sub}mul{,_ui} + * mini-gmp/tests/Makefile: Add t-aorsmul. + +2014-01-21 Marco Bodrato + + * acinclude.m4 (GMP_FUNC_VSNPRINTF): Get rid of varargs. + +2014-01-20 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Fix duplicate entries for + AMD "jaguar". + + * demos/expr: Get rid of varargs code and references. + +2014-01-19 Torbjorn Granlund + + * config.guess: Add new AMD CPUs (piledriver, steamroller, excavator, + jaguar). + * config.sub: Corresponding updates. + * configure.ac: Likewise. + * acinclude.m4 (X86_64_PATTERN): Likewise. + * mpn/x86_64/fat/fat.c: Likewise. + + * Rename mpn_sec_minvert => mpn_sec_invert, many files affected. + * mpn/generic/sec_invert.c: New name for sec_minvert.c. + + * doc/gmp.texi: Undocument mpz_array_init. + + * acinclude.m4 (GMP_C_STDARG): Comment out. + * configure.ac: Suppress GMP_C_STDARG invocation. + + * Get rid of varargs code and references, many file affected. + + * Use mpq_t in favour of MP_RAT, many mpq files affected. + + * Get rid of BYTES_PER_MP_LIMB, most files affected. + + * mpz/iset.c: Avoid overflow in allocation computation. + * mpz/mul.c: Likewise. + * mpf/init.c: Likewise. + * mpf/init2.c: Likewise. + * mpf/iset.c: Likewise. + * mpf/iset_d.c: Likewise. + * mpf/iset_si.c: Likewise. + * mpf/iset_str.c: Likewise. + * mpf/iset_ui.c: Likewise. + + * mpz/array_init.c: Avoid two overflow scenarios in allocation + computation. + + * mpn/s390_64/z10/gmp-mparam.h: New file. + + * mpz/clears.c: Call __gmp_free_func ourselves instead of via + mpz_clears. + * mpf/clears.c: Analogous change. + * mpq/clears.c: Analogous change. + + * mpz/clear.c: Add cast to avoid overflow of (later ignored) argument. + * mpf/clear.c: Likewise. + +2014-01-19 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpn_popcount): New function. + (mpz_popcount): Use it. + (mpz_addmul_ui, mpz_addmul, mpz_submul_ui, mpz_submul): Added. + * mini-gmp/mini-gmp.h: Declare them. + +2014-01-18 Niels Möller + + * tests/mpn/t-aors_1.c: Test also mpn_sec_add_1 and mpn_sec_sub_1. + + * tests/mpn/t-minvert.c (main): Pass smallest allowed bit_size + argument to mpn_sec_minvert. + +2014-01-18 Marc Glisse + + * doc/gmp.texi (C++ Interface Limitations): Warn against C++11 auto. + +2014-01-18 Marco Bodrato + + * tests/t-parity.c: Use 1UL to generate unsigned constants. + * tests/t-constants.c: Disable a non portable (unneeded) check. + +2014-01-18 Niels Möller + + * mpn/generic/sec_aors_1.c (mpn_sec_add_1, mpn_sec_sub_1): New + file. + + * mpn/generic/sec_minvert.c (mpn_sec_add_1_itch, mpn_sec_add_1): + Deleted static definitions. + (mpn_cnd_swap): Use volatile. + + * configure.ac (gmp_mpn_functions): sec_add_1 and sec_sub_1. + (GMP_MULFUNC_CHOICES): Set up for sec_aors_1. + +2014-01-16 Niels Möller + + * tune/common.c (speed_mpn_sec_minvert): New function. + * tune/speed.h: Declare it. + (SPEED_ROUTINE_MPN_SEC_MINVERT): New macro. + * tune/speed.c (routine): Added mpn_sec_minvert. + + * mini-gmp/mini-gmp.c (mp_bits_per_limb): New const value. + * mini-gmp/mini-gmp.h: Declare it. + +2014-01-12 Marc Glisse + + * demos/expr/expr.h: Add extern "C" for C++. + +2014-01-11 Torbjorn Granlund + + * doc/gmp.texi (Notes for Particular Systems): Add items about old + NetBSD and current FreeBSD m4 problems. Add item about FreeBSD's + broken limits.h. + +2014-01-05 Marco Bodrato + + * gmp-impl.h: Declare all _itch functions using ATTRIBUTE_CONST. + +2014-01-05 Torbjorn Granlund + + * configure.ac (alpha): Set extra_functions conditionally. + + * gmp-h.in (mpn_sec_minvert): Remove formal parameters. + + * doc/gmp.texi: Improve doc for several functions. + + * mpn/generic/sec_tabselect.c: Declare input arg using 'const'. + * gmp-h.in: Analogous change. + + * gmp-h.in: Declare all itch functions using __GMP_ATTRIBUTE_PURE. + * gmp-impl.h: Likewise. + +2014-01-05 Marco Bodrato + + * tests/mpn/t-minvert.c: Always compare with mpz_invert results, + add red zone to scratch. + * tests/mpn/t-sizeinbase.c: New test. + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-sizeinbase.c . + * tests/mpn/t-div.c: Use mpn_sec_div_*_itch(). + + * mpn/generic/pow_1.c: Micro-optimisation. + +2014-01-04 Torbjorn Granlund + + * acinclude.m4 (GMP_PROG_M4): Avoid hex output, since case varies. + +2014-01-03 Torbjorn Granlund + + * config.guess: Support newer haswell, broadwell, silvermont. + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Likewise. + + * acinclude.m4 (GMP_PROG_M4): Check that eval's radix argument work. + + * mpz/invert.c: Rely on gcdext for all operands, removing faulty + special case. + * tests/mpz/t-invert.c: Enforce correct behaviour for |mod| = 1. + +2014-01-02 Niels Möller + + * doc/gmp.texi (Low-level Functions): Document mpn_sizeinbase. + + Enable previously unused mpn_sizeinbase function. + * configure.ac (gmp_mpn_functions): Added sizeinbase. + * gmp-h.in (mpn_sizeinbase): New prototype. + +2014-01-02 Marc Glisse + + * gmp-impl.h: Always include . + * tests/mpn/t-get_d.c: Remove comment about + + * gmp-h.in (__GMP_USHRT_MAX): Use the promoted type. + * gmp-impl.h (USHRT_HIGHBIT, SHRT_MIN, SHRT_MAX): Likewise. + * tests/t-constants.c: Adapt printf strings. + * tests/t-gmpmax.c: Likewise. + + * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Add parentheses. + +2014-01-01 Torbjorn Granlund + + * doc/gmp.texi (Low-level Functions for cryptography): Update interface + for mpn_sec_div_qr and fix typos in mpn_sec_minvert text. + + * mpn/generic/sec_div.c: Rewrite to make mpn_sec_div_qr return high + quotient limb. + * gmp-h.in (mpn_sec_div_qr): Update declaration. + * tests/mpn/t-div.c: Adapt. + +2013-12-31 Niels Möller + + * doc/gmp.texi (Low-level Functions for cryptography): Document + mpn_sec_minvert. + +2013-12-30 Marc Glisse + + * doc/gmp.texi (C++ interface internals): Break long line. + +2013-12-30 Torbjorn Granlund + + * doc/gmp.texi (Low-level Functions for cryptography): New section. + +2013-12-29 Niels Möller + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-minvert. + * tests/mpn/t-minvert.c: New file. + + * configure.ac (gmp_mpn_functions): Added sec_minvert. + * gmp-h.in (mpn_sec_minvert, mpn_sec_minvert_itch): New + declarations. + * mpn/generic/sec_minvert.c (mpn_sec_minvert) + (mpn_sec_minvert_itch): New functions. + (mpn_sec_add_1, mpn_cnd_neg, mpn_cnd_swap, mpn_sec_eq_ui): New + helper functions. + +2013-12-28 Torbjorn Granlund + + * mpn/generic/sec_powm.c: Fix an ASSERT. + + * gmp-h.in (mpn_sec_mul, mpn_sec_mul_itch): New declarations. + * gmp-h.in (mpn_sec_sqr, mpn_sec_sqr_itch): Likewise. + * mpn/generic/sec_mul.c: New file. + * mpn/generic/sec_sqr.c: New file. + + * gmp-h.in (mpn_sec_powm, mpn_sec_powm_itch): New declarations. + * gmp-h.in (mpn_sec_div_qr, mpn_sec_div_qr_itch): Likewise. + * gmp-h.in (mpn_sec_div_r, mpn_sec_div_r_itch): Likewise. + * gmp-impl: Remove declarations of above functions. + + * configure.ac (gmp_mpn_functions): Add sec_mul and sec_sqr. + +2013-12-26 Marco Bodrato + + * Update many file's encoding to UTF-8. + * doc/tasks.html: Update accordingly. + * doc/projects.html: Likewise. + +2013-12-26 Torbjorn Granlund + + * configure.ac: Rename mpn_blah_sec to mpn_sec_blah. + * gmp-impl.h: Corresponding changes. + * mpn/asm-defs.m4: Corresponding changes. + * tune/Makefile.am: Corresponding changes. + * tune/common.c: Corresponding changes. + * tune/speed.c: Corresponding changes. + * tune/speed.h: Corresponding changes. + * tune/tuneup.c: Corresponding changes. + * mpz/powm_sec.c: Update calls. + * tests/mpn/t-div.c: Likewise. + + * mpn/generic/sec_powm.c: New name for mpn/generic/powm_sec.c. + * mpn/generic/sec_div.c: New name for mpn/generic/sb_div_sec.c. + * mpn/generic/sec_pi1_div.c: New name for mpn/generic/sbpi1_div_sec.c. + * mpn/generic/sec_tabselect.c: New name for mpn/generic/tabselect.c. + + * mpn/alpha/sec_tabselect.asm: New name for tabselect.asm. + * mpn/arm/neon/sec_tabselect.asm: New name for tabselect.asm. + * mpn/arm/sec_tabselect.asm: New name for tabselect.asm. + * mpn/ia64/sec_tabselect.asm: New name for tabselect.asm + * mpn/powerpc32/sec_tabselect.asm: New name for tabselect.asm + * mpn/powerpc64/sec_tabselect.asm: New name for tabselect.asm + * mpn/sparc64/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86/mmx/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/bd1/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/core2/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/coreinhm/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/coreisbr/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/fastsse/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/k10/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/pentium4/sec_tabselect.asm: New name for tabselect.asm + * mpn/x86_64/sec_tabselect.asm: New name for tabselect.asm + +2013-12-25 Torbjorn Granlund + + * mpz/powm_sec.c: Handle 0^e mod m specially. + * mpn/generic/powm_sec.c: ASSERT that the base is non-zero. + +2013-12-23 Torbjorn Granlund + + * mpn/generic/powm_sec.c (redcify): Use passed scratch instead of + locally allocated. + (mpn_powm_sec_itch): Accommodate mpn_sb_div_r_sec's scratch needs. + +2013-12-20 Mark Sofroniou + + * mpn/generic/mul_fft.c: Major overhaul of types. + +2013-12-18 Torbjorn Granlund + + * doc/gmp.texi (Low-level Functions): Rewrite mpn_set_str docs. + +2013-12-14 Ulrich Weigand + + * mpn/powerpc32/darwin.m4: Allow (and ignore) optional + 'toc' parameter to PROLOGUE_cpu. + * mpn/powerpc32/elf.m4: Likewise. + +2013-12-09 Ulrich Weigand + + * configure.ac: Check for ELFv2 ABI on PowerPC. + * mpn/powerpc64/elf.m4: Set assembler ABI version for ELFv2 + and use appropriate PROLOGUE_cpu/EPILOGUE_cpu sequences. + Support optional 'toc' parameter to PROLOGUE_cpu. + * mpn/powerpc64/aix.m4: Allow (and ignore) optional + 'toc' parameter to PROLOGUE_cpu. + * mpn/powerpc64/darwin.m4: Likewise. + + * mpn/powerpc64/mode64/dive_1.asm (mpn_divexact_1): Add 'toc' + parameter to PROLOGUE. + * mpn/powerpc64/mode64/divrem_1.asm (mpn_divrem_1): Likewise. + * mpn/powerpc64/mode64/divrem_2.asm (mpn_divrem_2): Likewise. + * mpn/powerpc64/mode64/gcd_1.asm (mpn_gcd_1): Likewise. + * mpn/powerpc64/mode64/invert_limb.asm (mpn_invert_limb): Likewise. + * mpn/powerpc64/mode64/mod_1_1.asm (mpn_mod_1_1p_cps): Likewise. + * mpn/powerpc64/mode64/mod_1_4.asm (mpn_mod_1s_4p_cps): Likewise. + * mpn/powerpc64/mode64/mode1o.asm (mpn_modexact_1c_odd): Likewise. + * mpn/powerpc64/mode64/p7/gcd_1.asm (mpn_gcd_1): Likewise. + * mpn/powerpc64/p6/lshift.asm (mpn_lshift): Likewise. + * mpn/powerpc64/p6/lshiftc.asm (mpn_lshiftc): Likewise. + * mpn/powerpc64/p6/rshift.asm (mpn_rshift): Likewise. + * mpn/powerpc64/vmx/popcount.asm (mpn_popcount): Likewise. + +2013-12-07 Niels Möller + + * configfsf.sub: Updated to version 2013-10-01, from gnulib. + * configfsf.guess: Updated to version 2013-11-29, from gnulib. + +2013-12-03 Torbjorn Granlund + + * mpn/generic/div_qr_1.c: Make constant args asm inlines become limbs. + * mpn/generic/div_qr_1n_pi1.c: Likewise. + * mpn/generic/div_qr_2.c: Likewise. + * mpn/generic/div_qr_2.c: Likewise. + * mpn/generic/mod_1_1.c: Likewise. + * mpn/generic/mod_1_2.c: Likewise. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + * mpn/generic/mulmid_basecase.c: Likewise. + * mpn/generic/mulmod_bnm1.c: Likewise. + * mpn/generic/sqrmod_bnm1.c: Likewise. + * mpn/sparc64/divrem_1.c: Likewise. + * mpn/sparc64/mod_1_4.c: Likewise. + + * mpn/generic/toom_interpolate_7pts.c (BINVERT_15): Fix typo. + +2013-11-11 Torbjorn Granlund + + * mpn/x86_64/dos64.m4 (CALL): Provide to override default. + +2013-11-08 Torbjorn Granlund + + * mpn/x86_64/x86_64-defs.m4 (CALL): Swap PIC test and macro defn. + + * mpn/generic/div_qr_2.c: Test HAVE_HOST_CPU_FAMILY_x86, not i386. + + * doc/gmp.texi: Update many URLs. + +2013-11-04 Torbjorn Granlund + + * configure.ac: Set symbol OPENBSD for x86-openbsd hosts. + * mpn/x86_64/fat/fat_entry.asm (PRETEND_PIC): New name for + PIC_OR_DARWIN. + (PRETEND_PIC): Set also for OPENBSD. + +2013-10-29 Torbjorn Granlund + + * printf/doprnt.c (__gmp_doprnt): Use memcpy instead of strcpy. + +2013-10-24 Torbjorn Granlund + + * mpn/generic/div_qr_1u_pi2.c: New file. + * mpn/generic/div_qr_1n_pi2.c: New file. + +2013-10-24 Niels Möller + + * mpn/x86_64/div_qr_1n_pi1.asm: Bugfixes, for case n == 1 and + in-place operation. + * mpn/x86_64/k8/div_qr_1n_pi1.asm: Likewise. + + * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Bug fixes, + off-by-one MPN_INCR_U, and support for in-place operation. + +2013-10-24 Torbjorn Granlund + + * mpn/x86/fat/fat.c (fake_cpuid_table): Add Haswell. + +2013-10-23 Torbjorn Granlund + + * mpn/x86_64/x86_64-defs.m4 (oplist): New define, data from `regnum'. + (regnum): Use x86_lookup, feed oplist. + +2013-10-22 Niels Möller + + * tests/devel/try.c: Support mpn_div_qr_1n_pi1. + + * mpn/x86_64/k8/div_qr_1n_pi1.asm: Moved the below k10 file here. + Applied tweak from Torbjörn to get it to run well on k8. + + * mpn/x86_64/k10/div_qr_1n_pi1.asm: New file (renamed above). + Differs from generic x86_64 version by using cmov. + + * mpn/x86_64/div_qr_1n_pi1.asm: Reordered arguments to second mul. + Deleted misleading cycle annotations. + +2013-10-21 Niels Möller + + * configure.ac: Add HAVE_NATIVE_mpn_div_qr_1n_pi1 to config.in. + + * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): Fix typos + affecting ASSERT. + +2013-10-20 Niels Möller + + * mpn/x86_64/div_qr_1n_pi1.asm: New file. + + * tune/div_qr_1_tune.c (__gmpn_div_qr_1n_pi1): Check + div_qr_1n_pi1_method only when !HAVE_NATIVE_mpn_div_qr_1n_pi1. + + * mpn/asm-defs.m4 (define_mpn): Add div_qr_1n_pi1. + + * tune/common.c (speed_mpn_div_qr_1): New function, replacing... + (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): ... deleted functions + (speed_mpn_div_qr_1n_pi1, speed_mpn_div_qr_1n_pi1_1) + (speed_mpn_div_qr_1n_pi1_2): New functions. + * gmp-impl.h [TUNE_PROGRAM_BUILD]: Declare div_qr_1-related tuning + variables. + * tune/tuneup.c (speed_mpn_div_qr_1_tune, tune_div_qr_1): New + functions. + (div_qr_1n_pi1_method, div_qr_1_norm_threshold) + (div_qr_1_unnorm_threshold): New globals. + * tune/speed.c (routine): Replaced mpn_div_qr_1n and mpn_div_qr_1u + by mpn_div_qr_1, requiring ".r" parameter. Added mpn_div_qr_1n_pi1 + and variants. + * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): Use the "r" parameter + as divisor. + * tune/div_qr_1n_pi1_2.c: New file. + * tune/div_qr_1n_pi1_1.c: New file. + * tune/div_qr_1_tune.c: New file. + * tune/Makefile.am (libspeed_la_SOURCES): Added div_qr_1n_pi1_1.c, + div_qr_1n_pi1_2.c, and div_qr_1_tune.c. + + * tune/speed.c (routine): Added mpn_div_qr_1n and mpn_div_qr_1u. + * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_1): New macro. + (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): Declare. + * tune/common.c (speed_mpn_div_qr_1n, speed_mpn_div_qr_1u): New + functions. + + * gmp-impl.h (mpn_div_qr_1n_pi1): Declare function. + * gmp-h.in (mpn_div_qr_1): Declare function. + * configure.ac (gmp_mpn_functions): Added div_qr_1 and + div_qr_1n_pi1. + * mpn/generic/div_qr_1.c (mpn_div_qr_1): New file and function. + * mpn/generic/div_qr_1n_pi1.c (mpn_div_qr_1n_pi1): New file and + function. + * tests/mpn/t-div.c (main): Test mpn_div_qr_1. + +2013-10-17 Torbjorn Granlund + + * configure.ac (alpha): Pass -mieee via gcc_cflags_maybe. + +2013-10-16 Torbjorn Granlund + + * config.guess: Let AMD64 cpuid bit override pessimistic cpu guesses. + + * mpn/alpha/unicos.m4 (DATASTART): Accept optional align parameter. + * mpn/alpha/divrem_2.asm: Use provided gp mechanisms. + * mpn/alpha/default.m4 (PROLOGUE): Provide "..ng" post-gp label. + * mpn/alpha/invert_limb.asm: Align table to 8-byte boundary. Make code + work if table is not fully aligned. Properly test for BWX. + +2013-10-15 Torbjorn Granlund + + * mpn/alpha/default.m4 (DATASTART): Use RODATA instead of DATA; + accept optional align parameter. + * mpn/alpha/invert_limb.asm: Align table. + * mpn/alpha/ev5/diveby3.asm: Likewise. + +2013-10-11 Torbjorn Granlund + + * mpn/x86/k7/mod_1_1.asm: Use 'subl' form to avoid ambiguity. + * mpn/x86/k7/mod_1_4.asm: Likewise. + + * configure.ac (X86_64_PATTERN): Append "cc" to cclist_64 and + cclist_x32. + +2013-10-08 Torbjorn Granlund + Marc Glisse + + * tests/mpf/reuse.c (main): Compare addresses instead of names. + Use larger numbers for exponents. + +2013-10-08 Marc Glisse + + * doc/mdate-sh, doc/texinfo.tex, install-sh, missing, ylwrap: Remove. + * .bootstrap: Use autoreconf (and in particular automake -a). + + * gmp-h.in: Remove __need_size_t. Include , not . + + * tests/mpf/reuse.c (main): Use small numbers as exponents. + +2013-10-05 Torbjorn Granlund + + * mpn/x86_64/atom/aorsmul_1.asm: Slight tweak. + + * doc/gmp.texi (ABI and ISA): Document x32. + + * mpn/sparc64/ultrasparct3/dive_1.asm: Use our register names. + +2013-09-24 Torbjorn Granlund + + * mpn/x86_64/atom/redc_1.asm: New file. + +2013-09-23 Torbjorn Granlund + + * mpn/x86_64/bobcat/redc_1.asm: Make the code for 1 <= n <= 3 work. + +2013-09-22 Torbjorn Granlund + + * mpn/x86_64/coreisbr/redc_1.asm: Slightly tweak basecase code. + + * mpn/x86_64/core2/redc_1.asm: New file. + + * mpn/x86_64/bobcat/redc_1.asm: New file. + +2013-09-21 Torbjorn Granlund + + * mpn/x86_64/coreinhm/redc_1.asm: New file. + +2013-09-21 Marc Glisse + + * tests/mpn/t-mulmid.c: Cast arguments of printf to int to match %d. + * tests/rand/t-urbui.c: Use 1UL for unsigned constant. + * mpn/generic/get_str.c: Avoid temporarily pointing outside an array. + +2013-09-20 Torbjorn Granlund + + * mpn/x86_64/coreisbr/redc_1.asm: New file. + + * mpn/x86_64/k8/redc_1.asm: Complete rewrite. + + * mpn/x86_64/coreisbr/mullo_basecase.asm: Postpone pushes, short- + circuit a branch. + * mpn/x86_64/coreihwl/mullo_basecase.asm: Short-circuit a branch. + + * mpn/x86_64/core2/mullo_basecase.asm: New file. + +2013-09-19 Torbjorn Granlund + + * mpn/x86_64/fastsse/copyi-palignr.asm: Allocate more stack under DOS. + +2013-09-18 Torbjorn Granlund + + * mpn/x86_64/core2/mul_basecase.asm: New file. + * mpn/x86_64/core2/sqr_basecase.asm: New file. + + * mpn/x86_64/coreihwl/mullo_basecase.asm: New file. + * mpn/x86_64/coreisbr/mullo_basecase.asm: New file. + +2013-09-16 Torbjorn Granlund + + * mpn/x86_64/fastsse/copyi-palignr.asm: Preserve xmm6-xmm8 under DOS. + +2013-09-15 Torbjorn Granlund + + * mpn/x86_64/tabselect.asm: Use R8 for bit testing. + + * mpn/x86_64/coreihwl/mul_basecase.asm: Replace mul_1 code. + + * mpn/x86_64/coreisbr/aorsmul_1.asm: Rewrite. + +2013-09-12 Torbjorn Granlund + + * mpn/ia64/gcd_1.asm: Use dep for combining table base and low bits. + + * mpn/x86_64/fastsse/com-palignr.asm: Implement temp fix to properly + handle overlap. + +2013-09-10 Torbjorn Granlund + + * mpn/x86_64/fastsse/copyi-palignr.asm: Rewrite rp != up (mod 16) code + to make it handle any allowed overlap. + +2013-09-09 Torbjorn Granlund + + * mpn/x86_64/atom/com.asm: New file, grabbing fastsse code. + + * mpn/x86_64/bd1/copyi.asm: New file, grabbing fastsse code. + * mpn/x86_64/bd1/copyd.asm: Likewise. + * mpn/x86_64/bd1/com.asm: Likewise. + + * mpn/x86_64/fastavx/copyi.asm: New file. + * mpn/x86_64/fastavx/copyd.asm: New file. + +2013-09-05 Torbjorn Granlund + + * mpn/x86_64/coreihwl/aorsmul_1.asm: Streamline. + +2013-09-04 Torbjorn Granlund + + * mpn/x86_64/coreihwl/sqr_basecase.asm: Implement larger "corner". + Misc tuning. + +2013-09-03 Torbjorn Granlund + + * mpn/x86_64/coreihwl/redc_1.asm: New file. + + * mpn/x86_64/x86_64-defs.m4 (mulx): Handle negative offsets. + +2013-08-31 Torbjorn Granlund + + * mpn/x86_64/coreisbr/sqr_basecase.asm: New file. + + * mpn/x86_64/sqr_diag_addlsh1.asm: New file. + +2013-08-30 Torbjorn Granlund + + * mpn/x86_64/fat/mul_basecase.c: New file. + * mpn/x86_64/fat/sqr_basecase.c: New file. + * mpn/x86_64/fat/mullo_basecase.c: New file. + * mpn/x86_64/fat/redc_1.c: New file. + +2013-08-29 Torbjorn Granlund + + * mpn/x86_64/k8/mul_basecase.asm: Move top-level basecase file to k8 + subdir. + * mpn/x86_64/k8/sqr_basecase.asm: Likewise. + * mpn/x86_64/k8/redc_1.asm: Likewise. + * mpn/x86_64/k8/mullo_basecase.asm: Likewise. + * mpn/x86_64/k8/mulmid_basecase.asm: Likewise. + + * mpn/ia64/aors_n.asm: Clean up some bundlings. + + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Support Haswell. + (fake_cpuid_table): Likewise. + + * configure.ac (x86): Remove any mulx paths. Let bwl path = hwl path. + (fat_path): Add coreihwl. + + * mpn/x86_64/coreihwl/aorsmul_1.asm: Move from `mulx' directory, use + mulx() macro. + * mpn/x86_64/coreihwl/mul_1.asm: Likewise. + * mpn/x86_64/coreihwl/mul_2.asm: Likewise. + * mpn/x86_64/coreihwl/mul_basecase.asm: Likewise. + * mpn/x86_64/coreihwl/sqr_basecase.asm: Likewise. + + * mpn/x86_64/x86_64-defs.m4 (mulx): New macro. + (regnum, regnumh, ix): Supporting macros. + +2013-08-28 Torbjorn Granlund + + * mpn/x86_64/coreisbr/divrem_1.asm: New file. + +2013-08-23 Torbjorn Granlund + + * mpn/x86_64/fastsse/com-palignr.asm: New file, closely based on + copyi-palignr.asm. + + * mpn/x86_64/fastsse/copyi.asm Use "test R8(reg)" instead of "bt". + * mpn/x86_64/fastsse/copyd-palignr.asm: Likewise. + * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise. + * mpn/x86_64/fastsse/lshift-movdqu2.asm: Likewise. + * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise. + * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise. + * mpn/x86_64/fastsse/tabselect.asm: Likewise. + + * mpn/sparc64/ultrasparct3/sqr_diag_addlsh1.asm: New file. + + * mpn/alpha/aorslsh2_n.asm: New file. + * mpn/alpha/aorslsh1_n.asm: Rewrite. + * mpn/alpha/ev6/aorslsh1_n.asm: New file. + +2013-08-21 Torbjorn Granlund + + * mpn/alpha/sqr_diag_addlsh1.asm: New file. + * mpn/alpha/sqr_diagonal.asm: Remove. + * mpn/alpha/ev6/sqr_diagonal.asm: Remove. + +2013-08-20 Torbjorn Granlund + + * mpn/powerpc32/sqr_diag_addlsh1.asm: New file. + * mpn/powerpc32/sqr_diagonal.asm: Remove. + +2013-08-15 Torbjorn Granlund + + * mpn/x86_64/coreihwl/mulx/sqr_basecase.asm: New file. + +2013-08-05 Torbjorn Granlund + + * mpn/x86_64/coreisbr/aors_n.asm: Complete rewrite. + +2013-08-04 Torbjorn Granlund + + * mpn/x86_64/coreihwl/mulx/mul_basecase.asm: New file. + + * mpn/x86_64/bd1/mul_2.asm: New file. + + * mpn/x86_64/coreihwl/gmp-mparam.h: New file. + +2013-08-03 Torbjorn Granlund + + * mpn/x86_64/coreihwl/mulx/mul_2.asm: New file. + * mpn/x86_64/coreihwl/mulx/addmul_2.asm: New file. + + * mpn/x86_64/coreinhm/aorsmul_1.asm: New file. + + * mpn/x86_64/coreisbr/mul_basecase.asm: Save some O(n) and O(1) cycles. + + * mpn/x86_64/coreisbr/mul_2.asm: New file. + +2013-08-02 Torbjorn Granlund + + * mpn/x86_64/coreisbr/addmul_2.asm: Complete rewrite. + +2013-08-01 Torbjorn Granlund + + * mpn/x86_64/bd1/mul_basecase.asm: New file. + + * mpn/x86_64/coreisbr/mul_basecase.asm: New file. + + * mpn/x86_64/coreihwl/aorsmul_1.asm: New file. + +2013-07-31 Torbjorn Granlund + + * mpn/x86_64/atom/mul_2.asm: New file. + * mpn/x86_64/atom/addmul_2.asm: New file. + * mpn/x86_64/atom/mul_1.asm: New file. + * mpn/x86_64/atom/aorsmul_1.asm: New file. + + * mpn/x86_64/coreihwl/mul_1.asm: New file. + + * configure.ac (x86): Add Haswell-specific path. + + * configure.in (fat_functions): Add cnd_add_n, cnd_sub_n.. + * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions. + * gmp-impl.h: Adjust corresponding declarations. + + * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions. + * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise. + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise. + * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise. + +2013-07-30 Torbjorn Granlund + + * mpn/x86_64/coreisbr/popcount.asm: New file. + +2013-07-23 Torbjorn Granlund + + * mpn/x86_64/bobcat/aors_n.asm: New file. + + * mpn/x86_64/pentium4/aorslshC_n.asm: Remove a spurious emms insn. + + * mpn/x86_64/bd1/aorrlsh1_n.asm: New file. + * mpn/x86_64/bd1/sublsh1_n.asm: New file. + +2013-07-22 Torbjorn Granlund + + * mpn/powerpc64/mode64/mod_1_1.asm: Handle little-endian mode. + * mpn/powerpc64/mode64/mod_1_4.asm: Likewise. + +2013-07-16 Torbjorn Granlund + + * doc/gmp.texi: Declare countless of function arguments as 'const'. + +2013-07-15 Torbjorn Granlund + + * mpn/x86_64/core2/aors_n.asm: Rewrite. + + * mpn/generic/sb_div_sec.c: Compute inverse as floor(B^2/(dh+1)), per + Niels' suggestion. + * mpn/generic/sbpi1_div_sec.c: Remove inverse rounding-up code. + +2013-07-14 Torbjorn Granlund + + * mpn/powerpc64/mode64/divrem_1.asm: Remove explicit nop after CALL. + * mpn/powerpc64/mode64/divrem_2.asm: Likewise. + * mpn/powerpc64/mode64/mod_1_1.asm: Likewise. + * mpn/powerpc64/mode64/mod_1_4.asm: Likewise. + +2013-07-13 Torbjorn Granlund + + * mpn/x86/atom/cnd_add_n.asm: New file. + * mpn/x86/atom/cnd_sub_n.asm: New file.o + +2013-07-12 Torbjorn Granlund + + * mpn/generic/sbpi1_div_sec.c: Partial rewrite. + +2013-07-11 Torbjorn Granlund + + * mpn/x86_64/cnd_aors_n.asm: Tweak for better speed on K8, bobcat, bd1, + NHM, Atom. + +2013-07-05 Torbjorn Granlund + + * mpn/powerpc64/p7/copyi.asm: Handle n = 0. + * mpn/powerpc64/p7/copyd.asm: Likewise. + +2013-07-04 Torbjorn Granlund + + * mpn/powerpc64/mode64/p7/aormul_2.asm: New file. + + * mpn/powerpc64/darwin.m4 (EXTRA_REGISTER): New define. + * mpn/powerpc64/aix.m4: New define (actually undefine). + * mpn/powerpc64/elf.m4: Likewise. + +2013-07-03 Torbjorn Granlund + + * mpn/powerpc64/com.asm: Rewrite. + + * mpn/powerpc64/p7/copyi.asm: New file. + * mpn/powerpc64/p7/copyd.asm: New file. + +2013-07-02 Torbjorn Granlund + + * mpn/powerpc64/mode64/gcd_1.asm: New file. + * mpn/powerpc64/mode64/p7/gcd_1.asm: New file. + +2013-07-01 Torbjorn Granlund + + * configure.ac: Comment out AC_PROG_F77. + + * mpn/powerpc64/mode64/rsh1add_n.asm: Remove. + * mpn/powerpc64/mode64/rsh1sub_n.asm: Remove. + * mpn/powerpc64/mode64/rsh1aors_n.asm: New file, code not based on + removed files. + +2013-06-28 Marc Glisse + + * cxx/ismpf.cc: Use GMP_DECIMAL_POINT. + * cxx/osmpf.cc: Likewise. + * tests/cxx/t-locale.cc: Likewise. + +2013-06-28 Torbjorn Granlund + + * mpn/powerpc64/mode64/p7/aorsorrlshC_n.asm: New file. + * mpn/powerpc64/mode64/p7/aorsorrlsh1_n.asm: New file. + * mpn/powerpc64/mode64/p7/aorsorrlsh2_n.asm: New file. + + * mpn/powerpc64/mode64/aorsorrlshC_n.asm: Use alias regname. + +2013-06-27 Torbjorn Granlund + + * mpn/powerpc64/mode64/p7/aors_n.asm: New file. + +2013-06-22 Torbjorn Granlund + + * aorslshC_n.asm, aorslsh2_n.asm, aorslsh1_n.asm: Remove. + * aorsorrlshC_n.asm, aorsorrlsh1_n.asm, aorsorrlsh2_n.asm: New files. + +2013-06-19 Torbjorn Granlund + + * mpn/powerpc64/p6/lshift.asm: Rewrite switching-into-loop code. + * mpn/powerpc64/p6/rshift.asm: Likewise. + * mpn/powerpc64/p6/lshiftc.asm: Likewise. + +2013-06-17 Torbjorn Granlund + + * mpn/powerpc64/p6/lshift.asm: Fix typo in label reference. + For 32-bit mode, zero extend `n' argument and split retval. + * mpn/powerpc64/p6/rshift.asm: Likewise. + * mpn/powerpc64/p6/lshiftc.asm: Likewise. + +2013-06-10 Torbjorn Granlund + + * mpn/generic/mu_div_q.c: Remove obsolete comment. + +2013-06-09 Marc Glisse + + * mpn/generic/get_d.c (mpn_get_d): Avoid signed overflow. + * mpz/kronzs.c (mpz_kronecker_si): Use ABS_CAST. + +2013-05-31 Torbjorn Granlund + + * mpn/generic/mu_div_q.c: Call mpn_mu_divappr_q for entire division, + never just for tail. (This fixes performance issues at the expense of + memory needs.) + +2013-05-26 Torbjorn Granlund + + * configure.ac (*sparc*-*-*): Major overhaul. + +2013-05-22 Torbjorn Granlund + + * doc/gmp.texi (Reporting Bugs): Ask for configure's output. + + * mpn/ia64/divrem_2.asm: Don't clobber f16-f18. + +2013-05-20 Torbjorn Granlund + + * mpn/arm/udiv.asm: Change spacing to work around binutils bug. + +2013-05-16 Torbjorn Granlund + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. + + * tests/misc.c (tests_hardware_getround, tests_hardware_setround): + Avoid assembly dependency unless WANT_ASSEMBLY. + + * configure.ac (WANT_ASSEMBLY): Conditionally define. + +2013-05-14 Torbjorn Granlund + + * configure.ac (arm1156): Don't fall back to plain v6 compiler option. + +2013-05-11 Torbjorn Granlund + + * mpn/x86_64/coreisbr/mul_1.asm: Handle n = 1 for DOS64. Streamline. + * mpn/x86_64/coreisbr/aorsmul_1.asm: Streamline. + +2013-05-10 Torbjorn Granlund + + * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix, then enable DOS64 support. + * mpn/x86_64/coreisbr/mul_1.asm: Enable DOS64 support. + + * mpn/x86/p6/mmx/gmp-mparam.h: Set down SQR_TOOM2_THRESHOLD to parent + directory value. + +2013-05-09 Torbjorn Granlund + + * configure.ac (--enable-fake-cpuid): New option. + * mpn/x86_64/fat/fat.c (WANT_FAKE_CPUID): Remove defaulting. + * mpn/x86/fat/fat.c (WANT_FAKE_CPUID): Likewise. + + * mpn/x86_64/bd1/mul_1.asm: Fix typo. + +2013-05-07 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (fake_cpuid): Handle 0x80000001 request. + (fake_cpuid_available): Remove unused function. + + * mpn/generic/mod_1_1.c: Cast constant udiv_rnnd_preinv arguments. + * mpn/generic/mod_1_2.c: Likewise. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + * mpn/generic/divrem_2.c: Likewise. + +2013-05-06 Torbjorn Granlund + + * config.guess (power*): Handle all ppc970 variants. + +2013-05-03 David S. Miller + + * tune/common.c (speed_mpn_addlsh1_n, speed_mpn_sublsh1_n, + speed_mpn_rsblsh1_n, speed_mpn_addlsh2_n, speed_mpn_sublsh2_n, + speed_mpn_rsblsh2_n): Don't define if these routines are macros. + * tune/speed.c (routine): Likewise don't table if they are macros. + + * mpn/sparc64/ultrasparct3/addmul_1.asm: Add T4 and T3 timings. + * mpn/sparc64/ultrasparct3/aormul_4.asm: Likewise. + * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Likewise. + * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: Likewise. + * mpn/sparc64/ultrasparct3/submul_1.asm: Likewise. + +2013-05-03 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/aorslsh_n.asm: Invoke INITCY where it has + effect. + + * gmp-impl.h: Amend last change. + * tests/devel/try.c (choice_array): Don't try to table addlsh1_n etc if + a macro. + +2013-05-02 Torbjorn Granlund + + * mpn/arm/copyd.asm: Suppress dead pointer update. + * mpn/arm/copyi.asm: Likewise. + * mpn/arm/neon/logops_n.asm: Likewise. + * mpn/arm/neon/tabselect.asm: Likewise. + * mpn/arm/rshift.asm: Likewise. + * mpn/arm/tabselect.asm: Likewise. + * mpn/arm/v6/dive_1.asm: Likewise + * mpn/arm/v7a/cora15/neon/copyi.asm: Likewise. + + * mpn/arm/v7a/cora15/neon/com.asm: New file. + +2013-05-01 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/aormul_4.asm: New file. + + * configure.ac (GMP_MULFUNC_CHOICES): Support mul_3 + addmul_3 and + mul_4 + addmul_4. + + * mpn/sparc64/ultrasparct3/aormul_2.asm: Optimise lead-in code. + + * mpn/sparc64/ultrasparct3/missing.m4 (addxccc): Allow g2 as input. + (umulxhi): Save and restore o7 to allow it as in/out parameter. + +2013-04-29 Torbjorn Granlund + + * mpn/arm/v7a/cora15/cnd_aors_n.asm: New file, was mis-named. + + * mpn/sparc64/ultrasparct3/addmul_1.asm: Rewrite. + + * mpn/sparc64/ultrasparct3/submul_1.asm: Rewrite. + + * mpn/sparc64/ultrasparct3/cnd_aors_n.asm: New file. + + * gmp-impl.h: Override mpn_addlsh1_n, mpn_addlsh2_n, mpn_sublsh1_n, etc + with mpn_addlsh_n, etc when !HAVE_NATIVE the former but HAVE_NATIVE the + latter. + + * mpn/sparc64/ultrasparct3/aorslsh_n.asm: New file. + + * configure.ac (sparc-*-*): Recognise t5 along with t3 and t4. + Remove sparc64/ultrasparct1 from path_64 for T3, T3, and T5. + +2013-04-27 Mike Frysinger + + * configure.ac (arm*-*-*): Set up path also for plainest CPU variants. + +2013-04-27 Torbjorn Granlund + + * mpn/arm/v6/popham.asm: New file. + + * mpn/arm/v7a/cora15/cnd-aors_n.asm: New file. + +2013-04-25 Torbjorn Granlund + + * mpn/arm/mod_34lsub1.asm: Clear carry smarter. + + * mpn/arm/v7a/cora15/logops_n.asm: Conditionally suppress conditionally + used code. + + * mpn/arm/v7a/cora15/submul_1.asm: New file. + +2013-04-24 Torbjorn Granlund + + * mpn/arm/v7a/cora15/com.asm: New file. + + * mpn/arm/v7a/cora15/logops_n.asm: New file. + +2013-04-19 Torbjorn Granlund + + * mpn/arm/v7a/cora15/aors_n.asm: New file. + + * mpn/arm/v7a/cora15/addmul_1.asm: Rewrite. + +2013-04-18 Torbjorn Granlund + + * mpn/alpha/tabselect.asm: New file. + +2013-04-17 Torbjorn Granlund + + * mpn/powerpc32/tabselect.asm: New file. + + * longlong.h (arm64 count_trailing_zeros): New. + + * mpn/arm64/invert_limb.asm: New file. + + * mpn/generic/dive_1.c: Rewrite to use Hensel division also for + size = 1. + + * mpn/generic/mod_1_1.c (add_mssaaaa): Provide VIS3 variant. + + * configure.ac: Remove "missing" from extra_functions_64 for coreibwl. + + * mpn/sparc64/ultrasparct3/mul_1.asm: Decrease loop alignment. + * mpn/sparc64/ultrasparct3/aormul_2.asm: Likewise. + +2013-04-16 Torbjorn Granlund + + * mpn/alpha/invert_limb.asm: Generate table. + * mpn/powerpc64/mode64/invert_limb.asm: Likewise. + * mpn/s390_64/invert_limb.asm: Likewise. + * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. + * mpn/x86_64/invert_limb_table.asm: Likewise. + +2013-04-15 David S. Miller + + * mpn/sparc32/sparc-defs.m4 (LEA64): New macro. + * mpn/sparc64/gcd_1.asm: Use it. + * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise. + * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. + * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise. + + * mpn/sparc64/gcd_1.asm: Use RODATA, TYPE, and SIZE. + +2013-04-15 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/invert_limb.asm: Avoid addend for GOT entry, + it is not portable. + + * mpn/sparc64/tabselect.asm: New file. + + * mpn/x86/mmx/tabselect.asm: New file. + * configure.ac (x86): Add x86/mmx to path for relevant CPUs. + + * mpn/sparc64/gcd_1.asm: Use rdpc for PIC. + * mpn/sparc64/ultrasparct3/mode1o.asm: Use rdpc for PIC. + * mpn/sparc64/ultrasparct3/dive_1.asm: Use rdpc for PIC. + * mpn/sparc64/ultrasparct3/invert_limb.asm: Handle PIC, use rdpc. + + * Revert remaining parts of recent sparc LEA changes. + +2013-04-14 David S. Miller + + * mpn/sparc32/v9/sqr_diagonal.asm: Revert LEA and INT32 changes. + * mpn/sparc64/gcd_1.asm: Likewise. + +2013-04-13 Torbjorn Granlund + + * mpn/x86_64/bd1/tabselect.asm: New file. + * mpn/x86_64/coreisbr/tabselect.asm: New file. + * mpn/x86_64/k10/tabselect.asm: New file. + * mpn/x86_64/coreinhm/tabselect.asm: New file. + * mpn/x86_64/core2/tabselect.asm: New file. + * mpn/x86_64/pentium4/tabselect.asm: New file. + + * mpn/x86_64/fastsse/tabselect.asm: New file. + * mpn/arm/neon/tabselect.asm: Rewrite. + * mpn/arm/tabselect.asm: Rewrite. + * mpn/powerpc64/tabselect.asm: Rewrite. + * mpn/x86_64/tabselect.asm: Rewrite. + + * tune/speed.h (SPEED_ROUTINE_MPN_TABSELECT): Implement special code, + making .r argument be table width. + +2013-04-11 David S. Miller + + * mpn/sparc32/sparc-defs.m4 (LEA): Remove unused local label. + (LEA_LEAF): Likewise. + +2013-04-11 Niels Möller + + * mpn/arm/v6/submul_1.asm: New file, using the corresponding + addmul_1 loop + complement trick. + +2013-04-10 David S. Miller + + * acinclude.m4 (GMP_ASM_SPARC_GOTDATA, + GMP_ASM_SPARC_SHARED_THUNKS): New feature tests. + * configure.ac: Call GMP_ASM_SPARC_GOTDATA and + GMP_ASM_SPARC_SHARED_THUNKS on sparc. + * mpn/sparc32/sparc-defs.m4 (LEA, LEA_LEAF, LEA_THUNK): New macros. + * mpn/sparc32/udiv.asm: Convert over to LEA, LEA_LEAF, and LEA_THUNK. + * mpn/sparc32/v8/addmul_1.asm: Likewise. + * mpn/sparc32/v8/mul_1.asm: Likewise. + * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. + * mpn/sparc32/v8/udiv.asm: Likewise. + * mpn/sparc64/gcd_1.asm: Likewise. + * mpn/sparc64/ultrasparct3/dive_1.asm: Likewise. + * mpn/sparc64/ultrasparct3/invert_limb.asm: Likewise. + * mpn/sparc64/ultrasparct3/mode1o.asm: Likewise. + * mpn/sparc32/v9/sqr_diagonal.asm: Likewise and use INT32. + +2013-04-09 Torbjorn Granlund + + * longlong.h (sparc64): Test __VIS__ instead of __sparc_vis3. + + * config.guess (sparc*): Invoke set_cc_for_build to get $dummy. + +2013-04-08 Torbjorn Granlund + + * config.guess: Rework tmp file names, make sure to remove tmp files. + + * mpn/arm/dive_1.asm: Rewrite count-trailing-zeros code, using private + table. + + * mpn/arm: Canonicalise arm assembly to use old style "mov ... lsl" for + shift ops. + +2013-04-07 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/mod_34lsub1.asm: New file. + + * longlong.h (sparc64): Define umul_ppmm, add_ssaaaa, and + count_leading_zeros conditionally under the symbol __sparc_vis3. + + * mpn/arm/dive_1.asm: New file. + * mpn/arm/v6/dive_1.asm: New file. + + * mpn/arm/v6t2/mode1o.asm: Make trivial change to avoid v6t2... + * mpn/arm/v6/mode1o.asm: ...instruction, move file accordingly. + + * mpn/powerpc64/mode64/invert_limb.asm: Put all multiplies low-limb first. + +2013-04-04 David S. Miller + + * mpn/sparc64/ultrasparct3/add_n.asm: Rewrite. + * mpn/sparc64/ultrasparct3/sub_n.asm: Rewrite. + + * mpn/sparc64/ultrasparct3/invert_limb.asm: Align table. + +2013-04-04 Torbjorn Granlund + + * mpn/sparc32/sparc-defs.m4: Provide dummy lzcnt. + + * tests/mpn/logic.c: Seed using RANDS, then use mpz_rrandomb. + + * tests/mpn/t-div.c (random_word): Remove. Let callers invoke urandom. + + * mpn/sparc64/ultrasparct3/mul_1.asm: Rewrite. + + * mpn/sparc64/ultrasparct3/bdiv_dbm1c.asm: New file. + * mpn/sparc64/ultrasparct3/dive_1.asm: New file. + * mpn/sparc64/ultrasparct3/invert_limb.asm: New file. + * mpn/sparc64/ultrasparct3/mod_1_4.asm: New file. + * mpn/sparc64/ultrasparct3/mode1o.asm: New file. + +2013-04-03 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/aormul_2.asm: Reschedule for better speed. + +2013-04-02 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/missing.m4: Misc tweaks. + (lzcnt): New. + * mpn/sparc64/ultrasparct3/missing.asm (__gmpn_lzcnt): New function. + + * mpn/sparc32/sparc-defs.m4: Put FAKE_T3 stuff here... + * mpn/sparc64/ultrasparct3/aormul_2.asm: ...moved from here. + + * mpn/sparc64/ultrasparc1234/lshift.asm: Remove. + * mpn/sparc64/ultrasparc1234/rshift.asm: Remove. + +2013-04-01 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/missing.m4 (umulxhi): Don't clobber retaddr, + allowing use in functions that does not do save/restore. + + * mpn/sparc64/gcd_1.asm: Tweak for tighter loop. + +2013-03-31 David S. Miller + + * mpn/sparc64/lshift.asm: New file. + * mpn/sparc64/rshift.asm: New file. + * mpn/sparc64/lshiftc.asm: New file. + +2013-03-31 Torbjorn Granlund + + * mpn/sparc64/ultrasparct1/lshift.asm: Remove. + * mpn/sparc64/ultrasparct1/rshift.asm: Remove. + * mpn/sparc64/ultrasparct1/lshiftc.asm: Remove. + +2013-03-29 Torbjorn Granlund + + * mpn/sparc64/ultrasparct3/aormul_2.asm: Always do mulx before umulxhi. + +2013-03-28 Torbjorn Granlund + + * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p): Make precomputed arg 'const'. + (mpn_mod_1s_4p_cps): Update from generic code. + +2013-03-27 Torbjorn Granlund + + * mpn/generic/trialdiv.c: Make variables 'const' to match tables. + + * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Make precomputed arg 'const'. + * mpn/generic/mod_1_2.c (mpn_mod_1s_2p): Likewise. + * mpn/generic/mod_1_3.c (mpn_mod_1s_3p): Likewise. + * mpn/generic/mod_1_4.c (mpn_mod_1s_4p): Likewise. + * gmp-impl.h: Update prototypes. + + * mpn/x86_64/mulx/aorsmul_1.asm: New file. + * mpn/x86_64/mulx/addmul_1.asm: Remove. + +2013-03-26 Niels Möller + + Make mpn_cnd_add_n and mpn_cnd_sub_n public. + * doc/gmp.texi (Low-level Functions): Document mpn_cnd_add_n and + mpn_cnd_sub_n. + * gmp-h.in (mpn_cnd_add_n, mpn_cnd_sub_n): Moved prototypes + here... + * gmp-impl.h: ... from here. + +2013-03-26 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/cnd_add_n.asm: New file. + * mpn/x86/pentium4/sse2/cnd_sub_n.asm: New file. + * mpn/x86/cnd_aors_n.asm: New file. + +2013-03-25 David S. Miller + + * mpn/sparc64/ultrasparct3/hamdist.asm: New file. + * mpn/sparc64/ultrasparct3/popcount.asm: New file. + +2013-03-25 Torbjorn Granlund + + * mpn/ia64/aorsorrlshC_n.asm: Generalised from aorslshC_n.asm. + * mpn/ia64/aorsorrlsh1_n.asm: Generalised from aorslsh1_n.asm. + * mpn/ia64/aorsorrlsh2_n.asm: Generalised from aorslsh2_n.asm. + +2013-03-24 Torbjorn Granlund + + * mpn/arm/v7a/cora15/neon/aorsorrlshC_n.asm: New file. + * mpn/arm/v7a/cora15/neon/aorsorrlsh2_n.asm: New file. + * mpn/arm/v7a/cora15/neon/aorsorrlsh1_n.asm: New file. + * mpn/arm/v7a/cora15/neon/rsh1aors_n.asm: New file. + + * configure.ac (GMP_MULFUNC_CHOICES): Support add+sub+rsb lsh files. + + * tests/refmpn.c (refmpn_addlsh_nc, refmpn_sublsh_nc): Remove silly + assert of mp_limb being non-negative. + +2013-03-21 Torbjorn Granlund + + * mpn/arm/neon/lshiftc.asm: New file. + + * mpn/arm/v6/sqr_basecase.asm: Trim 'sqr_diag_addlsh1' loop. + + * gen-trialdivtab.c: Output just raw data, remove actual variables. + * mpn/generic/trialdiv.c: Put variables from gen-trialdivtab.c here, + and make them 'const'. + +2013-03-20 Torbjorn Granlund + + * config.guess: Rework arm CPU recognition. + * config.sub: Corresponding updates. + * configure.ac: Likewise. + + * mpn/x86_64/mulx/adx/addmul_1.asm: Let FAKE_MULXADX be off by default. + + * mpn/arm/v7a/cora15/neon/copyi.asm: Move from "..". + * mpn/arm/v7a/cora15/neon/copyd.asm: Likewise. + + * config.guess: Tack on "neon" for appropriate arm CPUs. + * configure.ac (arm*-*-*): Recognise neon suffix for a8, a9, and a15. + +2013-03-19 Marco Bodrato + + * mpf/fits_u.h: Accept numbers truncating to zero before checking the + sign. + * tests/mpf/t-fits.c: Check new edges. + +2013-03-19 Torbjorn Granlund + + * tests/arm32check.c: Get printing of clobbered register right. + + * mpn/arm/neon/popcount.asm: New file. + * mpn/arm/neon/hamdist.asm: New file. + + * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Add arm32call.asm and + arm32check.c. + +2013-03-18 Torbjorn Granlund + + * configure.ac (arm*-*-*): Define CALLING_CONVENTIONS_OBJS. + + * tests/arm32call.asm: New file. + * tests/arm32check.c: New file. + + * mpn/arm/arm-defs.m4 (LEA): Rewrite to properly handle repeated use. + (EPILOGUE_cpu): Define. + + * mpn/arm/v6/addmul_3.asm: Make code work for PIC. + + * tests/x86call.asm: Modernise asm syntax. + * tests/amd64call.asm: Likewise. + + * mpn/x86/darwin.m4 (m4append): Move definition from here... + * mpn/asm-defs.m4: ...to here. + +2013-03-18 Marco Bodrato + + * doc/gmp.texi (--enable-fat): No quote in concept index. + + * mpf/swap.c: Reduce the number of variables. + +2012-03-17 Marc Glisse + + * tests/cxx/t-do-exceptions-work-at-all-with-this-compiler.cc: New file. + * tests/cxx/Makefile.am: Add new file. Reorder the tests. + +2013-03-17 Torbjorn Granlund + + * mpn/generic/mul_fft.c: Use TMP_BALLOC*, but combine several areas. + + * mpz/powm_ui.c (mod): Use TMP_BALLOC in mu code. + + * mpn/arm/v6/addmul_3.asm: New file. + + * mpn/arm/v7a/cora15/copyd.asm: Tweak. + + * mpn/arm64/copyi.asm: New file. + * mpn/arm64/copyd.asm: New file. + +2013-03-16 Torbjorn Granlund + + * mpn/arm/v6/addmul_2.asm: Tweak for better A9 performance. + +2013-03-14 Torbjorn Granlund + + * mpn/ia64/cnd_aors_n.asm: New file. + + * mpn/arm64/cnd_aors_n.asm: New file. + + * mpn/arm64/aors_n.asm (ADDSUB): Remove unused definition. + + * mpn/ia64/aors_n.asm: Remove a redundant ASM_START. + + * mpn/arm/cnd_aors_n.asm: Avoid ARM conditional insn execution. + + * mpn/x86_64/missing.asm: Move from mulx/adx since we cannot currently + prune missing.asm from path. + * mpn/x86_64/mulx/adx/missing-call.m4: Likewise. + * mpn/x86_64/mulx/adx/missing-inline.m4: Likewise. + * mpn/x86_64/mulx/adx/addmul_1.asm: Update hardwired path. + +2013-03-13 Marco Bodrato + + * mpz/cong_2exp.c: Write loops in a cleaner way. + * mini-gmp/mini-gmp.c: Likewise. + * gmp-impl.h (mpz_zero_p): Likewise. + +2013-03-12 Niels Möller + + New names mpn_cnd_add_n and mpn_cnd_sub_n. + * mpn/generic/cnd_add_n.c (mpn_cnd_add_n): Renamed file and + function, from addcnd.c:mpn_addcnd_n. + * mpn/generic/cnd_sub_n.c (mpn_cnd_sub_n): Renamed, from + subcnd.c:mpn_subcnd_n. + * mpn/arm/cnd_aors_n.asm: Renamed file, from aorscnd.asm, and + renamed functions. + * mpn/x86_64/cnd_aors_n.asm: Analogous renaming. + * mpn/powerpc64/mode64/cnd_aors_n.asm: Analogous renaming. + * gmp-impl.h (mpn_cnd_add_n, mpn_cnd_add_n): Updated prototypes + with new names. + * configure.ac: Updated for new names. + * tests/refmpn.c (refmpn_cnd_add_n): Renamed, from refmpn_addcnd_n. + (refmpn_cnd_sub_n): Renamed, from refmpn_subcnd_n. + * tests/tests.h (refmpn_cnd_add_n, refmpn_cnd_sub_n): Updated + prototypes with new names. + * tune/common.c (speed_mpn_cnd_add_n): Renamed, from + speed_mpn_addcnd_n, call mpn_cnd_add_n. + (speed_mpn_cnd_sub_n): Renamed, from speed_mpn_subcnd_n, call + mpn_cnd_sub_n. + * tune/speed.h (speed_mpn_cnd_add_n, speed_mpn_cnd_sub_n): Updated + prototypes with new names. + * tune/speed.c (routine): Updated list with new names. + * tests/devel/try.c: Updated for new mpn_cnd_* names. + * mpn/generic/sbpi1_div_sec.c: Likewise. + * mpn/generic/powm_sec.c: Likewise. + +2013-03-12 Torbjorn Granlund + + * configure.ac: Add "missing" to extra_functions_64 for coreibwl. + + * mpn/x86_64/mulx/adx/addmul_1.asm: Simplify. Make FAKE_MULXADX the + default awaiting proper qemu behaviour. + +2013-03-11 Torbjorn Granlund + + * mpn/x86_64/aorscnd_n.asm: Read 32 bits for 'n' arguments on DOS64. + + * tests/mpz/t-powm_ui.c: Test larger arguments. General cleanup. + + * mpz/powm_ui.c (mod): Adhere to mpn_mu_div_qr's overlap requirements. + +2013-03-10 Niels Möller + + * mpn/generic/sbpi1_div_sec.c: Update calls of mpn_addcnd_n and + mpn_subcnd_n. + * mpn/generic/powm_sec.c (MPN_REDC_1_SEC, MPN_REDC_2_SEC) + (mpn_powm_sec): Update calls of mpn_subcnd_n. + + * tests/tests.h (refmpn_addcnd_n, refmpn_subcnd_n): Update + declarations. + * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): Similar + reorder of arguments. + * tests/devel/try.c (call): Pass condition first, for + TYPE_ADDCND_N and TYPE_SUBCND_N. + + * tune/common.c (speed_mpn_addcnd_n, speed_mpn_subcnd_n): Update + to pass condition as first argument. + + * gmp-impl.h (mpn_addcnd_n, mpn_subcnd_n): Updated declarations. + + * mpn/generic/addcnd_n.c (mpn_addcnd_n): Reordered arguments, make + condition the first argument. + * mpn/generic/subcnd_n.c (mpn_subcnd_n): Likewise. + * mpn/arm/aorscnd_n.asm: Likewise. + * mpn/x86_64/aorscnd_n.asm: Likewise. + * mpn/powerpc64/mode64/aorscnd_n.asm: Likewise. + +2013-03-10 Torbjorn Granlund + + * mpn/x86_64/mulx/adx/missing.asm: Simulate some mulx/adx insns. + * mpn/x86_64/mulx/adx/missing-call.m4: Call variant. + * mpn/x86_64/mulx/adx/missing-inline.m4: Inline variant. + + * mpn/sparc64/ultrasparct3/missing.asm: Simulate some v9-2011 insns. + * mpn/sparc64/ultrasparct3/missing.m4: Inline or invoke missing.asm for + v9-2011 insn. + + * configure.ac: Strip `haswell' from paths for now. + + * mpn/x86_64/mulx/addmul_1.asm: New. + * mpn/x86_64/mulx/mul_1.asm: Rewrite file from `haswell' subdir. + * mpn/x86_64/mulx/adx/addmul_1.asm: Likewise. + * mpn/x86_64/haswell: Remove. + + * mpn/arm/v7a/cora15/mul_1.asm: New file. + * mpn/arm/v7a/cora15/addmul_1.asm: New file. + +2013-03-09 Marco Bodrato + + * tests/mpz/t-cong_2exp.c: Improve coverage. + +2013-03-09 Torbjorn Granlund + + * mpn/sparc64/ultrasparc1234/add_n.asm: Use g5 instead of g4. + * mpn/sparc64/ultrasparc1234/sub_n.asm: Likewise. + + * mpn/sparc64/ultrasparct3/aormul_2.asm: Fix a typo. + +2013-03-07 Torbjorn Granlund + + * mpn/arm/v7a/cora9/gmp-mparam.h: New file. + + * configure.ac (GMP_MULFUNC_CHOICES): Support mul_2 + addmul_2. + + * mpn/sparc64/ultrasparct3/aormul_2.asm: New file. + + * mpn/sparc64/ultrasparct3/submul_1.asm: Optimise out two carry + propagating adds. + +2013-03-06 David Miller + + * config.guess: Recognize UltraSparc T4 under Linux. + * configure.ac: Add sparc64/ultrasparct3 to path_64 when T3 or T4. + Append -xarch=v8plusd or -xarch=v9d to command line, as needed. + * mpn/sparc64/ultrasparct3/mul_1.asm: New file. + * mpn/sparc64/ultrasparct3/addmul_1.asm: New file. + * mpn/sparc64/ultrasparct3/submul_1.asm: New file. + * mpn/sparc64/ultrasparct3/add_n.asm: New file. + * mpn/sparc64/ultrasparct3/sub_n.asm: New file. + + * mpn/sparc32/ultrasparct1/mul_1.asm: Unroll main loop one time, add + T2/T3/T4 timings. + * mpn/sparc32/ultrasparct1/addmul_1.asm: Likewise. + * mpn/sparc32/ultrasparct1/submul_1.asm: Likewise. + +2013-03-04 Torbjorn Granlund + + * mpn/arm/neon/lorrshift.asm: New file. + +2013-03-03 Torbjorn Granlund + + * mpn/arm/v7a/cora15/copyd.asm: New file. + * mpn/arm/v7a/cora15/copyi.asm: New file. + + * mpn/arm64/logops_n.asm: New file. + * mpn/arm64/gcd_1.asm: New file. + * mpn/arm64/aorsmul_1.asm: New file. + * mpn/arm64/addmul_1.asm: Remove. + * mpn/arm64/aors_n.asm: Complete rewrite. + + * mpn/arm/tabselect.asm: New file. + * mpn/arm/neon/tabselect.asm: New file. + + * mpn/arm/copyi.asm: Software pipeline. + * mpn/arm/copyd.asm: Likewise. + + * config.guess: Rework tmp file handling to resemble configfsf.guess's. + +2013-03-03 Niels Möller + + * doc/gmp.texi (Integer Special Functions): Document + mpz_limbs_read, mpz_limbs_write, mpz_limbs_modify, + mpz_limbs_finish, mpz_roinit_n and MPZ_ROINIT_N. + + * mpz/roinit_n.c (mpz_roinit_n): Normalize the input. + +2013-02-27 Niels Möller + + * tune/common.c (speed_measure): Increase repetition count if we + get a zero measurement. + +2013-02-27 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpz_div_q_2exp): Adjust only if needed. + (mpn_common_scan): New service function to unify scan loops. + (mpz_scan0, mpz_scan1): Simplify by using mpn_common_scan. + (mpz_make_odd): Simplify, assume in-place operation on positive. + (mpn_scan0, mpn_scan1): New functions. + * mini-gmp/mini-gmp.h (mpn_scan0, mpn_scan1): New declarations. + * mini-gmp/tests/t-scan.c: Test also mpn_scan0 and mpn_scan1. + +2013-02-26 Niels Möller + + * tests/mpz/t-limbs.c (check_roinit): Test MPZ_ROINIT_N only if + compiler supports c99. + +2013-02-25 Niels Möller + + * mini-gmp/tests/t-double.c (testmain): Declare double variables + as volatile, to drop extended precision. + + * mini-gmp/tests/testutils.c (testfree): New function. Use it + everywhere where test programs deallocate storage allocated via + the mini-gmp allocation functions, including uses of mpz_get_str + for various test failure messages. + + * mpz/limbs_finish.c (mpz_limbs_finish): New file and function. + * mpz/limbs_modify.c (mpz_limbs_modify): New file and function. + * mpz/limbs_read.c (mpz_limbs_read): New file and function. + * mpz/limbs_write.c (mpz_limbs_write): New file and function. + * mpz/roinit_n.c (mpz_roinit_n): New file and function. + * gmp-h.in: Declare new functions. + (MPZ_ROINIT_N): New macro. + * mpz/Makefile.am (libmpz_la_SOURCES): Added new files. + * Makefile.am (MPZ_OBJECTS): Added new object files. + + * tests/mpz/t-limbs.c: New testcase. + * tests/mpz/Makefile.am (check_PROGRAMS): Added t-limbs. + +2013-02-22 Torbjorn Granlund + + * configure.ac: Fix typo in adx/mulx path stripping code. + * config.sub: Match coreibwl. + +2013-02-20 Niels Möller + + * tests/mpq/t-get_d.c (check_random): Rewrote to make test less + dependent on float operations. Fixes problem with m68k-linux and + extended float precision. + +2013-02-20 Torbjorn Granlund + + * mpn/x86_64/haswell/mulx/adx/addmul_1.asm: New file. + + * configure.ac: Support coreibwl. Use proper name for ADX extension. + * acinclude.m4 (GMP_ASM_X86_ADX): Rename from GMP_ASM_X86_ADOX. + + * tests/tests.h (TESTS_REPS): Keep count >= 1. + +2013-02-19 Marco Bodrato + + * mini-gmp/mini-gmp.c: Move asserts to work-around a compiler bug. + (mpz_export): Reorder branches. + (mpz_mul_ui): Avoid temporary allocation (mpn_mul_1 can work in-place). + + * mini-gmp/tests/t-reuse.c: Fix typo causing the same negation + condition to be applied to all operands. (See 2013-02-03, Torbjorn) + +2013-02-17 Marco Bodrato + + * gmpxx.h (mpq_class, mpf_class) [init_ui, init_si, assign_si]: + Optimise _si using _ui for positive arguments. + (__gmp_hypot_function): Use _mul_ui to square an ui, abs for si. + + * mini-gmp/mini-gmp.c (mpz_mul): Read sizes just once. + (mpn_set_str_other): Remove a redundant variable. + (mpz_abs_add): Use SWAP once, to order sizes. + (mpz_mul_ui): Micro-optimisation. + (mpz_rootrem): Use _init2 before _setbit. + (mpz_set_str): Optimise-out a variable. + (mpz_import): Normalise only if needed. + (mpn_div_qr_1): Speed-up the d=1 case, delaying a branch. + + * rand/randmts.c: Use init2, as size of variables is known in advance. + (mangle_seed): Get a single argument. + + * mpz/remove.c: Delay allocation in the generic case; use swap + instead of set. + * mpn/generic/remove.c: Delay (possibly smaller) allocation. + +2013-02-17 Marc Glisse + + * cxx/osdoprnti.cc: Use and rather than + and (revert 2002-12-21). + + * tests/cxx/Makefile.am: Link with libm. + * tests/cxx/t-ops2.cc: Comment about more tests. Use rather + than and using namespace. Don't include . + + * gmpxx.h (__GMPXX_BITS_TO_LIMBS, __GMPQ_NUM_DBL_LIMBS, + __GMPQ_DEN_DBL_LIMBS, __GMPXX_TMPQ_D): New macros. + (__gmp_binary_plus, __gmp_binary_minus, __gmp_binary_multiplies, + __gmp_binary_divides, __gmp_binary_equal, __gmp_binary_less, + __gmp_cmp_function): Use __GMPXX_TMPQ_D. + * tests/cxx/t-ops2.cc: Test __GMPXX_TMPQ_D on DBL_MIN, DBL_MAX. + + * gmpxx.h (__gmp_binary_multiplies, __gmp_binary_divides): Use + __GMPXX_CONSTANT_TRUE. + +2013-02-16 Marc Glisse + + * gmpxx.h: Include . + +2013-02-16 Torbjorn Granlund + + * mpn/Makefile.am (TARG_DIST): Add arm64. + + * mpn/x86_64/x86_64-defs.m4 (PROTECT): Emit '.hidden' instead of + '.protected" to please Sun's assembler, but also for semantic reasons. + +2013-02-15 Torbjorn Granlund + + * configure.ac (arm64*-*-*): Match this. + + * mpn/arm64/aors_n.asm: New file. + * mpn/arm64/addmul_1.asm: New file. + * mpn/arm64/mul_1.asm: New file. + +2013-02-15 Marc Glisse + + * gmpxx.h (__GMPXX_DEFINE_ARITHMETIC_CONSTRUCTORS, + __GMPXX_DEFINE_ARITHMETIC_ASSIGNMENTS): New macros. + (mpz_class, mpq_class, mpf_class) [init_ui, init_si, init_d, + assign_ui, assign_si, assign_d]: New functions. + (__gmp_expr::__gmp_expr, __gmp_expr::operator=): Replace with macros. + (__GMPXX_CONSTANT_TRUE): New macro. + +2013-02-15 Marco Bodrato + + * gmp-impl.h (NEG_CAST, ABS_CAST): Use __GMP_CAST. + * mpz/fits_s.h: Use NEG_CAST. + +2013-02-14 Marc Glisse + + * gmpxx.h (__gmp_binary_greater): Forward to __gmp_binary_less. + (__gmp_binary_equal): Forward to itself after swapping operands. + +2013-02-14 Marco Bodrato + + * mp_dv_tab.c (__gmp_digit_value_tab): Remove a line of unused values. + * mpf/set_str.c: Update offset accordingly. + * mpz/inp_str.c: Likewise. + * mpz/set_str.c: Likewise. + + * gmp-h.in (mpq_cmp_ui): Optimise comparison with 1/1. + * tests/mpq/t-cmp_ui.c: Test special comparisons: 0/1, 1/1. + + * mpz/clrbit.c: Reorganise branches. + * mpz/setbit.c: Likewise. + * mpz/combit.c: Same micro-optimisations as in set/clr. + + * mpz/aors_ui.h: No realloc if size was zero. + * mpz/ior.c: Use macros: MPZ_REALLOC and MPN_INCR_U. + + * gmp-impl.h (NEG_CAST): New macro, used by ABS_CAST. + * mpq/cmp_si.c: Use NEG_CAST. + * mpz/cmp_si.c: Reorganise branches. + +2013-02-13 Torbjorn Granlund + + * acinclude.m4 (GMP_ASM_X86_MULX, GMP_ASM_X86_ADOX): New feature tests. + * configure.ac: Use new feature tests. + + * mpn/x86_64/haswell/mulx/mul_1.asm: File moved to cope with older + assemblers. + * configure.ac: Update haswell path to include "mulx". + +2013-02-12 Torbjorn Granlund + + * configure.ac: Recognise haswell. + * config.guess: Recognise haswell. + * config.sub: Match haswell. + + * mpn/x86_64/haswell/mul_1.asm: New file, mainly for testing HNI. + +2013-02-12 Marco Bodrato + + * gmp-impl.h (MPZ_PROVOKE_REALLOC): Remove unused macro. + * gen-fac.c (gen_consts): Remove obsolete code, use swap instead of set. + * mini-gmp/mini-gmp.c (fac_ui, bin_uiui): Use shorter and faster code. + + * mpn/generic/mulmod_bnm1.c: Reorganise branches. + * mini-gmp/mini-gmp.c: Reduce branches. + + * mpz/bin_ui.c: Avoid a copy when n < 0. + * mpz/mfac_uiui.c: Reduce memory usage. + * mpz/primorial_ui.c: Use MPZ_NEWALLOC. + + * mpz/import.c: Use BITS_TO_LIMBS and MPZ_NEWALLOC. + * mpz/inp_raw.c: Likewise. + * mpz/rrandomb.c: Likewise. + * mpz/urandomb.c: Likewise. + * mpn/generic/random2.c: Likewise. + + * mpn/generic/brootinv.c: Micro-optimisation. + + * mpf/set_str.c: Don't chech base==0 when base is strictly positive. + +2013-02-10 Torbjorn Granlund + + * Version 5.1.1 released. + +2013-02-07 Marco Bodrato + + * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Use operands from struct s. + * tune/README: Document new parameter syntax mpn_mul.<#> . + +2013-02-06 Niels Möller + + * tests/mpz/t-jac.c (check_large_quotients): Rewrote. Now uses a + more efficient method for generating the test inputs. + +2013-02-05 Torbjorn Granlund + + * tests/mpn/t-div.c: Limit random dbits to avoid an infinite loop. + +2013-02-03 Torbjorn Granlund + + * tests/mpz/reuse.c: Fix typo causing the same negation condition to be + applied to all operands. Fix condition for when to invoke mpz_remove. + Make different-size random operands. + +2013-02-02 Marco Bodrato + + * mpz/remove.c: Correct the sign in case of reuse. + +2013-02-01 Torbjorn Granlund + + * gmp-impl.h (DIGITS_IN_BASE_PER_LIMB): Add a cast. + (LIMBS_PER_DIGIT_IN_BASE): Likewise. + + * tests/refmpn.c (refmpn_mul): Use toom6h instead of toom44 for the + largest operands. + +2013-01-31 Torbjorn Granlund + + * mpn/generic/toom44_mul.c: Revert last change in favour of a simple + change (thanks Marco!). + * mpn/generic/toom4_sqr.c: Likewise. + +2013-01-30 Torbjorn Granlund + + * mpn/generic/toom44_mul.c (MAYBE_mul_toom44): Take toom6h and toom8h + into account, using new macro MUL_NEXTALG_THRESHOLD. + * mpn/generic/toom4_sqr.c (MAYBE_sqr_toom4): Likewise. + +2013-01-26 Marco Bodrato + + * mpz/remove.c: init+set=init_set, cast before shifting. + + * mpz/cmp_si.c: Use ABS_CAST. + +2013-01-26 Torbjorn Granlund + + * tests/mpn/logic.c: Set things up to always test library logops, not + gmp-impl.h's inlined variants. Test also mpn_com. + + * tests/mpn/t-mod_1.c: Test also mpn_mod_1s_3p. + + * mpn/generic/mod_1_3.c: Swap some lines to make it similar to mod_4.c. + + * tests/mpz/reuse.c: Fix typo in last change. + +2013-01-23 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpz_cmpabs_d, mpz_cmp_d): Simplify. + (mpz_set_str): Behaviour more adherent to the real GMP. + + * mini-gmp/tests/t-str.c: Cast size_t to unsigned long, for printf. + * mini-gmp/tests/t-import.c: Likewise. + * mini-gmp/tests/t-comb.c: Remove an unused var. + * mini-gmp/tests/t-div.c: Remove unused args passed to fprintf. + * mini-gmp/tests/t-double.c: Use float immediates with float vars. + +2013-01-22 Torbjorn Granlund + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. + * gmp-h.in: Bump version. + + * tests/mpz/reuse.c: Delete always zero 'failures' and code depending + on it. Replace rotating progress with real measure. + + * Makefile.am (check-mini-gmp): Fix typo in last change. + +2013-01-22 Niels Möller + + * mini-gmp/mini-gmp.c (mpz_cmp_d): Simplified, just sort out + signs, then call mpz_cmpabs_d. + + * mini-gmp/tests/testutils.h: Include stdio.h and stdlib.h. + (numberof): New define. + + * mini-gmp/tests/t-cmp_d.c: New file, copied from + tests/mpz/t-cmp_d.c with minor changes. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-cmp_d, + + * mini-gmp/mini-gmp.c (mpz_cmpabs_d): New function. + * mini-gmp/mini-gmp.h: Declare it. + +2013-01-21 Niels Möller + + * mini-gmp/tests/t-str.c (testmain): Test mpz_out_str, using + the tmpfile function for i/o. + +2013-01-20 Torbjorn Granlund + + * Makefile.am (check-mini-gmp): Set also DYLD_LIBRARY_PATH for the + benefit of Darwin. + + * tests/mpn/t-div.c: Test mpn_sb_div_qr_sec and mpn_sb_div_r_sec. + (main): Separate divisor into normalised (dnp) and unnormalised (dup), + pass appropriate variant to each function. + (main): Make negative `test' index value mean divisor bits, for better + small operands coverage. + (main): Put random junk at qp[] instead of zeroing. + + * tests/mpz/t-remove.c: Back out last change which left `divisor_size' + uninitialised; achieve change's aim with a parameter tweak. + +2013-01-20 Marco Bodrato + + * mini-gmp/tests/testutils.c (testhalves): New function, test default + memory functions. + * mini-gmp/tests/testutils.h (testhalves): Declare it + * mini-gmp/tests/t-logops.c: Use testhalves. + + * mini-gmp/mini-gmp.c (mpz_init_set_str): New function. + * mini-gmp/mini-gmp.h (mpz_init_set_str): Declare it. + * mini-gmp/tests/t-str.c: Test mpz_init_set_str. + +2013-01-20 Torbjorn Granlund + + * tests/memory.c (PTRLIMB): New macro, used for conformant casting. + +2013-01-19 Marco Bodrato + + * mini-gmp/tests/t-double.c (testmain): Get the current free + function using mp_get_memory_functions. + * mini-gmp/tests/t-str.c (testmain): Likewise. + + * mini-gmp/tests/testutils.h (tu_free): Remove declaration. + + * mini-gmp/tests/testutils.c (block_check, tu_free): Mark static. + + * tests/mpz/t-set_str.c: Check also failing conditions. + + * tests/mpz/t-remove.c: Test removal of 1. + +2013-01-18 Niels Möller + + * mini-gmp/tests/t-str.c (test_small): New function, exercising + parsing of whitespace and base prefixes. + (testmain): Call it. + + * mini-gmp/tests/t-gcd.c (gcdext_valid_p): Fixed memory leak. + + * mini-gmp/tests/t-double.c (testmain): Call tu_free rather than + free, for storage allocated by mpz_get_str. + * mini-gmp/tests/t-str.c (testmain): Likewise. + + * mini-gmp/tests/testutils.c (block_init, block_check): New + functions. + (tu_alloc, tu_realloc, tu_free): New functions. + (main): Use mp_set_memory_functions. + * mini-gmp/tests/testutils.h (tu_free): Declare. + + * mini-gmp/tests/testutils.h: New file, declarations for test + programs. + + * mini-gmp/tests/testutils.c (main): New file, with shared main + function for all the test programs. Also includes mini-gmp.c. + Calls testmain after initialization. All other test programs + updated to define testmain rather than main. + +2013-01-18 Marco Bodrato + + * mini-gmp/tests/t-signed.c: Slightly larger coverage. + * mini-gmp/tests/t-double.c: Test also mpz_init_set_d. + +2013-01-18 Torbjorn Granlund + + * mpn/generic/set_str.c (normalization_steps): Eliminate set-but-unused + variable. + + * mini-gmp/tests/t-div.c: Test mpz_divisible_p and mpz_divisible_ui_p. + + * tests/tests.h (TESTS_REPS): Fix printf argument type clashes. + + * mini-gmp/tests/t-div.c: Test also mpz_mod, mpz_mod_ui. Compare + mpz_divisible_p just to ceil, to save time. + + * mini-gmp/mini-gmp.c: Prefix some names with GMP_. + +2013-01-16 Marco Bodrato + + * mini-gmp/tests/t-double.c: Test mpz_cmp_d. + * mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison. + + * mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string. + * mini-gmp/tests/t-str.c: Test base <= 0. + +2013-01-15 Niels Möller + + * mini-gmp/tests/t-str.c (main): Use x->_mp_d rather than x[0]._mp_d. + * mini-gmp/tests/t-invert.c (main): Likewise. + + * mini-gmp/tests/t-mul.c (main): Test mpn_mul_n and mpn_sqr. + + * mini-gmp/tests/hex-random.h (enum hex_random_op): New value + OP_SQR. + + * mini-gmp/tests/mini-random.c (mini_random_op3): Renamed, from... + (mini_random_op): ... old name. Updated callers. + (mini_random_op2): New function. + + * mini-gmp/tests/hex-random.c (hex_random_op3): Renamed, from... + (hex_random_op): ... old name. Updated callers. + (hex_random_op2): New function. + +2013-01-15 Marco Bodrato + + * mini-gmp/tests/t-logops.c: Improve popcount/hamdist testing. + * mini-gmp/tests/t-signed.c: Test more cases. + +2013-01-15 Torbjorn Granlund + + From Mike Frysinger: + * configure.ac: Add x32 ABI for x86_64. + +2013-01-14 Niels Möller + + * mini-gmp/tests/t-str.c (main): Added tests for mpn_get_str and + mpn_set_str. + +2013-01-14 Marco Bodrato + + * doc/gmp.texi (gmp_version): Remove "was used" repetition. + (Upward compatibility): Mention mpn_bdivmod, GMP 4 -> GMP 5. + +2013-01-13 Marc Glisse + + * doc/gmp.texi: Let mpn_sqrtrem reference mpn_perfect_square_p instead + of mpz_perfect_square_p. + +2013-01-11 Marco Bodrato + + * mini-gmp/tests/t-comb.c: New test program, testing both + mpz_fac_ui and mpz_bin_uiui. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-comb. + + * mini-gmp/mini-gmp.c (mpz_mul_si): Simplify. + (mpz_mul_ui, mpz_mul, mpz_div_qr): Replace init+REALLOC with init2. + + * mini-gmp/mini-gmp.c (NEG_CAST): New macro. + (mpz_mul_si, mpz_set_si, mpz_cmp_si): Use NEG_CAST. + + * mini-gmp/mini-gmp.c (mpz_set_si, mpz_cmp_si): Simplify by using + the _ui variant. + + * mini-gmp/tests/t-root.c: Use mpz_ui_pow_ui, when base fits an ui. + + * mini-gmp/tests/t-mul.c: Test also mpz_mul_si. + * mini-gmp/tests/t-sub.c: Test also mpz_ui_sub. + + * mini-gmp/mini-gmp.c (mpz_fits_slong_p): Correct range. + * mini-gmp/tests/t-signed.c: New test program, for get/set/cmp_si. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-signed. + + * mini-gmp/mini-gmp.c (mpz_hamdist): Handle different sizes. + * mini-gmp/tests/t-logops.c: Test also popcount and hamdist. + +2013-01-10 Marco Bodrato + + * mpz/export.c: Less restrictive ASSERTs. + * mini-gmp/mini-gmp.c (mpz_export, mpz_import): Likewise. + * mini-gmp/tests/t-import.c: Test also size=0 or count=0. + +2013-01-10 Torbjorn Granlund + + * mini-gmp/tests/t-import.c (main): Don't drop off function end. + + * Makefile.am (check-mini-gmp): Set LD_LIBRARY_PATH to allow testing + with dynamic main GMP build. + +2013-01-09 Marco Bodrato + + * mini-gmp/mini-gmp.c (mpz_export): Support op=0 countp=NULL. + +2013-01-08 Niels Möller + + * mini-gmp/tests/t-import.c: New test program, testing both + mpz_import and mpz_export. + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): Added t-import. + + * mini-gmp/tests/mini-random.c (mini_rrandomb_export): New + function. + * mini-gmp/tests/mini-random.h: Declare it. + * mini-gmp/tests/hex-random.c (hex_rrandomb_export): New function. + * mini-gmp/tests/hex-random.h: Declare it. + + * mini-gmp/mini-gmp.c (mpz_export): Compute accurate word count up + front, to avoid generating any high zero words. + +2013-01-07 Marco Bodrato + + * mini-gmp/README: Document base limitation for conversions. + * mini-gmp/mini-gmp.c (mpz_set_str): Remove goto. + (mpz_import, mpz_export): Correctly use order/endianness. + +2013-01-05 Torbjorn Granlund + + * longlong.h (aarch64): Make add_ssaaaa and sub_ddmmss actually work. + +2013-01-04 Marco Bodrato + + From shuax: + * mini-gmp/mini-gmp.c (mpz_import): Reset limb after storing it. + +2013-01-04 Torbjorn Granlund + + From Marko Lindqvist: + * configure.ac: Use AC_CONFIG_HEADERS instead of the obsolete + AM_CONFIG_HEADER. + +2013-01-02 Marco Bodrato + + * tests/mpz/bit.c: Wider testing for mpz_combit. + * tests/mpz/logic.c: Check the -2^n case. + + * mpz/ior.c: Fixed an allocation bug in the -2^n case. + +2012-12-31 Torbjorn Granlund + + * mpn/generic/get_d.c: Minor reorg, add vax D code. + + * gmp-impl.h (double_extract): New union type for vax D floats. + + * tests/mpq/t-get_d.c (check_random): Limit exponents on vax. + +2012-12-30 Marco Bodrato + + * tests/mpz/bit.c (check_clr_extend): Check _set shrink. + +2012-12-29 Torbjorn Granlund + + * demos/calc/calc.c: Remove generated file from repo. + * demos/calc/calc.h: Likewise. + * demos/calc/calclex.c: Likewise. + +2012-12-27 Torbjorn Granlund + + * mpn/generic/get_d.c: Complete rewrite of non-IEEE code. + + * tests/mpq/t-get_d.c (main): Suppress check_random for vax. + +2012-12-25 Torbjorn Granlund + + * mpn/x86_64/bdiv_q_1.asm: Use LEA for binvert_limb_table. + +2012-12-23 Torbjorn Granlund + + * tests/mpz/t-get_d.c (check_onebit): Decrease vax limit to avoid + overflow in last, unused 'want' value. + + * config.guess: Recognise AMD family 22 as a future bobcat. + +2012-12-21 Torbjorn Granlund + + * configure.ac: Rename configure.in. + +2012-12-17 Torbjorn Granlund + + * Version 5.1.0 released. + + * configure.in (none-*-*): Allow this again, but print a warning. + +2012-12-17 Marco Bodrato + + * mpz/n_pow_ui.c: Fix typos in an ASSERT. + +2012-12-16 Torbjorn Granlund + + * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr): Explicitly use + MPN_COPY_INCR for slightly overlapping copy. + +2012-12-15 Marco Bodrato + + * tests/mpn/toom-sqr-shared.h: Skip ALLOCs if the test is skipped. + +2012-12-13 Torbjorn Granlund + + * mpn/x86_64/dos64.m4 (PIC): Move definition early. + (JMPENT): Remove PIC variant. + + * mpn/x86_64/darwin.m4 (JUMPTABSECT): Define to .text, instead of + something sensible. + +2012-12-12 Torbjorn Granlund + + * mpn/x86_64/x86_64-defs.m4 (JMPENT): New macro. + * mpn/x86_64/dos64.m4: Likewise. + * mpn/x86_64/darwin.m4: Likewise. + * mpn/x86_64/mod_34lsub1.asm: Use JMPENT to properly support PIC. + * mpn/x86_64/mullo_basecase.asm: Likewise. + * mpn/x86_64/sqr_basecase.asm: Likewise. + +2012-12-11 Torbjorn Granlund + + * mpn/x86_64/mod_34lsub1.asm: Try different jump table for the benefit + of broken Apple linkers. + +2012-12-09 Torbjorn Granlund + + * configure.in: Make GMP_NONSTD_ABI ABI specific. + +2012-12-08 Torbjorn Granlund + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Bump version info. + * gmp-h.in: Bump version. + +2012-12-06 Marco Bodrato + + * tests/mpq/reuse.c: New test (adapted from mpf/reuse.c). + * tests/mpq/Makefile.am (check_PROGRAMS): Add reuse. + + * mpz/abs.c: Use NEWALLOC. + * mpz/neg.c: Likewise. + * mpz/com.c: Reduce branches. + +2012-12-05 Niels Möller + + * mpn/generic/brootinv.c (mpn_brootinv): Make valgrind happier, at + the cost of a redundant MPN_ZERO. + + * mpz/jacobi.c (mpz_jacobi): Check for asize == 0 or bsize == 0 + before using the low limbs. + +2012-12-05 Torbjorn Granlund + + * mpn/generic/set_str.c (mpn_dc_set_str): Work around a valgrind issue. + + * mpz/powm_ui.c: Don't assume >= 2 limbs in mod argument. + + * tests/tests.h (TESTS_REPS): Handle float GMP_CHECK_REPFACTOR. + + * longlong.h: Refine cpp test for vax. + * tests/mpn/t-get_d.c: Likewise. + * tests/mpz/t-get_d.c: Likewise. + * tests/mpz/t-cmp_d.c: Likewise. + * tests/mpz/t-get_d.c: Likewise. + * tests/mpq/t-get_d.c: Likewise. + * tests/mpf/t-get_d.c: Likewise. + +2012-11-30 Torbjorn Granlund + + * gen-fac.c (gen_consts): Correct printf types. + + * mpn/arm/v7a/cora15/gmp-mparam.h: New file. + + * configure.in (arm*-*-*): New compiler optional "tune". Pass value for + selected processors. Add more specific path components. + +2012-11-29 Torbjorn Granlund + + From Andoni Morales Alastruey: + * longlong.h: Conditionalise ARM asm on !__thumb__. + +2012-11-28 Torbjorn Granlund + + * config.guess (arm*-*-*): Support specific ARM processors. + * config.sub: Match arm CPUs. + * configure.in (arm*-*-*): Likewise. + + * mpz/powm.c: Move new_b out since it lives on through b. + + * configure.in (arm*-*-*): Pass -marm to deal with compilers defaulting + to thumb code. + +2012-11-26 Torbjorn Granlund + + * tests/cxx/t-ops2.cc (checkz): Reduce huge numbers to avoid vax + overflow. + +2012-11-25 Torbjorn Granlund + + * mpn/generic/get_d.c: Reinsert non-IEEE code. + + * mpn/vax/add_n.asm: New file. + * mpn/vax/add_n.s: Remove. + * mpn/vax/addmul_1.asm: New file. + * mpn/vax/addmul_1.s: Remove. + * mpn/vax/lshift.asm: New file. + * mpn/vax/lshift.s: Remove. + * mpn/vax/mul_1.asm: New file. + * mpn/vax/mul_1.s: Remove. + * mpn/vax/rshift.asm: New file. + * mpn/vax/rshift.s: Remove. + * mpn/vax/sub_n.asm: New file. + * mpn/vax/sub_n.s: Remove. + * mpn/vax/submul_1.asm: New file. + * mpn/vax/submul_1.s: Remove. + + * mpn/vax/elf.m4: New file. + * configure.in (vax*-*-*elf*): New case, grabbing vax/elf.m4. + + * tests/mpn/t-get_d.c (check_onebit): Get vax bounds right. + (main): Switch off check_rand for vax. + +2012-11-22 Niels Möller + + * mini-gmp/tests/run-tests: Copied latest version from GNU Nettle. + Minor fix to the use of $EMULATOR, and proper copyright notice. + +2012-11-16 Torbjorn Granlund + + * mpn/generic/powm_sec.c (redcify): Use mpn_sb_div_r_sec. + + * mpn/generic/sb_div_sec.c: New file. + * mpn/generic/sbpi1_div_sec.c: New file. + * configure.in (gmp_mpn_functions): Add new files. + * gmp-impl.h: Declare new functions. + +2012-11-12 Torbjorn Granlund + + * longlong.h: Add ARM64 support. + * longlong.h: Add AVR support. + + * mpn/powerpc64/mode64/divrem_1.asm: Tune, simplify. + + * mpq/md_2exp.c: Use MPN_COPY_INCR, not MPN_COPY_DECR. + * tests/mpq/t-md_2exp.c (check_random): New function. + +2012-11-10 Torbjorn Granlund + + * mpn/generic/remove.c (mpn_bdiv_qr_wrap): Make static. + +2012-11-04 Torbjorn Granlund + + * mpz/powm_ui.c: Rewrite. + +2012-11-01 Niels Möller + + * mpn/generic/brootinv.c (mpn_brootinv): Input size in limbs + rather than bits. Use single-precision iterations for the first + limb. + * mpn/generic/perfpow.c (is_kth_power): Update mpn_brootinv call. + * tests/mpn/t-brootinv.c (main): Likewise. + * tune/speed.h (SPEED_ROUTINE_MPN_BROOTINV): Likewise. + * gmp-impl.h (mpn_brootinv): Updated prototype. + + * mpn/generic/hgcd2.c (mpn_hgcd2): Removed redundant loop exit + tests in the single-precision loop. + + * mpz/combit.c (mpz_combit): Rewrite, optimizing for the common + case. + +2012-10-31 Niels Möller + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-brootinv. + * tests/mpn/t-brootinv.c: New file + + * mpn/generic/broot.c (mpn_broot_invm1): Avoid a mullo_n in the + loop, and do powering as a plain mpn_sqr followed by mpn_powlo. + + * tune/speed.c (routine): Added mpn_broot, mpn_broot_invm1, + mpn_brootinv. + + * tune/common.c (speed_mpn_broot, speed_mpn_broot_invm1) + (speed_mpn_brootinv): New functions. + * tune/speed.h (SPEED_ROUTINE_MPN_BROOT) + (SPEED_ROUTINE_MPN_BROOTINV): New macros. + + * mpn/generic/broot.c (mpn_broot_invm1): Made non-static (mainly + for benchmarking). + * gmp-impl.h (mpn_broot_invm1): Declare it. + +2012-10-28 Torbjorn Granlund + + * configure.in (gmp_mpn_functions): Add new files. + * gmp-impl.h: Declare new functions. + * mpn/generic/perfpow.c: Overhaul. + (binv_root, binv_sqroot): Remove. + * mpn/generic/brootinv.c: New file, code from overhauled binv_root. + * mpn/generic/bsqrtinv.c: New file, code from overhauled binv_sqroot. + * mpn/generic/bsqrt.c: New file. + + * tests/mpn/t-broot.c: Add a forgotten TMP_MARK. + +2012-10-28 Niels Möller + + * mpn/generic/broot.c (mpn_broot): New file and function. + * configure.in (gmp_mpn_functions): Add broot. + * gmp-impl.h (mpn_broot): Declare. + * tests/mpn/t-broot.c: New testcase. + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-broot. + +2012-10-27 Torbjorn Granlund + + * mpn/generic/remove.c: Get remainder allocation right. + +2012-10-25 Torbjorn Granlund + + * longlong.h: De-support old POWER asm syntax. + + * tests/mpz/t-remove.c: Run more tests, but use a tad smaller operands. + + * mpn/generic/remove.c (mpn_bdiv_qr_wrap): New function. + (mpn_remove): Call mpn_bdiv_qr_wrap. + * mpz/remove.c: Enable suppressed mpn_remove call. + +2012-10-17 Torbjorn Granlund + + * mpz/powm_ui.c (mpz_powm_ui): Deflect to mpz_powm for large exponent. + +2012-09-10 Torbjorn Granlund + + * demos/factorize.c: Rewrite no more current form. Implement Lucas + prime proving, and make its use the default. + * demos/primes.h: New file. + +2012-08-24 Torbjorn Granlund + + * demos/factorize.c: Overhaul. + +2012-08-06 Marco Bodrato + + * doc/gmp.texi (mpn_neg): Correctly document returned type. + + * gmp-impl.h (_mpz_newalloc, log_n_max): mark with inline (spotted by Niels). + +2012-07-28 Marc Glisse + + * gmpxx.h (std::common_type): New partial specializations with builtin + types. + * tests/cxx/t-cxx11.cc: Test it. + +2012-07-21 Torbjorn Granlund + + * mpn/powerpc32/vmx/mod_34lsub1.asm: Fix r0 clobbering issue with + "large" code affecting elf+darwin PIC. + +2012-07-21 Marc Glisse + + * gmpxx.h (__GMPXX_CONSTANT): Disable for g++-3.4. + +2012-06-26 Torbjorn Granlund + + * Makefile.am (LIBMP_LT_*): Remove these. + +2012-06-26 Marc Glisse + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*): Update comment for 5.1.0. + +2012-06-24 Marco Bodrato + + * configure.in (CALLING_CONVENTIONS_OBJS): Disable any use of + assembly code with the --disable-assembly option. + * mpz/oddfac_1.c: Use the ASSERT_CODE macro. + * gen-trialdivtab.c (mpz_log2): Use mpz_sizeinbase (., 2). + + * gmp-impl.h (MPN_SIZEINBASE_16): Replace with MPN_SIZEINBASE_2EXP + from mpz/export.c . + * mpz/export.c (MPN_SIZEINBASE_2EXP): Removed. + * mpn/generic/sizeinbase.c: Use MPN_SIZEINBASE. + + * mpz/nextprime.c: Use MPN_SIZEINBASE_2EXP to count bits. + * mpn/generic/perfpow.c: Likewise. + * mpn/generic/rootrem.c: Likewise. + * mpz/get_d_2exp.c: Likewise. + * mpn/generic/powm_sec.c: Likewise, nailify. + * mpn/generic/powlo.c: Likewise. + * mpn/generic/powm.c: Likewise. + + * mini-gmp/mini-gmp.c (mpz_div_r_2exp, mpz_div_q_2exp): Improve + adjustment condition. + +2012-06-23 Marc Glisse + + * gmpxx.h (numeric_limits): Make content public. + * cxx/limits.cc: New file, proper declarations. + * Makefile.am: List new file. + * cxx/Makefile.am: Likewise. + * cxx/t-misc.cc: Add minimal test for numeric_limits. + +2012-06-09 Marc Glisse + + * gmpxx.h (__gmp_resolve_expr::srcptr_type): New typedef. + (__gmp_temp): Wrapper for mp*_class, the constructor copies the + precision of its second argument for mpf_t. + (__gmp_expr::eval(p, prec)): Remove. + (__gmp_expr::eval(p)): Use __gmp_temp. + (__gmp_set_expr): Never pass prec to eval(). + +2012-06-08 Marco Bodrato + + * gmp-impl.h (__GMP_WITHIN_CONFIGURE): Use the same #if as in gmp-h.in. + (MPN_NORMALIZE_NOT_ZERO): Tighter ASSERT. + (MPZ_NEWALLOC): New macro. + * mpq: Use the new macro when possible. + * mpz/bin_uiui.c: Likewise. + * mpz/oddfac_1.c: Likewise. + * mpz/prodlimbs.c: Likewise. + + * mini-gmp/mini-gmp.c (mpz_realloc): remove a branch. + +2012-06-04 Torbjorn Granlund + + * mpn/powerpc64/aix.m4 (ASM_START): Claim machine type "any". + +2012-06-03 Niels Möller + + * mpn/generic/gcdext.c (mpn_gcdext): Deleted code for handling + impossible case u1 == 0, Simplified test for unlikely case u0 == 0. + +2012-06-02 Torbjorn Granlund + + * mpn/arm/lshiftc.asm: New file. + +2012-06-01 Torbjorn Granlund + + * mpn/arm/aorslsh1_n.asm: Use cmp/cmn instead of subs/adds in more + places. + + * mpz/get_str.c: Don't strip leading zeros since current mpn_get_str + won't generate any. Misc streamlining. + * mpz/out_str.c: Analogous changes. + + * tests/mpz/io.c: Use a wider range of bases. + + * tests/mpz/t-cong.c (check_random): Rewrite random generation for + exponentially distributed operand sizes. + +2012-06-01 Marco Bodrato + + * mpq: Use more macros and MPZ_REALLOC return value when possible. + + * gmp-impl.h (LIMBS): Removed, was an alias for PTR. + * mpz/combit.c: Use PTR and CNST_LIMB. + + * tests/mpn/t-bdiv.c: Test also mpn_bdiv_qr. + * mpn/generic/bdiv_qr.c: Add an ASSERT. + + * mpn/generic/remove.c: Add a zero limb to use bdiv_qr... + +2012-05-31 Marc Glisse + + * gmpxx.h (mpq_class::mpq_class): Handle mpq_class(0,1). + * tests/cxx/t-constr.cc: Test it. + +2012-05-30 Torbjorn Granlund + + * mpn/x86_64 (FUNC_ENTRY): New name for DOS64_ENTRY. + * mpn/x86_64 (FUNC_EXIT): New name for DOS64_EXIT. + +2012-05-29 Marco Bodrato + + * mpz/remove.c: Optimise branches. + + * mpn/generic/toom6h_mul.c: less branches in the LIKELY balanced path. + * mpn/generic/toom8h_mul.c: Likewise. + +2012-05-29 Torbjorn Granlund + + * mpn/arm/v5/mod_1_1.asm: New file. + +2012-05-28 Niels Möller + + * mpn/generic/gcdext.c (compute_v): Simplified carry handling a + bit, reduced stated scratch need from 2n+1 to 2n. Also comment and + ASSERT improvements. + +2012-05-27 Torbjorn Granlund + + * config.guess: Add new x86 CPUs. + * mpn/x86/fat/fat.c: Likewise. + * mpn/x86_64/fat/fat.c: Likewise. + +2012-05-27 Marco Bodrato + + * mpn/x86_64/fat/fat.c: abort iff longmode-capable-bit is turned off. + + * mpn/generic/toom8h_mul.c: mark UNLIKELY branches. + +2012-05-26 Torbjorn Granlund + + * mpz: Use MPZ_REALLOC return value when possible. + +2012-05-25 Marco Bodrato + + * mini-gmp/tests/t-div.c: Test all _qr, _q, _r variants. + * mini-gmp/tests/t-lcm.c: Test the _ui variant. + + * mini-gmp/mini-gmp.c (mpz_mod, mpz_mod_ui): New functions. + * mini-gmp/mini-gmp.h (mpz_mod, mpz_mod_ui): Prototypes. + + * mpz/scan1.c: Simplify, and add a shortcut for scan1(z, 0). + +2012-05-24 Torbjorn Granlund + + * mpz/n_pow_ui.c: Cast non-limb count_leading_zeros argument. + +2012-05-24 Marco Bodrato + + * mpz/remove.c: Support negative divisor. + * tests/mpz/t-remove.c: Test negative divisor. + +2012-05-23 Torbjorn Granlund + + * tests/mpz/reuse.c: Major rewrite. + +2012-05-23 Marco Bodrato + + * mpz/sqrt.c: Further simplify. + * mpz/sqrtrem.c: Likewise. + + * Mark failing branches with UNLIKELY. Many files affected. + +2012-05-22 Torbjorn Granlund + + * mpz/sqrt.c: Allocate less for overlapping operands, simplify. + * mpz/sqrtrem.c: Likewise. + +2012-05-21 Marco Bodrato + + * mpn/generic/toom8_sqr.c: Reduce branches for recursion. + * mpn/generic/toom8h_mul.c: Likewise. + + * tests/mpn/t-toom8h.c: Don't use GMP_NUMB_BITS when not yet defined. + +2012-05-20 Torbjorn Granlund + + * tests/mpz/t-gcd.c: Rewrite. + +2012-05-19 Torbjorn Granlund + + * tests/mpz/t-gcd.c: Generate larger operands for better gcd code + coverage; distribute size exponentially. + +2012-05-17 Marco Bodrato + + * mpf/pow_ui.c: Simplify. + * tests/mpf/reuse.c (dsi_func): Exercise pow_ui. + + * tests/mpf/t-set_ui.c (check_data): LONG_HIGHBIT -> ULONG_HIGHBIT. + * tests/mpf/t-set.c (check_random): New check, both set and init_set. + + * tests/cxx/t-ops.cc (check_mpq): Check squaring. + * tests/mpq/t-equal.c (check_various): Check different den-size. + + * mpn/generic/mullo_n.c: Disable MAYBE_ if WANT_FAT_BINARY. + * mpz/cmpabs_d.c: Remove an unused branch. + + * tests/mpz/t-get_d_2exp.c (check_zero): New check. + * tests/mpz/t-inp_str.c: A few more cases. + * tests/mpz/t-cmp_d.c: More bases and symbols, a few cases. + + * mpz/rootrem.c: Correctly handle odd roots of negatives. + * tests/mpz/t-root.c: Test it. + +2012-05-16 Torbjorn Granlund + + * tests/mpf/t-eq.c (check_random): New function, meat from old main(). + (check_data): New function. + +2012-05-13 Torbjorn Granlund + + * mpn/arm/rsh1aors_n.asm: New file. + * mpn/arm/v5/mod_1_2.asm: New file. + +2012-05-11 Marc Glisse + + * gmpxx.h (explicit operator bool): New functions. + * tests/cxx/t-cxx11.cc: Test the above. + +2012-05-10 Marco Bodrato + + * gmp-impl.h (__gmpn_cpuvec_initialized): Was __gmpn_cpuvec.initialized + * mpn/x86/fat/fat.c: Use separated _initialized variable. + * mpn/x86_64/fat/fat.c: Likewise. + * tests/mpn/t-fat.c: Likewise. + + * mpn/generic/toom2_sqr.c: Override global __gmpn_cpuvec_initialized. + * mpn/generic/toom22_mul.c: Likewise. + * mpn/generic/toom3_sqr.c: Likewise. + * mpn/generic/toom33_mul.c: Likewise. + +2012-05-09 Marco Bodrato + + * mini-gmp/mini-gmp.c: merge mpz_rootrem and mpz_sqrtrem. + + * mpn/generic/sqrtrem.c (invsqrttab): Reduce size removing common byte. + + * mpz/bin_uiui.c (mul3, mul4, mul8): Remove unneeded shifts. + (MAXFACS): Redefine, using the shared (safer) log_n_max. + +2012-05-08 Torbjorn Granlund + + * mpn/minithres/gmp-mparam.h (REDC_1_TO_REDC_N_THRESHOLD): Up to 9, for + coherency with ASSERT in mpn/generic/redc_n.c. + +2012-05-07 Marco Bodrato + + * mpn/minithres/gmp-mparam.h: Updated TOOM6 and FAC_DSC. + * tests/mpn/toom-sqr-shared.h: Don't test if no range. + + * mpz/oddfac_1.c: Add ASSERTs to warn about small threshold. + * tune/tuneup.c: Update minimal threshold for FAC_DSC. + +2012-05-06 Torbjorn Granlund + + * mpn/arm/v6/sqr_basecase.asm: Simplify n=4 code. + +2012-05-05 Marco Bodrato + + * mpn/generic/invert.c: Mark a branch UNLIKELY. + * tune/tuneup.c (tune_fac_u): Update DSC_THRESHOLD minimum. + * gmp-impl.h (FAC_???_THRESHOLD): Update default values. + (ABOVE_THRESHOLD): New definition with __builtin_constant_p. + + * mpn/generic/toom22_mul.c: Disable MAYBE_ if WANT_FAT_BINARY. + * mpn/generic/toom33_mul.c: Likewise. + * mpn/generic/toom2_sqr.c: Likewise. + * mpn/generic/toom3_sqr.c: Likewise. + +2012-05-04 Torbjorn Granlund + + * tune/tuneup.c: Measure POWM_SEC_TABLE after the REDC thresholds. + +2012-05-03 Torbjorn Granlund + + * mpn/generic/powm_sec.c: Use redc_2. + (INNERLOOP): Use this mechanism, like plain powm.c. + (WANT_CACHE_SECURITY): Remove, feature now unconditional. + +2012-05-02 Torbjorn Granlund + + * mpz/bin_uiui.c: Make use of CNST_LIMB. + +2012-05-02 Marco Bodrato + + * mpz/mfac_uiui.c: Support limb != ui. + +2012-05-02 Torbjorn Granlund + + * mpn/arm/logops_n.asm: Work around register clobbering issue. + + * mpn/arm/aorscnd_n.asm: New file. + +2012-05-01 Torbjorn Granlund + + * configure.in: Put arm dirs in path in proper prio order. + + * mpn/arm/logops_n.asm: New file. + + * mpz/2fac_ui.c: Fix assumed typo. + + * mpn/arm/v6/gmp-mparam.h: New file. + + * mpn/arm/v5/gcd_1.asm: Hack for undefined BMOD_1_TO_MOD_1_THRESHOLD. + * mpn/arm/v6t2/gcd_1.asm: Likewise. + +2012-04-30 Torbjorn Granlund + + * mpn/arm/v6/sqr_basecase.asm: New file. + +2012-04-30 Marco Bodrato + + * mpn/generic/comb_tables.c: New file. + * configure.in: Add it. + * gen-fac.c: Define table limits. + * gmp-impl.h: Declare tables. + (log_n_max): New static function. + * mpz/2fac_ui.c: Use shared tables. + * mpz/bin_uiui.c: Likewise. + * mpz/oddfac_1.c: Likewise. + * mpz/primorial_ui.c: Likewise. + + * mpz/mfac_uiui.c: New file. + * Makefile.am: Compile it. + * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz_mfac_uiui.c + * gmp-h.in (mpz_mfac_uiui): Declare. + + * tests/mpz/t-mfac_uiui.c: New file. + * tests/mpz/Makefile.am: Run it. + + * doc/gmp.texi: Document mpz_mfac_uiui, collapsing with other factorial functions. + + * tests/mpz/t-lcm.c: Test zero too. + + * mpz/prodlimbs.c: Simplify threshold (should be tuned, not guessed). + +2012-04-29 Torbjorn Granlund + + * mpn/arm/aors_n.asm: Tune for more stable performance. + + * mpn/arm/aorslsh1_n.asm: New file. + + * mpn/arm/mod_34lsub1.asm: New file. + + * mpn/arm/v6t2/divrem_1.asm: New file. + +2012-04-28 Torbjorn Granlund + + * mpn/thumb/add_n.asm: New file. + * mpn/thumb/sub_n.asm: New file. + * mpn/thumb/add_n.s: Remove broken code. + * mpn/thumb/sub_n.s: Likewise. + + * mpn/arm/v6/addmul_1.asm: Rewrite for stable speed, smaller size. + * mpn/arm/v6/mul_1.asm: Likewise. + +2012-04-27 Torbjorn Granlund + + * configure.in: Search arm/v6t2 for arm7. + + * mpn/arm/v5/gcd_1.asm: New file. + * mpn/arm/v6t2/gcd_1.asm: New file. + + * mpn/arm/mode1o.asm: New file. + * mpn/arm/v6t2/mode1o.asm: New file. + + * mpn/arm/arm-defs.m4 (LEA): New define. + * mpn/arm/invert_limb.asm: Use LEA. + +2012-04-26 Marco Bodrato + + * mpz/bin_uiui.c (bc_bin_uiui): Nail support. + * tests/cxx/t-ops2.cc: Test 0/3. + * oddfac_1.c: assume n > 26. + * tests/mpz/t-jac.c (mpn_jacobi_n): Enlarge tested sizes. + +2012-04-24 Torbjorn Granlund + + * mpn/arm/v6/addmul_2.asm: New file. + * mpn/arm/v6/mul_2.asm: New file. + +2012-04-23 Torbjorn Granlund + + * mpn/arm/aorsmul_1.asm: Tweak loop control for a 6% speed increase. + +2012-04-22 Torbjorn Granlund + + * configure.in: Recognise ARM sub-architectures. + + * configfsf.guess: Update to current FSF version. + * configfsf.sub: Likewise. + + * mpn/arm/bdiv_dbm1c.asm: New file. + + * mpn/arm/v6/mul_1.asm: New file. + * mpn/arm/v6/addmul_1.asm: New file. + +2012-04-22 Marco Bodrato + + * gen-fac.c: Renamed, was gen-fac_ui.c . + * Makefile.am: Renamed gen-fac.c and fac_table.h . + * gmp-impl.h: #include "fac_table.h". + * mpz/oddfac_1.c: Use generated constant. + * mpz/bin_ui.c: Small optimisations. + + * tune/common.c (speed_mpz_bin_ui): New function. + * tune/speed.h: Declare it. + * tune/speed.c: Use it. + +2012-04-21 Torbjorn Granlund + + * mpn/arm/mul_1.asm: Cleanup. + * mpn/arm/copyi.asm: Cleanup, assume allocate-on-write cache. + * mpn/arm/copyd.asm: Likewise. + + * mpn/arm/add_n.asm: Delete. + * mpn/arm/sub_n.asm: Delete. + * mpn/arm/aors_n.asm: New file, made from old files. + + * mpn/arm/addmul_1.asm: Delete. + * mpn/arm/submul_1.asm: Delete. + * mpn/arm/aorsmul_1.asm: New file, made from old files. + + * mpn/arm/com.asm: New file. + * mpn/arm/lshift.asm: New file. + * mpn/arm/rshift.asm: New file. + +2012-04-20 Torbjorn Granlund + + * tests/mpq/io.c: New file. + * tests/mpq/Makefile.am: Run it. + + * mpz/clrbit.c: Simplify along the lines of setbit.c. + +2012-04-20 Marco Bodrato + + * mpz/setbit.c: Simplify. + + * gmp-impl.h (LOG2C): Define. + * mpz/fac_ui.c (LOG2C): Remove. + * mpz/2fac_ui.c (LOG2C): Remove. + * mpz/oddfac_1.c (LOG2C): Remove. + * mpn/generic/binvert.c (LOG2C): Remove. + * mpn/generic/invertappr.c (LOG2C): Remove. + + * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): Move declarations, + and assume that n and k are not small. + +2012-04-19 Torbjorn Granlund + + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-remove. + + * tests/mpz/t-remove.c: Clear out mpz variables. + + * tests/mpz/t-cong.c (check_random): Use much larger numbers. + (check_data): Check congruences mod 0. + + * tests/mpz/t-divis.c: Test divisibility by zero. + + * tests/mpz/reuse.c: Test mpz_mod. + + * mpz/setbit.c: Remove dead code. Use CNST_LIMB. + * mpz/clrbit.c: Use CNST_LIMB. + +2012-04-19 Marco Bodrato + + * primesieve.c: New file, with functions from mpz/oddfac_1.c . + * mpz/oddfac_1.c (bitwise_primesieve): Re-moved. + * Makefile.am (libgmp_la_SOURCES): Add primesieve.c . + * gmp-impl.h (gmp_primesieve): Declare. + + * mpz/bin_uiui.c (mpz_goetgheluck_bin_uiui): New, factor-based + implementation. + * tests/mpz/t-bin.c: Extend tests, to cover _goetgheluck. + + * mpz/primorial_ui.c: New file. + * mpz/Makefile.am (libmpz_la_SOURCES): Add mpz/primorial_ui.c + * Makefile.am (MPZ_OBJECTS): Add mpz/primorial_ui$U.lo + * gmp-h.in (mpz_primorial_ui): Declare. + * tests/mpz/t-primorial_ui.c: New test for the new function. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-primorial_ui. + * doc/gmp.texi: Short documentation for the new function. + +2012-04-17 Torbjorn Granlund + + * mpn/x86_64/coreisbr/aorsmul_1.asm: Fix some DOS64 issues. + * mpn/x86_64/coreisbr/mul_1.asm: Likewise. + + * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Adhere to DOS64 register + partitioning rules. + + * mpn/x86_64/fastsse/copyi-palignr.asm: Implement temporary workaround + to overlap issue. + +2012-04-17 Marco Bodrato + + * mpz/bin_uiui.c: Support small limbs (fallback on bin_ui). + + * tests/mpn/toom-sqr-shared.h: Use a restricted range. + * tests/mpn/t-toom2-sqr.c: Specify correct range. + * tests/mpn/t-toom3-sqr.c: Likewise. + * tests/mpn/t-toom4-sqr.c: Likewise. + * tests/mpn/t-toom6-sqr.c: Likewise. + * tests/mpn/t-toom8-sqr.c: Likewise, but extended. + * tests/mpn/Makefile.am (check_PROGRAMS): Add t-toom?-sqr tests. + + * mpn/generic/sbpi1_bdiv_q.c: Move ASSERTs, to support qp = np. + +2012-04-17 Torbjorn Granlund + + * mpn/x86_64/copyd.asm: Rewrite. + * mpn/x86_64/copyi.asm: Rewrite. + +2012-04-16 Torbjorn Granlund + + * mpn/x86_64/fastsse/lshift-movdqu2.asm: Add DOS entry/exit sequences. + * mpn/x86_64/fastsse/rshift-movdqu2.asm: Likewise. + * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: Likewise. + + * mpn/x86_64/x86_64-defs.m4 (palignr): New macro. + (x86_opcode_regxmm, x86_opcode_regxmm_list): New, made from x86 mmx + counterparts. + (x86_lookup): Copy from x86/x86-defs.m4. + * mpn/x86_64/fastsse/copyd-palignr.asm: Use palignr macro. + * mpn/x86_64/fastsse/copyi-palignr.asm: Likewise. + +2012-04-15 Marco Bodrato + + * tests/mpz/t-bin.c: Add more tests on small values. + * mpz/bin_uiui.c (mpz_bdiv_bin_uiui): Smaller temporary areas. + +2012-04-15 Torbjorn Granlund + + * mpn/x86_64/fastsse/copyd-palignr.asm: New file. + * mpn/x86_64/fastsse/copyi-palignr.asm: New file. + * mpn/x86_64/core2/copyd.asm: New file. + * mpn/x86_64/core2/copyi.asm: New file. + * mpn/x86_64/nano/copyd.asm: New file. + * mpn/x86_64/nano/copyi.asm: New file. + * mpn/x86_64/atom/copyd.asm: New file. + * mpn/x86_64/atom/copyi.asm: New file. + +2012-04-13 Marco Bodrato + + * mpz/bin_uiui.c: Rewrite (some parts are Torbjorn's). + * gen-fac_ui.c: Generate new constants for bin_uiui. + + * mini-gmp/mini-gmp.h (mpz_fac_ui, mpz_bin_uiui): New definitions. + * mini-gmp/mini-gmp.c (mpz_fac_ui, mpz_bin_uiui): Trivial + implementation. + + * tests/mpz/t-fac_ui.c: Check Wilson's theorem on a big value. + + * mpn/generic/invert.c: Remove support for scratch == NULL. + * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Allocate scratch + space for mpn_invert. + + * mpz/mul_i.h: Small clean-up. + + * tests/mpn/toom-sqr-shared.h: New file. + * tests/mpn/t-toom2-sqr.c: New file. + * tests/mpn/t-toom3-sqr.c: New file. + * tests/mpn/t-toom4-sqr.c: New file. + * tests/mpn/t-toom6-sqr.c: New file. + * tests/mpn/t-toom8-sqr.c: New file. + * tests/mpn/Makefile.am (EXTRA_DIST): Add toom-sqr-shared.h . + + * mpn/generic/toom62_mul.c: Use add_n, sub_n, when possible. + +2012-04-12 Torbjorn Granlund + + * mpn/x86_64/fastsse/lshift-movdqu2.asm: New file. + * mpn/x86_64/fastsse/rshift-movdqu2.asm: New file. + * mpn/x86_64/fastsse/lshiftc-movdqu2.asm: New file. + * mpn/x86_64/coreisbr/lshift.asm: New file. + * mpn/x86_64/coreisbr/rshift.asm: New file. + * mpn/x86_64/coreisbr/lshiftc.asm: New file. + * mpn/x86_64/k10/lshift.asm: New file. + * mpn/x86_64/k10/rshift.asm: New file. + * mpn/x86_64/k10/lshiftc.asm: New file. + + * mpn/x86_64/fastsse/lshift.asm: Simplify to very basic form. + +2012-04-11 Niels Möller + + * Makefile.am (check-mini-gmp): Pass -I../.. in EXTRA_CFLAGS, to + locate gmp.h. + +2012-04-11 Marco Bodrato + + * mini-gmp/mini-gmp.h (mpz_root, mpz_rootrem): define (correctly). + * mini-gmp/mini-gmp.c (mpz_rootrem): Extended code from _root. + (mpz_root): Use mpz_rootrem. + (mpz_mul_ui): Correctly handle negative operands. + + * mini-gmp/tests/Makefile (CHECK_PROGRAMS): add t-root. + * mini-gmp/tests/t-root.c: New file. + * mini-gmp/tests/t-reuse.c: Enable root{,rem} tests. + +2012-04-10 Marco Bodrato + + * gen-fac_ui.c (mpz_root): Remove. + * mini-gmp/mini-gmp.c (mpz_root): New, support negative operands. + * mini-gmp/mini-gmp.h (mpz_root): define. + (mpz_out_str): Test also __STDIO_LOADED (for VMS). + * mpz/2fac_ui.c: Cosmetic change. + +2012-04-07 Torbjorn Granlund + + * mpn/ia64/gcd_1.asm: Rewrite inner loop to use ctz table. + +2012-04-05 Torbjorn Granlund + + * mpn/powerpc64/p7/popcount.asm: Properly extend arg n for mode32. + * mpn/powerpc64/p7/hamdist.asm: Likewise. + +2012-04-04 Torbjorn Granlund + + * mpn/powerpc64/p7/popcount.asm: New file. + * mpn/powerpc64/p7/hamdist.asm: New file. + + * longlong.h (ARM count_leading_zeros): Enable for more arch versions. + + * mpn/x86_64/gcd_1.asm: Make room for DOS64 regparm shadow area. + * mpn/x86_64/core2/gcd_1.asm: Likewise. + +2012-04-03 Torbjorn Granlund + + * mpn/x86_64/coreisbr/aorrlsh_n.asm: Make it actually work for DOS64. + +2012-04-02 Marco Bodrato + + * mpz/oddfac_1.c: Initialize size for ASSERT. + +2012-04-02 Torbjorn Granlund + + * gmp-h.in (_GMP_H_HAVE_FILE): Test also __STDIO_LOADED (for VMS). + + * gmp-impl.h (doprnt_format_t, etc): Remove bogus __GMP_DECLSPECs. + +2012-03-30 Marco Bodrato + + * mpn/x86_64/sqr_basecase.asm: Speed-up for small cases. + +2012-03-29 Torbjorn Granlund + + * mpn/sparc64/gcd_1.asm: New file. + +2012-03-27 Torbjorn Granlund + + * config.guess: Fix typo in coreisbr recognition. + +2012-03-26 Marco Bodrato + + * mpn/x86_64/gcd_1.asm: Reduce latency. + * mpn/x86_64/mul_basecase.asm: Save one jump. + + * mpz/iset_ui.c: Don't realloc. + +2012-03-20 Marco Bodrato + + * mp_clz_tab.c: Add __clz_tab[128]. + * longlong.h (count_trailing_zeros): Use it in pure C variant. + +2012-03-20 Torbjorn Granlund + + * configure.in (x86 fat_path): Add many missing directories. + * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Rewrite. + (fake_cpuid_table): Add many more CPUs. + + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Minor spacing cleanup. + +2012-03-19 Torbjorn Granlund + + * mpn/x86/x86-defs.m4 (CALL, PIC_WITH_EBX): New macros. + * mpn/x86/darwin.m4: Likewise. + * mpn/x86/k7/gcd_1.asm: Use new macros to support PIC. + * mpn/x86/p6/gcd_1.asm: Likewise. + +2012-03-19 Marco Bodrato + + * gen-fac_ui.c: Generate more constants (possible mini-mpz_root). + * mpz/oddfac_1.c: Improve ASSERTs. + (log_n_max): Use precomputed table. + + * longlong.h (_PROTO): Remove. + +2012-03-18 Torbjorn Granlund + + * longlong.h (count_trailing_zeros): Write better pure C default + variant. + + * mpn/x86/p6/gcd_1.asm: Remove forgotten x86_64 reference. + + * mpn/x86/p6/gmp-mparam.h: Update, to get BMOD_1_TO_MOD_1_THRESHOLD + defined for fat binaries. + +2012-03-17 Torbjorn Granlund + + * mpn/x86/k7/gcd_1.asm: Rewrite. + * mpn/x86/p6/gcd_1.asm: New file. + + * mpn/x86_64/core2/gcd_1.asm: Conditionally suppress reduction calls. + * mpn/x86_64/gcd_1.asm: Rewrite. + +2012-03-15 Torbjorn Granlund + + * mpn/generic/gcd_1.c: Parameterise zerotab code. + + * mpn/x86_64/nano/gcd_1.asm: New file, grabbing core2 asm file. + + * mpn/x86_64/core2/gcd_1.asm: Speed up loop code, simplify non-loop + code. + +2012-03-13 Torbjorn Granlund + + * mpn/x86_64/core2/gcd_1.asm: Add hack to support fat builds. + + * mpn/x86_64/core2/gcd_1.asm: Shorten critical path. + +2012-03-12 Torbjorn Granlund + + * mpn/x86_64/core2/gcd_1.asm: New file. + * mpn/x86_64/k10/gcd_1.asm: New file, grabbing core2 asm file. + * mpn/x86_64/bd1/gcd_1.asm: Likewise. + + * mpn/x86_64/bobcat/sqr_basecase.asm: New file. + * mpn/x86_64/bobcat/mul_basecase.asm: Minor tuning. + +2012-03-10 Torbjorn Granlund + + * configure.in (fat_functions): Add addlsh1_n, addlsh2_n, addmul_2, + mullo_basecase, redc_1, redc_2, sublsh1_n. + + * gmp-impl.h (struct cpuvec_t): Add fields for new fat functions. + * gmp-impl.h: Adjust corresponding declarations. + + * mpn/generic/redc_2.c (mpn_addmul_2): Make static. + + * mpn/x86_64/fat/fat_entry.asm (FAT_INIT): Expand before fat_init to + reduce branch offsets. Pass plain 0,1,3... in %al since we'd else run + out of 8-bit range. + + * mpn/x86_64/fat/fat_entry.asm (fat_init): Scale passed index value. + * mpn/x86/fat/fat_entry.asm (fat_init): Use movzbl for expanding index + value. + + * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Add new fat functions. + * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Likewise. + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Likewise. + * mpn/x86/fat/fat.c (__gmpn_cpuvec): Likewise. + + * mpn/x86_64/fat/redc_2.c: New file. + * mpn/x86/fat/mullo_basecase.c: New file. + * mpn/x86/fat/redc_1.c: New file. + * mpn/x86/fat/redc_2.c: New file. + + * tests/mpn/t-fat.c: Test mullo_basecase. + +2012-03-08 Torbjorn Granlund + + * mpn/x86_64/coreisbr/addmul_2.asm: Port to DOS64. + +2012-02-29 Marc Glisse + + * gmpxx.h: Ignore partial C++11 support in g++-4.6. + * tests/cxx/t-cxx11.cc: Likewise. + + * gmpxx.h (operator""): New functions. + * tests/cxx/t-cxx11.cc: Test the above. + * doc/gmp.texi: Document the above. + +2012-03-08 Marco Bodrato + + * acinclude.m4 (GMP_H_ANSI): Remove. + * configure.in: Don't use GMP_H_ANSI. + * gmp-h.in (__GMP_HAVE_PROTOTYPES): Remove. + +2012-03-08 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (fake_cpuid_table): Recognise "bulldozer". + (__gmpn_cpuvec_init): Overhaul to match configure.in. + + * configure.in: Adjust bulldozer path_64. + +2012-03-07 Torbjorn Granlund + + * configure.in (x86_64 fat_path): List recently added AMD directories. + + * mpn/x86_64/bobcat/copyi.asm: New file. + * mpn/x86_64/bobcat/copyd.asm: New file. + + * config.guess: Handle AMD 11h correctly. + + * tune/tuneup.c (tune_redc): Better handle situation where redc_2 is + never faster. + +2012-03-06 Torbjorn Granlund + + * mpn/x86_64/bobcat/mul_basecase.asm: New file. + +2012-03-04 Torbjorn Granlund + + * mpn/x86_64/bobcat/mul_1.asm: New file. + * mpn/x86_64/bobcat/aorsmul_1.asm: New file. + +2012-03-04 Marco Bodrato + + * mpz/invert.c: Remove mod 0 branch. + * tests/mpz/t-invert.c: Avoid testing mod 0. + * doc/gmp.texi (mpz_invert): Specify mod 0 is not handled. + + * gmp-h.in (__gmp_signed, __gmp_const): Remove. + (__GMP_HAVE_TOKEN_PASTE, __GMP_HAVE_CONST): Remove. + * gmp-impl.h: Strip __GMP_HAVE_TOKEN_PASTE and __GMP_HAVE_CONST. + * demos/expr/: Strip __gmp_const usage from all files. + + * tests/mpz/t-powm.c (allsizes_seen): Require unsigned*. + +2012-03-03 Torbjorn Granlund + + * mpn/x86_64/k8/gmp-mparam.h: New file. + * mpn/x86_64/k10/gmp-mparam.h: New file. + + * mpn/generic/hgcd_step.c (mpn_hgcd_step): Remove unused variables. + * mpn/generic/hgcd_jacobi.c (hgcd_jacobi_step): Likewise. + * mpn/generic/hgcd_reduce.c (hgcd_matrix_apply): Likewise. + * mpn/generic/mu_bdiv_qr.c: Likewise. + * mpz/jacobi.c: Likewise. + * mpz/mod.c: Likewise. + + * mpn/generic/toom42_mul.c: Remove unread variable. + * mpn/generic/set_str.c (mpn_set_str_compute_powtab): Likewise. + * mpn/generic/rootrem.c (mpn_rootrem_internal): Likewise. + * tests/refmpn.c (refmpn_mul): Likewise. + * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Propagate mask computation + into ASSERT, remove variable. + + * gmp-h.in (__GMP_PROTO): Remove. + * Strip __GMP_PROTO usage from all files. + * Strip prototype parameter names from all files. + +2012-03-01 Marco Bodrato + + * doc/gmp.texi (mpz_invert): Correctly document result range. + * tests/mpz/t-invert.c: Small range correction. + +2012-03-01 Torbjorn Granlund + + * mpn/x86_64/mullo_basecase.asm: New file. + +2012-02-29 Marc Glisse + + * gmpxx.h (std::numeric_limits): New partial specialization. + +2012-02-29 Niels Möller + + * mini-gmp/tests/t-reuse.c: New test case, based on + tests/mpz/reuse.c. + + * mini-gmp/mini-gmp.c (mpz_cdiv_r_ui): New function. + (mpz_fdiv_r_ui): New function. + (mpz_tdiv_r_ui): New function. + (mpz_powm_ui): New function. + (mpz_pow_ui): New function. + (mpz_ui_pow_ui): Use mpz_pow_ui. + (mpz_gcdext): Fixed input/output overlap, for the case of one + input being zero. + (mpz_sqrtrem): Fix for the case r NULL, U zero. + + * Makefile.am (check-mini-gmp): Use $(MAKE). + (clean-mini-gmp): New target. + (clean-local, distclean-local): New automake targets. Depend on + clean-mini-gmp. + +2012-02-28 Niels Möller + + * Makefile.am (check-mini-gmp): New target, for running the + mini-gmp testsuite. + + * mini-gmp/tests/Makefile (srcdir, MINI_GMP_DIR): New make + variables. These can be overridden when using a separate build + directory. + (EXTRA_CFLAGS): Renamed, was OPTFLAGS. + + * mini-gmp/mini-gmp.c (mpz_abs_add): Don't cache limb pointers + over MPZ_REALLOC, since that breaks in-place operation. Bug + spotted by Torbjörn. + (mpz_and, mpz_ior, mpz_xor): Likewise. + (mpz_cmp): Fixed comparison of negative numbers. + +2012-02-27 Torbjorn Granlund + + * mpn/x86_64/fastsse/lshiftc.asm: New file. + * mpn/x86_64/fastsse/com.asm: New file. + + * mpn/x86_64/bd1/popcount.asm: New file. + * mpn/x86_64/bd1/hamdist.asm: New file. + + * mpn/x86_64/fastsse/copyi.asm: New file. + * mpn/x86_64/fastsse/copyd.asm: New file. + * mpn/x86_64/fastsse/lshift.asm: New file. + +2012-02-26 Torbjorn Granlund + + * mpn/x86_64/coreisbr/addmul_2.asm: New file. + + * tests/devel/try.c (param_init): Don't require addmul_N to handle + overlap. + + * mpn/x86_64/bd1/mul_1.asm: New file. + * mpn/x86_64/bd1/aorsmul_1.asm: New file. + +2012-02-26 Marco Bodrato + + * mpz/2fac_ui.c: New file: implements n!!. + * Makefile.am (MPZ_OBJECTS): Add mpz/2fac_ui. + * gmp-h.in: Declare mpz_2fac_ui. + * tests/mpz/t-fac.c: Test mpz_2fac_ui. + * doc/gmp.texi: Document mpz_2fac_ui. + * mpz/Makefile.am (libmpz_la_SOURCES): Add 2fac_ui.c. + + * mpz/oddfac_1.c (mpz_oddfac_1): Use umul_ppmm when size = 2. + +2012-02-26 Niels Möller + + * mini-gmp: New subdirectory. For use by GMP bootstrap, and as a + fallback for applications needing bignums but not high + performance. + + * bootstrap.c: New file, replacing dumbmp.c. Uses mini-gmp for the + standard GMP functions, and then defines the few functions + particular for the bootstrap. + * dumbmp.c: Deleted file. A few functions moved to bootstrap.c. + + * gen-bases.c: Include bootstrap.c, not dumbmp.c. + * gen-fac_ui.c: Likewise. + * gen-trialdivtab.c: Likewise. + * gen-fib.c: Include bootstrap.c, not dumbmp.c. Use assert rather + than ASSERT. Deleted casts of xmalloc return value. + * gen-psqr.c: Likewise. + (COLLAPSE_ELEMENT): Use memmove rather than mem_copyi. + + * Makefile.am: Replaced all uses of dumbmp.c by bootstrap.c. + (EXTRA_DIST, dist-hook): Arrange for distribution of the mini-gmp + files. + +2012-02-24 Marco Bodrato + + * mpz/invert.c: Use ABSIZ, MPZ_EQUAL_1_P. + * mpz/abs.c: Collapse MPZ_REALLOC(x,.) and PTR(x). + * mpz/aors_ui.h: Likewise. + * mpz/com.c: Likewise. + * mpz/neg.c: Likewise. + + * mpz/invert.c: Reply "no-inverse" when modulus is zero. + * tests/mpz/t-invert.c: Add more checks. + * doc/gmp.texi (mpz_invert): Inverse can not be zero. + +2012-02-24 Torbjorn Granlund + + * tests/mpn/logic.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add logic. + + * tests/mpz/t-invert.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-invert. + +2012-02-24 Marc Glisse + + * tests/mpq/t-cmp.c: Move NUM and DEN macros... + * tests/mpq/t-cmp_ui.c: Likewise... + * gmp-impl.h: ... to here. + + * mpq/abs.c: Use NUM, DEN, SIZ, ALLOC, PTR, MPZ_REALLOC. + * mpq/aors.c: Likewise. + * mpq/canonicalize.c: Likewise. + * mpq/clear.c: Likewise. + * mpq/cmp.c: Likewise. + * mpq/cmp_si.c: Likewise. + * mpq/cmp_ui.c: Likewise. + * mpq/div.c: Likewise. + * mpq/equal.c: Likewise. + * mpq/get_d.c: Likewise. + * mpq/get_den.c: Likewise. + * mpq/get_num.c: Likewise. + * mpq/get_str.c: Likewise. + * mpq/init.c: Likewise. + * mpq/inp_str.c: Likewise. + * mpq/inv.c: Likewise. + * mpq/md_2exp.c: Likewise. + * mpq/mul.c: Likewise. + * mpq/neg.c: Likewise. + * mpq/set.c: Likewise. + * mpq/set_d.c: Likewise. + * mpq/set_den.c: Likewise. + * mpq/set_f.c: Likewise. + * mpq/set_num.c: Likewise. + * mpq/set_si.c: Likewise. + * mpq/set_str.c: Likewise. + * mpq/set_ui.c: Likewise. + * mpq/set_z.c: Likewise. + * mpq/swap.c: Likewise. + + * tests/mpq/t-inv.c: New test file. + * tests/mpq/Makefile.am: Add the above. + + * gmpxx.h (__gmp_set_expr): Use mpq_set_z. + + * mpq/md_2exp.c: Collapse MPZ_REALLOC(x,.) and PTR(x). + * mpq/set_d.c: Likewise. + * mpq/set_f.c: Likewise. + +2012-02-24 Niels Möller + + * mpn/x86_64/core2/aorsmul_1.asm: Added mpn_addmul_1c and + mpn_submul_1c entry points. + +2012-02-23 Marc Glisse + + * mpz/abs.c: Use ALLOC, SIZ, ABSIZ, PTR, MPZ_REALLOC. + * mpz/aors_ui.h: Likewise. + * mpz/array_init.c: Likewise. + * mpz/cdiv_q.c: Likewise. + * mpz/cdiv_qr.c: Likewise. + * mpz/cdiv_r.c: Likewise. + * mpz/clear.c: Likewise. + * mpz/clrbit.c: Likewise. + * mpz/cmp_si.c: Likewise. + * mpz/com.c: Likewise. + * mpz/fdiv_q.c: Likewise. + * mpz/fdiv_qr.c: Likewise. + * mpz/fdiv_r.c: Likewise. + * mpz/get_si.c: Likewise. + * mpz/get_str.c: Likewise. + * mpz/init.c: Likewise. + * mpz/inp_str.c: Likewise. + * mpz/iset.c: Likewise. + * mpz/iset_d.c: Likewise. + * mpz/iset_si.c: Likewise. + * mpz/iset_str.c: Likewise. + * mpz/iset_ui.c: Likewise. + * mpz/mod.c: Likewise. + * mpz/neg.c: Likewise. + * mpz/out_str.c: Likewise. + * mpz/random2.c: Likewise. + * mpz/set_si.c: Likewise. + * mpz/set_str.c: Likewise. + * mpz/set_ui.c: Likewise. + * mpz/setbit.c: Likewise. + * mpz/sqrt.c: Likewise. + * mpz/swap.c: Likewise. + * mpz/tdiv_r_2exp.c: Likewise. + + * tests/cxx/t-ops.cc: Test mpz_abs reallocation. + +2012-02-23 Torbjorn Granlund + + * mpn/x86_64/core2/rsh1aors_n.asm: Complete rewrite. + * mpn/x86_64/coreisbr/rsh1aors_n.asm: Move old core2 code here. + + * mpn/x86_64/redc_1.asm: Make it work for DOS64 (broken in last edit). + +2012-02-20 Marco Bodrato + + * mpn/generic/toom_interpolate_8pts.c: Compute carry iif non-trivial. + + * mpz/gcdext.c: Adapt to relaxed mpn_gcdext's input requirements. + + * mpz/and.c: Use mpn_ logic everywhere. Reduce branches. + * mpz/ior.c: Likewise. + * mpz/xor.c: Likewise. + +2012-02-20 Torbjorn Granlund + + * mpn/x86_64/coreisbr/mul_1.asm: New file. + + * mpn/x86_64/coreisbr/aorsmul_1.asm: New file. + + * mpn/x86_64/mod_34lsub1.asm: Avoid ",pt" branch hint since many + assemblers don't support it. + +2012-02-19 Torbjorn Granlund + + * mpn/generic/redc_1.c: Put back mpn_add_n call, return its carry. + Reintroduce previously removed RP argument. + * mpn/x86_64/redc_1.asm: Likewise. + + * mpn/generic/redc_2.c: Remove mpn_sub_n call, return carry from + mpn_add_n call. + + * gmp-impl.h (mpn_redc_1, mpn_redc_2): Now return an mp_limb_t. + + * tune/speed.h (SPEED_ROUTINE_REDC_1): Adopt to pass RP argument. + + * tests/refmpn.c (refmpn_redc_1): Adopt to new redc_1 interface. + + * mpn/generic/powm.c (MPN_REDC_1): Pass rp parameter to mpn_redc_1. + * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): Likewise. + * mpn/generic/powm.c (MPN_REDC_2): New macro, use for mpn_redc_2. + +2012-02-18 Marc Glisse + + * gmpxx.h (std::common_type): New partial specialization in C++11. + * tests/cxx/t-cxx11.cc: Test it. + + * gmpxx.h: Don't declare long double functions that are never defined. + + * gmpxx.h (__gmp_binary_expr): Let things happen in place: q=q*q+z*z + becomes tmp=z*z, q=q*q, q+=tmp. + * tests/cxx/t-binary.cc: More variable reuse tests. + +2012-02-17 Marc Glisse + + * gmp-h.in (__GMP_WITHIN_GMP): Test with #ifdef instead of #if, for + the benefit of applications using gcc -Wundef. + (__GMP_WITHIN_GMPXX): Likewise. + +2012-02-16 Marc Glisse + + * gmpxx.h (__gmp_binary_expr): Let things happen in place: e=a*b-c*d + becomes tmp=c*d, e=a*b, e-=tmp. + * tests/cxx/t-binary.cc: More variable reuse tests. + +2012-02-15 Niels Möller + + * tune/tuneup.c (mul_toom43_to_toom54_threshold): New global. + (tune_mul): Added tuning of MUL_TOOM43_TO_TOOM54_THRESHOLD. + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM54_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM54_FOR_TOOM43_MUL): New macro. + Prototypes for corresponding functions. + * tune/common.c (speed_mpn_toom43_for_toom54_mul): New function. + (speed_mpn_toom54_for_toom43_mul): New function. + + * gmp-impl.h (MPN_TOOM43_MUL_MINSIZE): Corrected constant. + (MPN_TOOM53_MUL_MINSIZE): Likewise. + (MPN_TOOM54_MUL_MINSIZE): New constant. + (mpn_toom54_mul): Added prototype. + (MUL_TOOM43_TO_TOOM54_THRESHOLD): New threshold. Default value and + tuning setup. + +2012-02-14 Niels Möller + + * mpn/generic/toom54_mul.c: New file, originally contributed by + Marco. + * gmp-impl.h (mpn_toom54_mul_itch): New function. + * configure.in (gmp_mpn_functions): Added toom54_mul. + * tests/mpn/t-toom54.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom54. + +2012-02-13 Niels Möller + + * configure.in: Display summary of options. + +2012-02-11 Torbjorn Granlund + + * tests/tests.h (TESTS_REPS): Print any non-standard repetitions. + +2012-02-11 Marco Bodrato + + * doc/gmp.texi (Factorial): Shortly describe current algorithm. + (Multiplication Algorithms): Add Toom[68]'n'half, (too) shortly. + * gmp-impl.h (ASSERT_ALWAYS): Consider failures UNLIKELY. + +2012-02-10 Niels Möller + + * tests/mpz/t-gcd.c (gcdext_valid_p): Enforce slightly stricter + bound for cofactors. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): Corrected + handling of unlikely (maybe impossible?) case u1n < un. Related to + the 2012-02-05 bugfix of gcdext_subdiv_step.c in the gmp-5.0 repo. + +2012-02-09 Marco Bodrato + + * gmp-impl.h (mpn_toom3*_itch): Support any recursion depth. + * tests/refmpn.c (refmpn_mul): Restore tight allocations. + + * mpz/oddfac_1.c (mpz_oddfac_1): Get ready for n!! + * gmp-impl.h (mpz_oddfac_1): Update signature. + * mpz/fac_ui.c (mpz_fac_ui): Update call to mpz_oddfac_1. + +2012-02-09 Marc Glisse + + * gmp-impl.h (ABS_CAST): New macro. + * mpf/cmp_si.c: Use ABS_CAST. + * mpf/get_si.c: Use ABS_CAST. + * mpf/iset_si.c: Use ABS_CAST. + * mpf/set_si.c: Use ABS_CAST. + * mpq/set_si.c: Use ABS_CAST. + * mpz/cmp_si.c: Use ABS_CAST. + * mpz/get_si.c: Use ABS_CAST. + * mpz/iset_si.c: Use ABS_CAST. + * mpz/mul_i.h: Use ABS_CAST. + * mpz/set_si.c: Use ABS_CAST. + +2012-02-08 Torbjorn Granlund + + * mpn/powerpc32/divrem_2.asm: Fix off-by-one condition in invert_limb + code. + +2012-02-08 Niels Möller + + * doc/gmp.texi (mpz_gcdext): Clarified corner cases in cofactor + canonicalization. + +2012-02-07 Niels Möller + + * mpn/generic/gcdext.c (mpn_gcdext): Fixed assert, related to the + special case A = (2k+1) G, B = 2 G. Fix copied from gmp-5.0 repo. + +2012-02-06 Niels Möller + + * mpn/generic/hgcd_matrix.c (hgcd_matrix_update_q): Fixed carry + handling bug. Fix copied from gmp-5.0 repo, where the function is + found in hgcd.c. + + * tests/mpz/t-gcd.c (main): Use mpz_rrandomb for test operands, + not mpz_urandomb. Change copied from gmp-5.0 repo. + * tests/mpn/t-hgcd.c (main): Likewise. + +2012-02-04 Marco Bodrato + + * tests/refmpn.c (refmpn_mul): More conservative allocations. + +2012-02-03 Torbjorn Granlund + + * mpn/x86_64/bd1/gmp-mparam.h: New file. + + * longlong.h (udiv_qrnnd from sdiv_qrnnd): Declare udiv_w_sdiv. + + * mpn/generic/udiv_w_sdiv.c: Use c89 function header. + +2012-02-03 Marco Bodrato + + * mpz/fac_ui.c: mpz_oddfac_1 removed, with many related functions. + * mpz/oddfac_1.c: New file, mpz_oddfac_1 implementation. + * gmp-impl.h: mpz_oddfac_1 declaration. + * Makefile.am (MPZ_OBJECTS): add mpz/oddfac_1$U.lo . + * mpz/Makefile.am (libmpz_la_SOURCES): add oddfac_1.c . + * tune/Makefile.am (fac_ui.c): include mpz/oddfac_1.c . + +2012-02-02 Marco Bodrato + + * mpn/generic/toom_interpolate_16pts.c: Correct an unlikely 32-bit bug. + +2012-02-02 Torbjorn Granlund + + * mpn/generic/toom63_mul.c: Allow s+t==n by adjusting an ASSERT. + * mpn/generic/toom_interpolate_8pts.c: Perform final incr iff s+t!=n. + + * tests/mpn/t-toom6h.c (MIN_BN): Make more consistent with ASSERT in + tested function. + +2012-02-01 Torbjorn Granlund + + * tests/mpn/t-mul.c: New file. + * tests/mpn/Makefile.am: Compile it. + +2012-02-01 Marc Glisse + + * gmpxx.h: Remove check for g++ older than 2.91. + +2012-02-01 Niels Möller + + * mpn/generic/mul.c: Added diagram on where toom functions can be + called. + +2012-02-01 Marc Glisse + + * gmpxx.h (__gmp_unary_expr): Make the constructor explicit. + (__gmp_expr(__gmp_expr&&)): New move constructors. + (__gmp_expr::operator=(__gmp_expr&&)): New move assignments. + (swap): Mark as noexcept. + (__GMPXX_USE_CXX11): New macro. + (__GMPXX_NOEXCEPT): New macro. + * tests/cxx/t-cxx11.cc: New file. + * tests/cxx/Makefile.am: Added t-cxx11. + +2012-01-31 Torbjorn Granlund + + * mpn/generic/powm_sec.c (SQR_BASECASE_LIM): New name for + SQR_BASECASE_MAX. + (SQR_BASECASE_LIM, fat variant): Define to read __gmpn_cpuvec. + (SQR_BASECASE_LIM, native variant): Define to SQR_TOOM2_THRESHOLD + straight, without arithmetic. + (mpn_local_sqr): Use BELOW_THRESHOLD as per Marco's suggestion. + +2012-01-30 Torbjorn Granlund + + * tests/mpz/t-powm.c: Ensure all sizes are seen. + +2012-01-30 Marc Glisse + + * gmpxx.h (__gmp_binary_expr): Let things happen in place: d=a+b+c + when d != c. + * tests/cxx/t-binary.cc: Test variable reuse: c=a+b+c. + +2012-01-28 Marc Glisse + + * gmpxx.h: Don't compute -LONG_MIN. + + * doc/gmp.texi (gmp_randclass::get_z_bits): Use mp_bitcnt_t. + * gmpxx.h: Replace unsigned long with mp_bitcnt_t. + +2012-01-27 Torbjorn Granlund + + * Upgrade to libtool 2.4.2. + +2012-01-26 Marco Bodrato + + * tests/mpz/t-fac_ui.c: Increase default test cases. + + * mpz/prodlimbs.c: New file, mpz_prodlimbs implementation. + * gmp-impl.h: mpz_prodlimbs declaration. + * Makefile.am (MPZ_OBJECTS): add mpz/prodlimbs$U.lo . + * mpz/Makefile.am (libmpz_la_SOURCES): add prodlimbs.c . + (fac_ui.h): remove target (moved up one directory). + * mpz/fac_ui.c: mpz_prodlimbs removed, micro-optimisations. + +2012-01-25 Torbjorn Granlund + + * tune/tuneup.c: Remove unused tuneup variables. + +2012-01-20 Marco Bodrato + + * mpz/fac_ui.c: Reduce branches in basecases. + +2012-01-18 Marc Glisse + + * doc/gmp.texi (mpf_class::mpf_class): Use mp_bitcnt_t. + +2012-01-17 Torbjorn Granlund + + * configure.in: Add ultrasparc T4 support. + + * demos/isprime.c (main): Run 25 millerrabin tests. + +2012-01-16 Marco Bodrato + + * mpz/fac_ui.c (SIEVE_SEED): Define value for small limb size. + (mpz_oddswing_1): Reduce the number of divisions. + (mpz_oddfac_1): Reduce memory usage. + * mpn/minithres/gmp-mparam.h: Correct minimum for FAC_DSC_. + * tune/tuneup.c (tune_fac_ui): Likewise. + +2012-01-15 Niels Möller + + * mpz/scan0.c (mpz_scan0): Use ~(mp_bitcnt_t) 0, rather than + ULONG_MAX, when returning "infinity". + * mpz/scan1.c (mpz_scan1): Likewise. + +2012-01-12 Torbjorn Granlund + + * tests/t-popc.c: Test longer bit strings. + +2012-01-12 Marco Bodrato + + * mpz/divexact.c: Tight realloc, delayed if variables are reused. + * mpz/lcm.c: Smaller temp space, avoid goto. + * gmp-impl.h (popc_limb): avoid double & (for 8-bits limb). + +2012-01-10 Marco Bodrato + + * mpn/minithres/gmp-mparam.h: New FAC_ODD_ and FAC_DSC_ thresholds. + * tune/tuneup.c (tune_fac_ui): Correct minimum for FAC_DSC_. + +2012-01-07 Torbjorn Granlund + + * mpz/mul_2exp.c: Rewrite. + * mpz/tdiv_q_2exp.c: Rewrite. + +2012-01-05 Marco Bodrato + + * gen-fac_ui.c: Remove currently unused constants; add new odd + double factorial table. + * mpz/fac_ui.c (RECURSIVE_PROD_THRESHOLD): Increase default. + (mpz_oddfac_1): New function: a merge of _bc_odd and _dsc_odd. + (mpz_prodlimbs): More in-place computations. + + * tune/tuneup.c (tune_fac_ui): min_is_always for FAC_ODD_. + +2012-01-02 Marco Bodrato + + * tune/tuneup.c (tune_fac_ui): Compute FAC_DSC before FAC_ODD. + +2011-12-31 Torbjorn Granlund + + * Makefile.am (fac_ui.h): Put file in top-level dir, not in mpz. + +2011-12-31 Marco Bodrato + + * tune/Makefile.am (fac_ui.c): New target. + (nodist_tuneup_SOURCES,CLEANFILES): Add fac_ui.c. + * tune/tuneup.c (mpz_fac_ui_tune): Declare prototype. + (fac_odd_threshold,fac_dsc_threshold): New global variables. + (speed_mpz_fac_ui_tune,tune_fac_ui): New functions. + (all): Call tune_fac_ui. + * gmp-impl.h (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD): + New thresholds: default values, and setup for tuning. + (FAC_DSC_THRESHOLD_LIMIT): Define (when tuning). + * mpz/fac_ui.c (FAC_ODD_THRESHOLD,FAC_DSC_THRESHOLD): + Default values removed. + +2011-12-30 Torbjorn Granlund + + * mpz/hamdist.c: Fix typo in a return statement. + + * mpn/generic/powm_sec.c (SQR_BASECASE_MAX): Set safely from + SQR_TOOM2_THRESHOLD. + +2011-12-17 Torbjorn Granlund + + * tests/mpz/t-perfpow.c: Decrease default # of tests. + +2011-12-16 Torbjorn Granlund + + * tests/refmpn.c (AORS_1): Fix typo in variable type. + +2011-12-10 Torbjorn Granlund + + * mpn/generic/sbpi1_bdiv_q.c: Delay quotient limb stores in order to + allow quotient and dividend to completely overlap. + * mpn/generic/sbpi1_bdiv_qr.c: Likewise. + +2011-12-10 Marco Bodrato + + * mpz/fac_ui.c: fac_bc_ui inlined in fac_ui. + +2011-12-08 Torbjorn Granlund + + * mpn/generic/powm_sec.c: Handle fat binaries better. + + * mpz/fac_ui.c (mpz_bc_fac_1): Fix typo in allocation size. + + * mpn/x86/fat/com.c: New file. + + * mpn/x86_64/pentium4/aors_n.asm: Make it actually work for DOS64. + * mpn/x86_64/pentium4/rsh1aors_n.asm: Conditionalise jump on DOS64 + to avoid overhead for standard ABIs. + + * mpn/x86_64/gcd_1.asm: Support DOS64. + +2011-12-07 Torbjorn Granlund + + * configure.in: Fix typo making HAVE_NATIVE_mpn_X fail for fat + functions. + + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec_init): Add a missing break. + +2011-12-07 Marco Bodrato + + * gen-fac_ui.c: Generate two more tables: odd factorial, swing. + + * mpz/fac_ui.c: Rewrite. + +2011-12-06 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd): Use hgcd_reduce for first + recursive call. + +2011-12-06 Torbjorn Granlund + + * tune/mod_1_1-1.c: Redefine the mpn_ functions, not __gmpn_ (for the + benefit of fat builds). + * tune/mod_1_1-2.c: Likewise. + +2011-12-05 Torbjorn Granlund + + * mpn/x86/fat/lshiftc.c: New file. + * mpn/x86/fat/mod_1_1.c: New file. + * mpn/x86/fat/mod_1_2.c: New file. + * mpn/x86/fat/mod_1_4.c: New file. + + * mpn/x86/fat/diveby3.c: Remove no longer fat function. + * mpn/x86_64/fat/diveby3.c: Likewise. + + * mpn/x86_64/fat/gcd_1.c: Remove since always provided as asm. + * mpn/x86_64/fat/mode1o.c: Likewise. + + * configure.in (fat_functions): Update to more relevant function set. + Add special handling for mod_1_N_cps functions. + * gmp-impl.h (struct cpuvec_t) : Corresponding changes. Also add + vrious declarations for new functions. + * mpn/x86/x86-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes. + * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): Corresponding changes. + * mpn/x86/fat/fat.c (__gmpn_cpuvec): Corresponding changes. + * mpn/x86_64/fat/fat.c (__gmpn_cpuvec): Corresponding changes. + + * mpn/x86_64: Port most remaining x86_64 files to DOS64. + + * mpn/x86_64/coreisbr/aors_n.asm: Add forgotten DOS64_EXIT. + + * mpn/x86_64/x86_64-defs.m4 (LEA): Handle non-PIC code. + * mpn/x86_64/darwin.m4 (LEA): Likewise. + +2011-12-04 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c (MAKE_FMS): Rewrite to handle modern CPUs. + * mpn/x86/fat/fat.c (MAKE_FMS): Likewise. + + * mpn/x86_64/darwin.m4 (PROTECT): Define to potentially useful value. + +2011-12-02 Torbjorn Granlund + + * mpn/x86_64/invert_limb_table.asm: Use PROTECT. + * mpn/x86_64/invert_limb.asm: Likewise. + + * mpn/x86_64/darwin.m4 (PROTECT, IFELF): New defines. + * mpn/x86_64/dos64.m4 (PROTECT, IFELF): New defines. + * mpn/x86_64/x86_64-defs.m4 (PROTECT, IFELF): New defines. + +2011-12-01 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c: Copy fake cpuid code from x86/fat/fat.c. + + * mpn/x86_64 (STD64, IFSTD): New names for ELF64, IFELF (since these + denote all standard calling conventions). + + * mpn/x86_64: Add DOS64 ABI support to more files. + + * mpn/x86_64/mod_1_1.asm: Finish DOS64 support. + * mpn/x86_64/mod_1_2.asm: Likewise. + * mpn/x86_64/mod_1_4.asm: Likewise. + + * configure.in: Add GMP_NONSTD_ABI also for fat builds. + + * mpn/x86_64/fat/fat_entry.asm: Rewrite to support DOS64. + + * mpn/x86_64/dos64.m4 (IFDOS, IFSTD): New defines. + * mpn/x86_64/x86_64-defs (IFDOS, IFSTD): New defines. + + * mpn/x86_64/dive_1.asm: Add DOS64 ABI support. + * mpn/x86_64/mode1o.asm: Likewise. + + * mpn/x86_64/mod_34lsub1.asm: Enable for DOS64. + + * mpn/x86_64/invert_limb.asm: Wrap .protected decl. + + * gmp-impl.h (DECL_divexact_1): Fix typo in return type. + + * mpn/x86_64/dos64.m4 (LEA): New define. + (PIC): Define. + +2011-11-29 Torbjorn Granlund + + * mpn/x86_64: Add DOS64 ABI support to most files. + +2011-11-28 Torbjorn Granlund + + * mpn/x86_64/mul_basecase.asm: Support ABI DOS64. + * mpn/x86_64/sqr_basecase.asm: Support ABI DOS64. + * mpn/x86_64/aorsmul_1.asm: Support ABI DOS64. + * mpn/x86_64/mul_1.asm: Support ABI DOS64. + + * mpn/x86_64/x86_64-defs.m4 (DOS64_ENTRY, DOS64_EXIT): New, empty defs. + + * mpn/x86_64/dos64.m4: New file. + + * mpn/asm-defs.m4 (ABI_SUPPORT): New dummy macro. + + * configure.in (64-bit mingw/cygwin): Define HOST_DOS64,GMP_NONSTD_ABI. + No longer clear out path_64. + (mpn code selection loop): Handle GMP_NONSTD_ABI. + + * mpn/generic/udiv_w_sdiv.c: Use CNST_LIMB for some constants. + +2011-11-25 Torbjorn Granlund + + * x86/*: Many new gmp-mparam.h file for 64-bit CPUs in 32-bit mode. + + * configure.in: Overhaul x86/x86_64 support, merging three case + statements into one. + +2011-11-24 Torbjorn Granlund + + * doc/gmp.texi (Formatted Output Strings): Clarify rules for mpf_t + precision. + + * mpn/powerpc32/p7/gmp-mparam.h: New file. + + * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Up min_size to karatsuba's + threshold. + +2011-11-22 Torbjorn Granlund + + * mpn/powerpc64/mode64/p6/aorsmul_1.asm: New file. + + * configure.in: Don't fail fat builds under 64-bit DOS. + + * mpn/powerpc64/mode64/aors_n.asm: Align loop for slightly better + power5 performance. + +2011-11-21 Torbjorn Granlund + + * gmp-h.in (__GNU_MP_RELEASE): Renamed from typo name. + +2011-11-20 Torbjorn Granlund + + * configure.in: Split x86 CPUs into more subtypes for more accurate + passing of gcc flags. + + * mpn/powerpc32/p3-p7/aors_n.asm: New file. + + * configure.in: Pass -m32 for powerpc64 with abi=32, using via _maybe + mechanism. + + * configure.in: Support powerpc32/p3-p7 directory for affected CPUs. + +2011-11-17 Torbjorn Granlund + + * tune/speed.c (routine): Add mpn_tabselect. + * tune/common.c (speed_mpn_tabselect): New function. + * tune/speed.h (SPEED_ROUTINE_MPN_COPY_CALL): New macro, made from + old SPEED_ROUTINE_MPN_COPY. + (SPEED_ROUTINE_MPN_COPY): Just invoke SPEED_ROUTINE_MPN_COPY_CALL. + (SPEED_ROUTINE_MPN_TABSELECT): New macro. + +2011-11-17 Niels Möller + + * tune/tuneup.c (tune_hgcd_appr): Increase stop_since_change. + +2011-11-16 Torbjorn Granlund + + * mpn/powerpc32/tabselect.asm: New file. + + * mpn/powerpc64/mode64/aorscnd_n.asm: New file. + +2011-11-15 Niels Möller + + * tune/speed.h (speed_mpn_hgcd_appr_lehmer): New prototype. + (mpn_hgcd_lehmer_itch): Likewise. + (mpn_hgcd_appr_lehmer): Likewise. + (mpn_hgcd_appr_lehmer_itch): Likewise. + (MPN_HGCD_LEHMER_ITCH): Deleted macro. + + * tune/speed.c (routine): Added mpn_hgcd_appr_lehmer. + + * tune/common.c (speed_mpn_hgcd_lehmer): Use mpn_hgcd_lehmer_itch + rather than similarly named macro. + (speed_mpn_hgcd_appr_lehmer): New function. + + * tune/Makefile.am (libspeed_la_SOURCES): Added + hgcd_appr_lehmer.c. + + * tune/hgcd_appr_lehmer.c: New file. + + * tune/tuneup.c (tune_hgcd_appr): Increased min_size to 50; some + machines got small thresholds which appear to be bogus. + +2011-11-15 Torbjorn Granlund + + * mpn/generic/powm_sec.c (mpn_local_sqr): Remove forgotten TMP_* calls. + (redcify): Likewise. + (mpn_powm_sec): Likewise. + + * mpn/generic/powm_sec.c (mpn_powm_sec): Rework scratch usage + (mpn_powm_sec_itch): Rewrite. + + * mpn/generic/powm_sec.c (mpn_powm_sec): Use mpn_tabselect also in + initialisation. + + * configure.in: Amend 2011-11-03 gcc_cflags change. + + * mpn/powerpc64/tabselect.asm: New file. + * mpn/x86_64/tabselect.asm: New file. + * mpn/x86/tabselect.asm: New file. + * mpn/ia64/tabselect.asm: New file. + + * mpn/asm-defs.m4 (define_mpn): Add tabselect. + + * configure.in (gmp_mpn_functions): Add tabselect. + (HAVE_NATIVE): Add entries for addncd_n, subcnd_n, tabselect. + + * mpn/generic/powm_sec.c: Remove mpn_tabselect implementation. + * mpn/generic/tabselect.c: New file with removed code. + +2011-11-13 Torbjorn Granlund + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add powm_sec.c. + + * mpn/generic/powm_sec.c (win_size): Use POWM_SEC_TABLE + (POWM_SEC_TABLE): Define default. + + * tune/tuneup.c (tune_powm_sec): New function computing POWM_SEC_TABLE. + (all): Call new function. + + * mpn/generic/powm_sec.c (win_size): Define only when + TUNE_PROGRAM_BUILD is not set. + +2011-11-13 Niels Möller + + * tune/tuneup.c (tune_hgcd_appr): Use default min_size. + (tune_hgcd_reduce): Increase max_size and step_factor, to 7000 + and 0.04, respectively. + +2011-11-11 Torbjorn Granlund + + * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: Remove. + +2011-11-11 Niels Möller + + * tune/hgcd_reduce_2.c: New file. + * tune/hgcd_reduce_1.c: New file. + + * tune/tuneup.c (hgcd_appr_threshold): New threshold variable. + (hgcd_reduce_threshold): Likewise. + (tune_hgcd_appr): New function. + (tune_hgcd_reduce): New function. + (all): Call tune_hgcd_appr and tune_hgcd_reduce. + + * tune/speed.h (speed_mpn_hgcd_reduce): Declaration. + (speed_mpn_hgcd_reduce_[12]): Likewise. + (mpn_hgcd_reduce_[12]): Likewise. + (SPEED_ROUTINE_MPN_HGCD_REDUCE_CALL): New macro. + + * tune/speed.c (routine): Added mpn_hgcd_reduce, + mpn_hgcd_reduce_1, and mpn_hgcd_reduce_2. + + * tune/common.c (speed_mpn_hgcd_reduce): New function. + (speed_mpn_hgcd_reduce_[12]): Likewise. + + * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_reduce_1.c + hgcd_reduce_2.c. + (TUNE_MPN_SRCS_BASIC): Added hgcd_appr.c and hgcd_reduce.c. + + * mpn/generic/hgcd_appr.c (submul, hgcd_matrix_apply): Deleted + functions, earlier copied to hgcd_reduce.c. + (mpn_hgcd_appr): Use hgcd_reduce. + +2011-11-09 Torbjorn Granlund + + * mpn/powerpc64/mode64/sqr_basecase.asm: New file. + + * mpn/x86_64/aorscnd_n.asm: New file. + + * tune/speed.c (routine): Add measuring of mpn_addcnd_n, mpn_subcnd_n. + * tune/common.c (speed_mpn_addcnd_n,speed_mpn_subcnd_n): New functions. + * tune/speed.h: Declare them. + + * tests/devel/try.c: Add tests for mpn_addcnd_n and mpn_subcnd_n. + * tests/refmpn.c (refmpn_addcnd_n, refmpn_subcnd_n): New functions. + * tests/tests.h: Declare them. + + * configure.in (gmp_mpn_functions): Add addcnd_n and subcnd_n. + +2011-11-07 Torbjorn Granlund + + * mpn/generic/redc_1.c: Just reduce U operand using Hensel norm, but + not fully canonically; leave add_n and conditional sub_n to caller. + Therefore omit R argument. + + * mpn/generic/redc_1_sec.c: Remove. + + * gmp-impl.h (mpn_redc_1): Update declaration. + (mpn_redc_1_sec): Remove declaration. + + * configure.in (gmp_mpn_functions): Remove redc_1. + + * mpn/x86_64/redc_1.asm: Adopt to new defined functionality/interface. + * tune/speed.h (SPEED_ROUTINE_REDC_1): Likewise. + + * tests/refmpn.c (refmpn_redc_1): Likewise; also call refmpn_addmul_1 + instead of mpn_addmul_1. + + * mpn/generic/powm.c (MPN_REDC_1): New macro, use for mpn_redc_1. + * mpn/generic/powm_sec.c (MPN_REDC_1_SEC): New macro, use for + mpn_redc_1_sec. + +2011-11-03 Torbjorn Granlund + + * dumbmp.c (mpz_sub): Abort for non-handled case. + + * mpn/powerpc64/mode64/lshiftc.asm: Move file from here... + * mpn/powerpc64/lshiftc.asm: ...to here, with trivial modifications. + + * configure.in: Pass -m32 in more cases, using _maybe mechanism. + Inherit default gcc_cflags in more places. + + * mpn/powerpc64/mode64/p7/gmp-mparam.h: New file. + +2011-11-02 Torbjorn Granlund + + * mpn/s390_64/invert_limb.asm: Slight optimisation. + + * configure.in (s390): Set gcc_32_cflags_maybe. + + * mpn/s390_32/gmp-mparam.h: Put in proper data. + * mpn/s390_32/esame/gmp-mparam.h: New file. + + * mpn/x86_64/bobcat/gmp-mparam.h: New file. + + * mpn/s390_32/lshift.asm: New file. + * mpn/s390_32/rshift.asm: New file. + * mpn/s390_32/lshiftc.asm: New file. + +2011-10-31 Torbjorn Granlund + + * mpn/powerpc64/sqr_diagonal.asm: Move from here... + * mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here. + + * mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file. + + * mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code. + * mpn/s390_32/esame/sqr_basecase.asm: Likewise. + +2011-10-29 Torbjorn Granlund + + * mpn/s390_64/lshift.asm: Complete rewrite. + * mpn/s390_64/rshift.asm: Likewise. + + * mpn/s390_64/lshiftc.asm: New file. + +2011-10-28 Torbjorn Granlund + + * mpn/s390_32/esame/aors_n.asm: New file, with rewritten add/sub code. + +2011-10-27 Torbjorn Granlund + + From Per Olofsson: + * gmp-impl.h (BSWAP_LIMB): Rename variable to avoid BSWAP_LIMB_FETCH + clash. + + * mpn/s390_32/esame/mul_basecase.asm: New file. + + * mpn/s390_32/esame/sqr_basecase.asm: New file. + + * mpn/s390_32/logops_n.asm: New file. + + * mpn/s390_64/logops_n.asm: Fix rp=up code. Remove a leftover insn. + +2011-10-26 Niels Möller + + * gmp-impl.h (mpn_hgcd_reduce, mpn_hgcd_reduce_itch): Added + prototypes. + (HGCD_APPR_THRESHOLD): Set up threshold for tuning. + (HGCD_REDUCE_THRESHOLD): Likewise. + + * configure.in (gmp_mpn_functions): Added hgcd_reduce. + + * mpn/generic/hgcd_reduce.c: New file. + +2011-10-24 Torbjorn Granlund + + * mpn/x86_64/sqr_basecase.asm: Put intermediate result into R, don't + allocate any stack space. + +2011-10-23 Torbjorn Granlund + + * mpn/s390_64/logops_n.asm: Use nc, oc, xc when possible. + + * tune/common.c (speed_mpn_and_n, speed_mpn_andn_n, etc): + Pass correct input args. + + * mpn/s390_64/mod_34lsub1.asm: Use llgfr for zero extensions. + + * mpn/s390_64/mul_basecase.asm: New file. + + * mpn/s390_64/sqr_basecase.asm: New file. + * mpn/s390_64/sqr_diag_addlsh1.asm: Removed, lives on in sqr_basecase. + + * mpn/s390_64/bdiv_dbm1c.asm: Shave off 1 c/l. + + * mpn/s390_64/aorrlsh1_n.asm: New file, developed from aorslsh1_n.asm. + * mpn/s390_64/sublsh1_n.asm: New file. + * mpn/s390_64/aorslsh1_n.asm: Remove file. + +2011-10-22 Torbjorn Granlund + + * mpn/s390_64/logops_n.asm: New file. + + * mpn/s390_64/aors_n.asm: New file, with rewritten add/sub code. + +2011-10-20 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_SQR_DIAL_ADDLSH1_CALL): New macro. + * tune/common.c (speed_mpn_sqr_diag_addlsh1): New function. + * tune/speed.c (routine): Measure mpn_sqr_diag_addlsh1. + + * mpn/s390_64/sqr_diag_addlsh1.asm: Rewrite like s390_32/esame code. + + * mpn/s390_32/esame/sqr_diag_addlsh1.asm: Save just needed registers. + +2011-10-19 Torbjorn Granlund + + * mpn/s390_32/esame/add_n.asm: Rewrite, similar to s390_64 code. + * mpn/s390_32/esame/add_n.asm: Likewise. + +2011-10-17 Torbjorn Granlund + + * mpn/s390_32/esame/aorslsh1_n.asm: New file. + +2011-10-16 Torbjorn Granlund + + * mpn/s390_32/esame/sqr_diag_addlsh1.asm: New file. + + * mpn/s390_32/copyi.asm: New file. + * mpn/s390_32/copyd.asm: New file. + + * mpn/s390_64/copyd.asm: Optimise. + + * mpn/s390_64/copyi.asm: Rewrite along the lines of glibc memcpy. + + * mpn/s390_64/aorslsh1_n.asm: New file. + + * mpn/s390_64/mod_34lsub1.asm: New file. + + * mpn/s390_64/sqr_diag_addlsh1.asm: New file. + +2011-10-15 Torbjorn Granlund + + * configure.in (s390): Rewrite support to handle known CPUs. + * config.guess: Recognise s390 CPUs. + * config.sub: Match s390 CPUs. + * acinclude.m4 (S390_PATTERN, S390X_PATTERN): New defines. + +2011-10-14 Torbjorn Granlund + + From Per Olofsson: + * mpn/generic/popham.c: Add __GMP_NOTHROW to make it match gmp.h. + * mpn/generic/gcd_1.c: Separate declarations and initialisers for the + benefit of C++. + + * configure.in: AC_DEFINE HAVE_HOST_CPU_s390_zarch. + * longlong.h (s390): Use it. + (s390 umul_ppmm): Fix typo in pure C variant. + +2011-10-13 Torbjorn Granlund + + * longlong.h (s390): Put back an accidentally deleted #else. + + * configure.in (s390): Unset extra_functions for s390x. + +2011-10-12 Torbjorn Granlund + + * mpn/s390_64/lshift.asm: Reduce register usage. + * mpn/s390_64/rshift.asm: Likewise. + + * longlong.h (s390 umul_ppmm): With new-enough gcc, avoid asm. + + From Andreas Krebbel: + * longlong.h (s390 umul_ppmm): Support 32-bit limbs with gcc using + 64-bit registers. + (s390 udiv_qrnnd): Likewise. + +2011-10-11 Torbjorn Granlund + + * configure.in (s390x): Pass -mzarch to gcc in 32-bit mode. + + * longlong.h (s390x): Add __CLOBBER_CC for relevant asm patterns. + * mpn/generic/mod_1_1.c (s390x add_mssaaaa): Likewise. + + * mpn/s390_64/copyd.asm: New file. + +2011-10-10 Niels Möller + + * mpn/generic/hgcd_appr.c: Deleted debugging code. + + * tests/mpn/t-hgcd_appr.c (main): Added -v flag. + (hgcd_appr_valid_p): Increased margin of non-minimality for + divide-and-conquer algorithm. Display bit counts only if + -v is used. + + * mpn/generic/hgcd_appr.c (submul): New (static) function. + (hgcd_matrix_apply): New function. + (mpn_hgcd_appr_itch): Account for divide-and-conquer algorithm. + (mpn_hgcd_appr): Implemented divide-and-conquer. + +2011-10-10 Torbjorn Granlund + + * mpn/generic/mod_1_1.c (add_mssaaaa): Add s390x variant. Put arm code + inside __GNUC__. + + * tune/time.c (STCK): Use proper memory constraint. + + From Marco Trudel: + * tests/mpz/t-scan.c (check_ref): Fix loop end bound. + +2011-10-10 Niels Möller + + * gmp-impl.h: (HGCD_APPR_THRESHOLD): New threshold. + + * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Interface change. + Destroy inputs, let caller make working copies if needed. + (mpn_hgcd_appr_itch): Reduced scratch need. + * gmp-impl.h: Updated mpn_hgcd_appr prototype. + * tests/mpn/t-hgcd_appr.c (one_test): Make working copies for + hgcd_appr. + * tune/common.c (speed_mpn_hgcd_appr): Use SPEED_ROUTINE_MPN_HGCD_CALL. + * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): Deleted. + +2011-10-09 Torbjorn Granlund + + * mpn/s390_64/copyi.asm: New file. + * mpn/s390_64/lshift.asm: New file. + * mpn/s390_64/rshift.asm: New file. + + * mpn/s390_64/add_n.asm: Rewrite using lmg/stmg. + * mpn/s390_64/sub_n.asm: Likewise. + + * mpn/s390_64/invert_limb.asm: Save a callee-saves register less. + + * tune/time.c (getrusage_backwards_p): Properly cast printed values. + + * longlong.h (s390x): Put back UDItype casts to make gcc reloading use + right more for constants. + (s390x count_leading_zeros): Disable until we support z10 specifically. + (s390x add_ssaaaa): Remove algsi/slgsi until we support z10. + +2011-10-09 Niels Möller + + * mpn/generic/hgcd_matrix.c (mpn_hgcd_matrix_adjust): Declare + matrix argument const. + +2011-10-08 Niels Möller + + * tests/mpn/t-hgcd_appr.c (hgcd_appr_valid_p): Adjusted the + allowed margin of non-minimality for hgcd_appr. + + * mpn/generic/hgcd_appr.c (mpn_hgcd_appr): Fixed handling of + extra_bits, starting at zero, to ensure that we don't produce too + small remainders. Added a final reduction loop when we we + otherwise terminate with extra_bits > 0, to make the returned + remainders closer to minimal. + +2011-10-07 Torbjorn Granlund + + * longlong.h (s390): Add 32-bit zarch umul_ppmm and udiv_qrnnd. + (s390): Overhaul 32-bit and 64-bit code. + +2011-10-07 Niels Möller + + * tune/speed.h (speed_mpn_hgcd_appr): New prototype. + (SPEED_ROUTINE_MPN_HGCD_APPR_CALL): New macro. + * tune/common.c (speed_mpn_hgcd_appr): New function. + * tune/speed.c (routine): Added mpn_hgcd_appr. + + * tests/mpn/t-hgcd_appr.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-hgcd_appr. + + * configure.in (gmp_mpn_functions): Added hgcd_step and hgcd_appr. + + * gmp-impl.h: Added prototypes for mpn_hgcd_step, + mpn_hgcd_appr_itch and mpn_hgcd_appr. + + * mpn/generic/hgcd_appr.c: New file. + + * mpn/generic/hgcd_step.c: New file, extracted from hgcd.c. + (mpn_hgcd_step): Renamed, from... + * mpn/generic/hgcd.c (hgcd_step): ...old name. Renamed and moved + to hgcd_step.c. + (hgcd_hook): Also moved to hgcd_step.c. + (mpn_hgcd): Updated for hgcd_step renaming. + +2011-10-06 Torbjorn Granlund + + * mpn/s390_64/invert_limb.asm: New file. + +2011-10-04 Torbjorn Granlund + + * mpn/s390_64/submul_1.asm: New file. + * mpn/s390_32/esame/submul_1.asm: New file. + + * mpn/generic/mulmid.c (mpn_mulmid): Move a TMP_DECL to block start. + + * mpn/Makefile.am (TARG_DIST): Add s390_32 and s390_64, remove s390 and + z8000x. + + * doc/gmp.texi (Custom Allocation): Rephrase a paragraph. + + * demos/factorize.c: Run 25 Miller-Rabin tests. + + * mpz/nextprime.c: Run 25 mpz_millerrabin tests (was 10). + +2011-10-03 Torbjorn Granlund + + * configure.in: Support s390x. + + * longlong.h: Add support for 64-bit s390x. + + * mpn/s390_64: New directory. + * mpn/s390_64/add_n.asm: New file. + * mpn/s390_64/sub_n.asm: New file. + * mpn/s390_64/mul_1.asm: New file. + * mpn/s390_64/addmul_1.asm: New file. + * mpn/s390_64/bdiv_dbm1c.asm: New file. + * mpn/s390_64/gmp-mparam.h: New file, taken from x86_64. + + * mpn/s390_32: Directory renamed from mpn/s390. + * mpn/s390_32/gmp-mparam.h: New file, taken from x86_64. + * mpn/s390_32/esame/add_n.asm: New file. + * mpn/s390_32/esame/sub_n.asm: New file. + * mpn/s390_32/esame/mul_1.asm: New file. + * mpn/s390_32/esame/addmul_1.asm: New file. + * mpn/s390_32/esame/bdiv_dbm1c.asm: New file. + +2011-10-03 Niels Möller + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mulmid. + * tests/mpn/t-mulmid.c: New file. + + mulmid-related assembly for x86_64, from David Harvey: + * mpn/asm-defs.m4 (define_mpn): Added [add,sub]_err[1,2,3]_n and + mulmid_basecase. Also use m4_not_for_expansion on the + corresponding OPERATION_* symbols. + * mpn/x86_64/aors_err1_n.asm: New file. + * mpn/x86_64/aors_err2_n.asm: Likewise. + * mpn/x86_64/aors_err3_n.asm: Likewise. + * mpn/x86_64/mulmid_basecase.asm: Likewise. + * mpn/x86_64/core2/aors_err1_n.asm: Likewise. + * mpn/x86_64/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): New value. + * mpn/x86_64/core2/gmp-mparam.h (MULMID_TOOM42_THRESHOLD): Likewise. + + Tuning of mulmid, from David Harvey: + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added mulmid.c + mulmid_n.c toom42_mulmid.c. + * tune/speed.h: Prototypes for mulmid-related functions. + (struct speed_params): Increased max number of sources to 5. + (SPEED_ROUTINE_MPN_BINARY_ERR_N_CALL): New macro. + (SPEED_ROUTINE_MPN_BINARY_ERR1_N): Likewise. + (SPEED_ROUTINE_MPN_BINARY_ERR2_N): Likewise. + (SPEED_ROUTINE_MPN_BINARY_ERR3_N): Likewise. + (SPEED_ROUTINE_MPN_MULMID): Likewise. + (SPEED_ROUTINE_MPN_MULMID_N): Likewise. + (SPEED_ROUTINE_MPN_TOOM42_MULMID): Likewise. + * tune/common.c (mpn_[add,sub]_err[1,2,3]_n): New functions. + (speed_mpn_mulmid_basecase): New function. + (speed_mpn_mulmid): New function. + (speed_mpn_mulmid_n): New function. + (speed_mpn_toom42_mulmid): New function. + * tune/speed.c (routine): Added mpn_[add,sub]_err[1,2,3]_n, + mpn_mulmid_basecase, mpn_toom42_mulmid, mpn_mulmid_n, and + mpn_mulmid. + * tune/tuneup.c (mulmid_toom42_threshold): New threshold variable. + (tune_mulmid): New function. + (all): Call tune_mulmid. + + Testing of mulmid, from David Harvey: + * tests/refmpn.c (AORS_ERR1_N): New macro. + (refmpn_add_err1_n, refmpn_sub_err1_n): New functions. + (AORS_ERR2_N): New macro. + (refmpn_add_err2_n, refmpn_sub_err2_n): New functions. + (AORS_ERR3_N): New macro. + (refmpn_add_err3_n, refmpn_sub_err3_n): New functions. + (refmpn_mulmid_basecase): New function. + (refmpn_toom42_mulmid): New function, wrapper for + refmpn_mulmid_basecase. + (refmpn_mulmid_n): Likewise. + (refmpn_mulmid): Likewise. + * tests/tests.h: Prototypes for new functions. + * tests/devel/try.c (NUM_SOURCES): Increased to 5. + (struct try_t): Use NUM_SOURCES and NUM_DESTS constants. + (SIZE_4, SIZE_6, SIZE_DIFF_PLUS_3, SIZE_ODD): New constants. + (OVERLAP_NOT_DST2): New flag. + (param_init): New mulmid-related operation types. + (mpn_toom42_mulmid_fun): New function. + (choice_array): Added mulmid-related entries. + (overlap_array): Extended for larger NUM_SOURCES. + (OVERLAP_COUNT): Handle OVERLAP_NOT_DST2. + (call): Support mulmid-related functions. + (pointer_setup): Handle SIZE_4, SIZE_6, and SIZE_DIFF_PLUS_3. + (SIZE_ITERATION): Handle SIZE_ODD. + (SIZE2_FIRST): Handle SIZE_CEIL_HALF. + (SIZE2_LAST): Likewise. + + Implementation of mulmid, from David Harvey: + * mpn/generic/add_err1_n.c (mpn_add_err1_n): New file and function. + * mpn/generic/add_err2_n.c (mpn_add_err2_n): Likewise. + * mpn/generic/add_err3_n.c (mpn_add_err3_n): Likewise. + * mpn/generic/sub_err1_n.c (mpn_sub_err1_n): Likewise. + * mpn/generic/sub_err2_n.c (mpn_sub_err2_n): Likewise. + * mpn/generic/sub_err3_n.c (mpn_sub_err3_n): Likewise. + * mpn/generic/mulmid_basecase.c (mpn_mulmid_basecase): Likewise. + * mpn/generic/mulmid_n.c (mpn_mulmid_n): Likewise. + * mpn/generic/toom42_mulmid.c (mpn_toom42_mulmid): Likewise. + * configure.in (gmp_mpn_functions): Added mulmid-related + functions. + (GMP_MULFUNC_CHOICES): Handle aors_err1_n, aors_err2_n, and + aors_err3_n. + * gmp-impl.h: Added prototypes for mulmid functions. + (MPN_TOOM42_MULMID_MINSIZE): New constant. + (MULMID_TOOM42_THRESHOLD): New threshold. + (mpn_toom42_mulmid_itch): New macro. + +2011-10-03 Niels Möller + + * tune/tune-gcd-p.c (main): Fixed broken loop conditions. + +2011-09-26 Torbjorn Granlund + + * mpn/sh/sh2/submul_1.asm: Make this old submul_1 implementation + actually compute intended function. + + * longlong.h (SH): Recognise predefs for all SH processors as defined + by current gcc versions. + +2011-09-25 Torbjorn Granlund + + * mpn/sh: Migrate files to '.asm'. + * configure.in: Recognise sh3 and sh4. + +2011-09-21 Marc Glisse + + * gmpxx.h (mpz_class::swap): New function. + (mpq_class::swap): Likewise. + (mpf_class::swap): Likewise. + (swap): New function. + * tests/cxx/t-assign.cc: Test the above. + * doc/gmp.texi (swap): Document the above. + +2011-08-21 Marc Glisse + + * tests/cxx/t-ops2.cc: check mul-div by 2. + + * gmpxx.h (__GMPXX_CONSTANT): New macro (__builtin_constant_p). + (__gmp_binary_lshift): Move before multiplication. Optimize x << 0. + (__gmp_binary_rshift): Move before division. Optimize x >> 0. + (__gmp_binary_plus): Optimize x + 0. Rewrite rational + integer. + (__gmp_binary_minus): Optimize x - 0 and 0 - x. + Rewrite rational - integer. + (__gmp_binary_multiplies): Optimize x * 2^n. + (__gmp_binary_divides): Optimize x / 2^n. + (__gmp_binary_*): Deduplicate code for symmetric operations. + +2011-08-18 Torbjorn Granlund + + * printf/doprntf.c (__gmp_doprnt_mpf): For DOPRNT_CONV_FIXED, ask for + one more digit. + +2011-08-17 Torbjorn Granlund + + * mpf/sub.c: Fix typo in copy condition. Delay an allocation. + +2011-08-12 Torbjorn Granlund + + * gmp-impl.h (LIMBS_PER_DIGIT_IN_BASE): Fix typo. + +2011-08-10 Torbjorn Granlund + + * gmp-impl.h (DIGITS_IN_BASEGT2_FROM_BITS): New. + (DIGITS_IN_BASE_FROM_BITS): Compute more accurate result. + (MPN_SIZEINBASE): Use DIGITS_IN_BASEGT2_FROM_BITS. + + * tests/rand/t-lc2exp.c (check_bigc): Call abort after reporting error. + +2011-08-09 Torbjorn Granlund + + * mpz/out_str.c (mpz_out_str): Reinsert accidentally deleted str_size + adjustment. + + * gmp-impl.h (DIGITS_IN_BASE_FROM_BITS): Simplify, also avoiding + overflow for base 2. + +2011-08-07 Torbjorn Granlund + + * gmp-impl.h (struct bases): Add log2b and logb2 field, remove + chars_per_limb_exactly field. + (DIGITS_IN_BASE_FROM_BITS): New. + (DIGITS_IN_BASE_PER_LIMB): New. + (LIMBS_PER_DIGIT_IN_BASE): New. + * gen-bases.c: Generate log2b and logb2 fields; do not generate + chars_per_limb_exactly field. + * mpf/get_str.c mpf/out_str.c mpf/set_str.c mpn/generic/get_str.c + mpn/generic/sizeinbase.c mpq/get_str.c mpz/inp_str.c mpz/out_str.c + mpz/set_str.c printf/doprntf.c tune/speed.h tune/tuneup.c: + Use new macros. + +2011-08-04 Torbjorn Granlund + + * dumbmp.c (mpz_root): Reinsert accidentally removed line. + +2011-08-03 Torbjorn Granlund + + * dumbmp.c (mpz_tdiv_qr): Correctly handle dividend value being equal + to divisor value. + (mpz_root): Create reasonable starting approximation. + (mpz_sqrt): New function. + (mpz_mul_2exp): Add faster block shifting code, disabled for now. + +2011-07-15 Torbjorn Granlund + + * mpn/arm/invert_limb.asm: Swap around some registers to silence 'as' + warnings. + +2011-07-14 Torbjorn Granlund + + * mpn/generic/dcpi1_bdiv_q.c (mpn_dcpi1_bdiv_q): Get mpn_sub_1 size + argument right. + +2011-07-04 Torbjorn Granlund + + * tests/misc/t-locale.c: Disable test for mingw. + + * configure.in (x86_64 *-*-mingw*): Handle also cygwin here; clear out + extra_functions_64. + +2011-07-02 Torbjorn Granlund + + * config.guess: Don't print newline in x86 cpuid function. + Rewrite x86-64 cpu recognition asm code to work under Windoze. + +2011-06-16 Torbjorn Granlund + + * acinclude.m4 (GMP_ASM_RODATA): Fix typo in 2011-04-20 change. + + * configure.in: Surround tr ranges with [] for portability. + +2011-05-25 Niels Möller + + * tune/tune-gcd-p.c (search): New function to search for minimum. + (main): Replaced slow linear search. + +2011-05-24 Niels Möller + + * tune/Makefile.am (EXTRA_PROGRAMS): Added tune-gcd-p. Also added + related automake variables. + + * mpn/Makefile.am (tune-gcd-p): Deleted target. + + * tune/tune-gcd-p.c: New file, extracted from mpn/generic/gcd.c + and updated. + * mpn/generic/gcd.c: Deleted the corresponding code, including + main function. + +2011-05-23 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): Simplified by swapping operands when + needed, to get asize >= bsize. Use the reciprocity law generalized + to work when one operand is even. + +2011-05-22 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): Another bugfix for the asize == 1 + case. Sometimes, powers of two in b were taken into account twice. + +2011-05-21 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): The handling of asize == 1 was + broken. Rewrote it. + + * tests/mpz/t-jac.c (mpz_nextprime_step): Sanity check that prime + candidate and step has no common factor. + (check_data): Added some test cases related to the asize == 1 case + in mpz_jacobi. + +2011-05-20 Niels Möller + + * gmp-impl.h: Jacobi-related prototypes. + + * configure.in (gmp_mpn_functions): Added jacobi_2, jacobi, + hgcd2_jacobi, hgcd_jacobi, and removed jacobi_lehmer. + + * mpz/jacobi.c (STRIP_TWOS): Deleted macro. + (mpz_jacobi): Partially rewritten, to no longer makes the A + operand odd. Use new mpn_jacobi_n. + + * mpn/generic/jacobi_lehmer.c: Deleted file. + + * mpn/generic/jacobi.c (mpn_jacobi_n): New subquadratic jacobi + implementation. Supersedes jacobi_lehmer.c. + + * mpn/generic/hgcd_jacobi.c (mpn_hgcd_jacobi): New file and + function. A copy of mpn_hgcd, using mpn_hgcd2_jacobi, and with calls to + mpn_jacobi_update when appropriate. + + * mpn/generic/jacobi_2.c (mpn_jacobi_2): New file. Extracted from + jacobi_lehmer.c. + * mpn/generic/hgcd2_jacobi.c (mpn_hgcd2_jacobi): Likewise. + + * mpn/generic/hgcd.c (hgcd_hook): Avoid using NULL. + +2011-05-19 Niels Möller + + * tune/hgcd_lehmer.c (__gmpn_hgcd_itch): Don't rename symbols for + the functions moved to hgcd_matrix.c. + + * configure.in (gmp_mpn_functions): Added hgcd_matrix. + + * mpn/generic/hgcd.c (hgcd_matrix_update_1): Deleted. Several other + helper functions moved to hgcd_matrix.c, see below. + (hgcd_hook): New function. + (hgcd_step): Simplified, using mpn_gcd_subdiv_step and hgcd_hook. + + * mpn/generic/hgcd_matrix.c: New file. + (mpn_hgcd_matrix_init): Moved here, from hgcd.c. + (mpn_hgcd_matrix_update_q): Likewise. + (mpn_hgcd_matrix_mul_1): Likewise. + (mpn_hgcd_matrix_mul): Likewise. + (mpn_hgcd_matrix_adjust): Likewise. + + * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): New + argument s, for use by hgcd. + * gmp-impl.h (mpn_gcd_subdiv_step): Update declaration. + + * mpn/generic/gcd.c (mpn_gcd): Pass s = 0 to mpn_gcd_subdiv_step. + * mpn/generic/gcdext.c (mpn_gcdext): Likewise. Also added an ASSERT. + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise. + (mpn_gcdext_hook): Added some ASSERTs. + * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): Likewise. + +2011-05-17 Niels Möller + + * doc/gmp.texi (mpn_gcd, mpn_gcdext): Document input requirements: + Must have un >= vn > 0, and V normalized. + * mpn/generic/gcdext.c (mpn_gcdext): Added ASSERT for input + normalization. + * mpn/generic/gcd.c (mpn_gcd): Added ASSERTs for input + requirements. + +2011-05-15 Marc Glisse + + * gmpxx.h (operator<<): Dedup. + * tests/cxx/t-iostream.cc: Test on compound types. + + * gmpxx.h (__gmp_binary_expr): Let things happen in place: c=(a+b)/2. + +2011-05-10 Marc Glisse + + * gmpxx.h (__gmp_unary_expr): Let things happen in place: c=-(a+b). + (operator>>): Clean the commenting out. + * tests/cxx/t-iostream.cc: New file. + * tests/cxx/Makefile.am: Added t-iostream. + +2011-05-10 Niels Möller + + * doc/gmp.texi (mpz_gcd): Document that gcd(0,0) = 0. + (mpz_gcdext): Document range for cofactors. + +2011-05-09 Niels Möller + + * mpz/gcdext.c (mpz_gcdext): Increased sp allocation to bsize+1 limbs. + * doc/gmp.texi (mpn_gcdext): Fixed documentation of allocation + requirements; one extra limb is still needed for S. + +2011-05-09 Torbjorn Granlund + + * mpn/x86/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define. + * mpn/x86_64/fat/gmp-mparam.h (BMOD_1_TO_MOD_1_THRESHOLD): Define. + +2011-05-08 Marc Glisse + + * gmpxx.h: Replace unsigned long with mp_bitcnt_t in many places. + * doc/gmp.texi: Likewise. + +2011-05-06 Marc Glisse + + * gmpxx.h (mpz_class): Make constructor from mp[qf]_class explicit. + (mpq_class): Make constructor from mpf_class explicit. + * doc/gmp.texi: Document the above. + * NEWS: Likewise, and mention the EOF istream fix. + * tests/cxx/t-mix.cc: New file. + * tests/cxx/Makefile.am: Added t-mix. + + * tests/cxx/t-assign.cc: Minor tweak. + * tests/cxx/t-misc.cc: Likewise. + + * gmpxx.h (__gmp_resolve_temp): Remove. + (__gmp_set_expr): Remove some overloads. + (mpq_class): mpz_init_set the numerator and denominator instead of + mpq_init + mpq_set. + (mpz_class): Dedup the string constructors. + (mpq_class): Likewise. + + * tests/cxx/t-ops3.cc: New file. + * tests/cxx/Makefile.am: Added t-ops3. + +2011-05-05 Torbjorn Granlund + + * mpz/gcdext.c: Correct sgn computation. + Use MPZ_REALLOC. + +2011-05-05 Marc Glisse + + * mpn/x86_64/fat/fat.c: Update for Sandy Bridge. + * config.guess: warning to keep it in sync with fat.c. + +2011-05-05 Torbjorn Granlund + + * mpn/x86_64/fat/fat_entry.asm (PIC_OR_DARWIN): New symbol. Use it to + work around Darwin problems. + +2011-05-04 Niels Möller + + * mpz/gcdext.c (mpz_gcdext): Reduced temporary allocations. Use + mpz_divexact when computing the second cofactor. + +2011-05-03 David Harvey + + * configure.in: make invert_limb_table work correctly with + --disable-assembly (from Niels Möller) + +2011-05-02 Marc Glisse + + * .bootstrap: libtoolize doesn't need -c. + + * configfsf.guess: Update to version of 2011-02-02. + * configfsf.sub: Update to version of 2011-03-23. + +2011-05-02 Niels Möller + + * mpz/gcdext.c (mpz_gcdext): Don't allocate extra limbs at the end + of mpn_gcdext parameters. + + * doc/gmp.texi (mpn_gcdext): Updated doc. + +2011-05-01 Niels Möller + + * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Fixed ASSERT. + +2011-04-30 Marc Glisse + + * gmp-h.in (mpz_cdiv_q_2exp): Use mp_bitcnt_t to match the definition + and the documentation. + (mpz_remove): Likewise. + (mpf_eq): Likewise. + + * ltmain.sh: Remove. + * .bootstrap: Let libtoolize generate ltmain.sh. + + * tests/cxx/t-ops2.cc: Add a couple tests. + * tests/cxx/t-rand.cc: Likewise. + + * doc/gmp.texi (mpf_urandomb): Explicit the fact that it does not + change the precision. + + * gmp-h.in (__GMP_EXTERN_INLINE): Recent g++ uses gnu_inline. + +2011-04-28 Torbjorn Granlund + + * configure.in (x86_64): Support bobcat specifically. + (x86): Match bobcat and bulldozer, handle like k10. + +2011-04-28 David Harvey + + * README.HG: update autotools version numbers. + +2011-04-27 Torbjorn Granlund + + * tune/speed.h (speed_cyclecounter): Always use PIC variant when + compiled with Apple's GCC. + + * mpn/x86/darwin.m4 (LEA): Complete rewrite. + (m4append): New macro. + +2011-04-26 Torbjorn Granlund + + * mpn/sparc32/sparc-defs.m4 (changecom): Don't redefine '!' as it + interferes with expressions. + +2011-04-20 Torbjorn Granlund + + * acinclude.m4 (GMP_ASM_RODATA): Make 'foo' larger to avoid clang + problems. + +2011-04-12 Niels Möller + + * mpn/x86_64/invert_limb.asm [PIC]: Declare mpn_invert_limb_table + as .protected. + +2011-04-11 Torbjorn Granlund + + * mpn/x86/k7/invert_limb.asm: Use deflit for Darwin bug workaround. + Undo 2011-03-28 change. + + * mpn/asm-defs.m4 (define_mpn): Use deflit. + +2011-04-10 Niels Möller + + * mpn/asm-defs.m4 (define_mpn): Added invert_limb_table. + + * configure.in: Add invert_limb_table to extra_functions_64 on + x86_64. + + * mpn/x86_64/invert_limb.asm: Changed references from approx_tab + mpn_invert_limb_table. + + * mpn/x86_64/invert_limb_table.asm (mpn_invert_limb_table): New + file. Extracted approximation table from invert_limb.asm, renamed + and made global. + +2011-03-30 Niels Möller + + * mpn/x86_64/div_qr_2u_pi1.asm: New file. + + * configure.in (gmp_mpn_functions): Add div_qr_2u_pi1. + + * gmp-impl.h (mpn_div_qr_2u_pi1): Declare. + + * mpn/generic/div_qr_2u_pi1.c (mpn_div_qr_2u_pi1): Moved to + separate file, from... + * mpn/generic/div_qr_2.c: ... old location. + + * mpn/generic/div_qr_2n_pi1.c: Renamed file, from... + * mpn/generic/div_qr_2_pi1_norm.c: ...old name. + * mpn/x86_64/div_qr_2n_pi1.asm: Renamed file, from... + * mpn/x86_64/div_qr_2_pi1_norm.asm: ...old name. + + * gmp-impl.h (mpn_div_qr_2n_pi1): Use new name in declaration. + * tune/speed.h (speed_mpn_div_qr_2n): Likewise. + (speed_mpn_div_qr_2u): Likewise. + + * tune/tuneup.c (tune_div_qr_2): Use new name speed_mpn_div_qr_2n. + + * tune/speed.c (routine): Use new names mpn_div_qr_2n and + mpn_div_qr_2u, also on the command line. + + * tune/common.c (speed_mpn_div_qr_2n): Renamed, from... + (speed_mpn_div_qr_2_norm): ... old name. + (speed_mpn_div_qr_2u): Renamed, from... + (speed_mpn_div_qr_2_unnorm): ... old name. + + * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2n_pi1): Renamed, + from... + (mpn_div_qr_2_pi1_norm): ...old name. + * mpn/x86_64/div_qr_2_pi1_norm.asm: Likewise. + + * mpn/generic/div_qr_2.c (mpn_div_qr_2n_pi2): Renamed, from... + (mpn_div_qr_2_pi2_norm): ... old name. + (mpn_div_qr_2u_pi1): Renamed, from... + (mpn_div_qr_2_pi1_unnorm): ... old name. + (mpn_div_qr_2): Call functions using new names. + + * mpn/asm-defs.m4: Renamed div_qr_2-functions to new names. + +2011-03-29 Niels Möller + + * mpn/x86_64/div_qr_2_pi1_norm.asm: Updated to use a separate rp + argument. + + * gmp-impl.h (mpn_div_qr_2_pi1_norm): Updated declaration. + * gmp-h.in (mpn_div_qr_2): Likewise. + + * tests/mpn/t-div.c (main): Adapted to new mpn_div_qr2 interface. + * tune/speed.h (SPEED_ROUTINE_MPN_DIV_QR_2): Likewise. + + * mpn/generic/div_qr_2.c (mpn_div_qr_2_pi2_norm): Added rp + argument. Don't clobber the input dividend. + (mpn_div_qr_2_pi1_unnorm): Likewise. + (mpn_div_qr_2): Likewise. + * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Likewise. + +2011-03-29 Niels Möller + + * mpn/x86/k7/invert_limb.asm: Use mov rather than push and pop. + Earlier load of divisor from stack. + +2011-03-28 Torbjorn Granlund + + * mpn/x86/k7/invert_limb.asm: Protect movzwl register parameters from + being interpreted as m4 macro parameters. + +2011-03-22 Niels Möller + + * mpn/x86_64/div_qr_2_pi1_norm.asm: Copied optimized inner loop + from divrem_2.asm. + + * mpn/x86_64/div_qr_2_pi1_norm.asm: First working, but poorly + optimized, implementation. + + * mpn/asm-defs.m4 (define_mpn): Added div_qr_2_pi[12]_*norm. + + * mpn/generic/div_qr_2_pi1_norm.c (mpn_div_qr_2_pi1_norm): Moved + to separate file, from... + * mpn/generic/div_qr_2.c: ... old location. + + * gmp-impl.h (mpn_div_qr_2_pi1_norm): Declare. + + * configure.in (gmp_mpn_functions): Added div_qr_2_pi1_norm. + +2011-03-22 Torbjorn Granlund + + * configure.in (powerpc): Reinsert lost AIX cpu_path 32-bit handling. + Reinsert lost linux/bsd cpu_path handling. + + * mpn/generic/mod_1_1.c: Disable powerpc asm for _LONG_LONG_LIMB. + * mpn/generic/div_qr_2.c: Likewise. + + * mpn/generic/div_qr_2.c: Use asm just for gcc. + Make powerpc add_sssaaaa work for 32-bit case, and use less strict + constraints. + +2011-03-21 Niels Möller + + * tune/tuneup.c (div_qr_2_pi2_threshold): New global variable. + (tune_div_qr_2): New function. + (all): Call tune_div_qr_2. + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added div_qr_2.c. + + * gmp-impl.h (DIV_QR_2_PI2_THRESHOLD): Setup for tuning. + + New 4/2 division loop, based on Torbjörn's work: + * mpn/generic/div_qr_2.c (add_sssaaaa, add_csaac): New macros. + (udiv_qr_4by2): New macro. + (invert_4by2): New function. + (mpn_div_qr_2_pi2_norm): New function. + (DIV_QR_2_PI2_THRESHOLD): New threshold. + (mpn_div_qr_2_pi1_norm): Renamed, from... + (mpn_div_qr_2_norm): ... old name. + (mpn_div_qr_2_pi1_unnorm): Renamed, from... + (mpn_div_qr_2_unnorm): ... old name. + (mpn_div_qr_2): Use mpn_div_qr_2_pi2_norm for large enough + normalized divisors. + + * gmp-impl.h (udiv_qr_3by2): Avoid a copy. + +2011-03-21 Torbjorn Granlund + + * configure.in (hppa): Under linux, treat 64-bit processors as if they + were 32-bit processors. + + * mpn/generic/addcnd_n.c: New file. + * mpn/asm-defs.m4 (define_mpn): Add addcnd_n and subcnd_n. + * configure.in (gmp_mpn_functions): Add addcnd_n. + * gmp-impl.h (mpn_addcnd_n): Declare. + + * mpn/generic/subcnd_n.c: Combine nails and non-nails functions. + + * gmp-impl.h (invert_pi1): Prepend _ to local variables, protect + parameters within () where necessary. + + * mpn/asm-defs.m4 (define_mpn): Add div_qr_2. + * configure.in (gmp_mpn_functions): Reinsert mercurial-bug-removed + line. + +2011-03-20 Torbjorn Granlund + + * configure.in (powerpc): Add cpu_path for all three ABIs. + Rename "aix64" to "mode64" for consistency. + +2011-03-16 Marc Glisse + + * gmpxx.h (__gmp_binary_not_equal): Remove, use !__gmp_binary_equal. + (__gmp_binary_less_equal): Remove, use !__gmp_binary_greater. + (__gmp_binary_greater_equal): Remove, use !__gmp_binary_less. + * tests/cxx/t-ops2.cc: Typo. + +2011-03-20 Niels Möller + + * tune/common.c (speed_mpn_div_qr_2_norm): New function. + (speed_mpn_div_qr_2_unnorm): New function. + * tune/speed.c (routine): Recognize above functions. + * tune/speed.h: Declarations for above functions. + (SPEED_ROUTINE_MPN_DIV_QR_2): New macro. + + * tests/mpn/t-div.c (main): Added tests for mpn_divrem_2 and + mpn_div_qr_2. + + * mpn/generic/div_qr_2.c (mpn_div_qr_2): New file and function. + Intended to eventually replace divrem_2. + * configure.in (gmp_mpn_functions): Add div_qr_2. + +2011-03-16 Marc Glisse + + * gmpxx.h (__gmp_set_expr): Remove broken declarations. + +2011-03-19 Torbjorn Granlund + + * mpz/fac_ui.c (mpz_fac_ui): Use MPZ_REALLOC for standard, conditional + reallocation. + +2011-03-19 Niels Möller + + * mpn/generic/divrem_2.c (mpn_divrem_2): Fixed comment and assert + regarding q and n overlap. + +2011-03-16 Marc Glisse + + * gmpxx.h (__mpz_set_ui_safe): New inline function. + (__mpz_set_si_safe): Likewise. + (__GMPXX_TMPZ_UI): Use the new function. + (__GMPXX_TMPZ_SI): Likewise. + (__GMPXX_TMPQ_UI): Likewise. + (__GMPXX_TMPQ_SI): Likewise. + * tests/cxx/t-ops2.cc: test converting 0 to stack mpq_t. + +2011-03-15 Marc Glisse + + * gmpxx.h (__GMPXX_TMPQ_UI): New macro. + (__GMPXX_TMPQ_SI): New macro. + (struct __gmp_binary_multiplies): Rewrite, using the new macros. + (struct __gmp_binary_divides): Likewise. + + * gmpxx.h (__GMPZ_ULI_LIMBS): Rewrite. + * tests/cxx/t-ops2.cc: test converting ULONG_MIN to stack mpq_t. + +2011-03-15 Marco Bodrato + + * mpn/generic/toom_interpolate_16pts.c: Remove ambiguity. + +2011-03-14 Torbjorn Granlund + + * tune/tuneup.c (tune_mul): Set tuning min size considering print skew. + + * doc/gmp.texi: Make reference to "Formatted I/O" chapters from type + specific I/O sections. + + * mpn/alpha/add_n.asm: Add _nc entry point. + * mpn/alpha/sub_n.asm: Likewise. + * mpn/mips64/add_n.asm: Likewise. + * mpn/mips64/sub_n.asm: Likewise. + * mpn/sparc64/ultrasparc1234/add_n.asm: Likewise. + * mpn/sparc64/ultrasparc1234/sub_n: Likewise. + +2011-03-13 Marc Glisse + + * tests/cxx/t-ops2.cc: New file. + * tests/cxx/Makefile.am: Added t-ops2. + +2011-03-13 Torbjorn Granlund + + * mpn/generic/toom32_mul.c (mpn_toom32_mul): Make 'hi' be limb-sized + for better code. + + * gmp-impl.h (MPN_IORD_U): Handle x86_64 as well as x86_32. Generate + no code for incrementing by constant 0. + +2011-03-12 Marc Glisse + + * gmpxx.h: Rename __GMPXX_TMP_* to __GMPXX_TMPZ_*. Use in more places. + +2011-03-12 Torbjorn Granlund + + * mpn/powerpc64/rshift.asm: Accept/return values correctly also for + 32-bit ABI. + * mpn/powerpc64/lshift.asm: Likewise. + + * tune/powerpc.asm: Use powerpc syntax, not power syntax. + + * tune/common.c (speed_udiv_qrnnd_preinv1, etc): Remove. + * tune/speed.c (routine): Remove udiv_qrnnd_preinv1, etc. + +2011-03-12 Marc Glisse + + * tests/cxx/t-istream.cc: Restrict mpq test in t-istream -s. + + * gmpxx.h: Remove leftover #undefs. + +2011-03-11 Torbjorn Granlund + + * gmp-impl.h (udiv_qrnnd_preinv1, udiv_qrnnd_preinv2, + udiv_qrnnd_preinv2gen): Remove obsolete macros. + (udiv_qrnnd_preinv): New name for udiv_qrnnd_preinv3. + +2011-03-11 Marco Bodrato + + * gmp-impl.h: Declare many mpn_{sub,add}lsh*_n_ip[12] functions/macros. + * mpn/generic/toom_interpolate_5pts.c: Use mpn_sublsh1_n_ip1. + + * tests/devel/try.c: Tests for {add,sub}lsh*_n_ip[12]. + * tests/refmpn.c: New reference for mpn_{add,sub}lsh*_n_ip[12]. + * tests/tests.h: Declarations for reference functions above. + + * tune/common.c: New speed_mpn_{add,sub}lsh*_n_ip[12] functions. + * tune/speed.h: Prototypes for functions above. + * tune/speed.c: Support for mpn_{add,sub}lsh*_n_ip[12]. + + * mpn/x86/k7/sublsh1_n.asm: Replaced generic sublsh1 code with faster _ip1. + * mpn/x86/atom/sublsh1_n.asm: Changed PROLOGUE accordingly. + + * configure.in: Define HAVE_NATIVE_mpn_addlsh*_n*_ip[12]. + * mpn/asm-defs.m4: Declare mpn_addlsh*_n*_ip[12]. + +2011-03-10 Marc Glisse + + * tests/cxx/t-istream.cc: Explicit conversion to streampos. + +2011-03-10 Torbjorn Granlund + + * mpn/x86/atom/sse2/mul_basecase.asm: Suppress wind-down rp updates. + + * Move new aorrlsh_n.asm to new k8 dir. Revert + mpn/x86_64/aorrlsh_n.asm. + * configure.in: Setup path for new k8 directory. + +2011-03-10 Marco Bodrato + + * mpn/x86/pentium4/sse2/bdiv_dbm1c.asm: New file, was in atom. + * mpn/x86/atom/sse2/bdiv_dbm1c.asm: Grab file above. + +2011-03-09 Torbjorn Granlund + + * mpn/x86_64/aorrlsh_n.asm: Complete rewrite. + + * mpn/x86_64/core2/aorrlsh_n.asm: New file, grabbing another asm file. + +2011-03-09 Marc Glisse + + * tests/cxx/t-ostream.cc: Use bool instead of int. + * tests/cxx/t-istream.cc: Likewise. + * tests/cxx/t-misc.cc: Likewise. + + * cxx/ismpznw.cc: Don't clear eofbit. + * cxx/ismpq.cc: Likewise. + * cxx/ismpf.cc: Likewise. + * tests/cxx/t-istream.cc: Test accordingly. + +2011-03-09 Marco Bodrato + + * mpn/x86/atom/sse2/bdiv_dbm1c.asm: New file. + +2011-03-09 Marc Glisse + + * doc/gmp.texi: Remove void return type from constructors. Document + explicit constructors. Document mpf_class::mpf_class(mpf_t). + +2011-03-07 Marco Bodrato + + * mpn/x86/atom/sse2/sqr_basecase.asm: Postponed pushes. Cleaned + outer loop exit. + +2011-03-07 Torbjorn Granlund + + * mpn/x86_64/gcd_1.asm: Workaround Oracle assembler bug. + + * mpn/x86/atom/sse2/mul_basecase.asm: Replace addmul_1 loops. + Tweak outer loop rp updates. + +2011-03-06 Torbjorn Granlund + + * mpn/x86/atom/sse2/sqr_basecase.asm: New file. + +2011-03-05 Torbjorn Granlund + + * mpn/x86_64/bdiv_dbm1c.asm: Write proper feed-in code. + +2011-03-04 Torbjorn Granlund + + * mpn/x86_64/addmul_2.asm: Rewrite for linear performance. + +2011-03-03 Torbjorn Granlund + + * mpn/generic/mod_1_1.c (add_mssaaaa): Canonicalise layout. Add arm + variant. Enable sparc64 code and powerpc code (the latter for 32-bit + and 64-bit). + + * mpn/generic/sqrtrem.c (mpn_dc_sqrtrem): Use mpn_addlsh1_n. + + * gmp-impl.h (mpn_addlsh_nc, mpn_rsblsh_nc): Declare. + * mpn/asm-defs.m4: Likewise. + + * mpn/x86_64/coreisbr/aorrlsh_n.asm: Disable mpn_rsblsh_n due to + carry-in issues. + * mpn/x86_64/coreinhm/aorrlsh_n.asm: Likewise. + * mpn/x86_64/coreisbr/aorrlsh2_n.asm: Likewise. + +2011-03-03 Niels Möller + + * mpn/generic/mod_1_1.c (add_mssaaaa): For x86 and x86_64, treat m + as in output operand only. Added sparc32 implementation. Also + added #if:ed out attempts at sparc64 and powerpc64. + + * tune/tuneup.c (tune_mod_1): Record result of MOD_1_1P_METHOD + measurement for use by mpn_mod_1_tune. And omit measurement if + mpn_mod_1_1p is native assembly code. + + * mpn/generic/mod_1.c (mpn_mod_1_1p) [TUNE_PROGRAM_BUILD]: Macro + to check mod_1_1p_method and call the right function. + (mpn_mod_1_1p_cps) [TUNE_PROGRAM_BUILD]: Likewise. + + * gmp-impl.h (MOD_1_1P_METHOD) [TUNE_PROGRAM_BUILD]: Define macro. + (mod_1_1p_method) [TUNE_PROGRAM_BUILD]: Declare variable. + +2011-03-02 Torbjorn Granlund + + * mpn/x86_64/coreinhm/aorrlsh_n.asm: New file. + * mpn/x86_64/coreisbr/aorrlsh_n.asm: New file. + +2011-03-01 Niels Möller + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Eliminated a neg and + two mov instructions. + + * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified + computation, analogous to recent x86_64/mod_1_1.asm changes. + (mpn_mod_1_1p): Corresponding changes. Don't shift b. + + * mpn/sparc64/mod_1_4.c (mpn_mod_1s_4p_cps): Use udiv_rnnd_preinv + rather than udiv_rnd_preinv. + (mpn_mod_1s_4p): Likewise. + +2011-03-01 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/mul_1.asm: Swap entry insns to share more code + between entry points. + * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise. + + * mpz/divegcd.c: Rewrite, as per Marc Glisse's suggestion. Also fix + problem with passing a longlong limb to a _ui function. + + * gmp-impl.h (udiv_qrnnd_preinv3): Cast truth value to mask's type. + (udiv_rnnd_preinv): Likewise. + * mpn/generic/mod_1_1.c (mpn_mod_1_1p): Likewise. + +2011-02-28 Niels Möller + + * mpn/generic/mod_1_1.c (add_mssaaaa): Typo fix, define + add_mssaaaa, not add_sssaaaa. + + * tune/tuneup.c (tune_mod_1): Measure mpn_mod_1_1_1 and + mpn_mod_1_1_2, to set MOD_1_1P_METHOD. + + * tune/speed.c (routine): Added mpn_mod_1_1_1 and mpn_mod_1_1_2. + + * tune/speed.h: Declare speed_mpn_mod_1_1_1, speed_mpn_mod_1_1_2, + mpn_mod_1_1p_1, mpn_mod_1_1p_2, mpn_mod_1_1p_cps_1, and + mpn_mod_1_1p_cps_2. + + * tune/common.c (speed_mpn_mod_1_1_1): New function. + (speed_mpn_mod_1_1_2): New function. + + * tune/Makefile.am (libspeed_la_SOURCES): Added mod_1_1-1.c + mod_1_1-2.c. + + * tune/mod_1_1-1.c: New file. + * tune/mod_1_1-2.c: New file. + + * mpn/generic/mod_1_1.c: Implemented an algorithm with fewer + multiplications, configured via MOD_1_1P_METHOD. + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Simplified + computation of B2modb, use B^2 mod (normalized b). + (mpn_mod_1_1p): Corresponding changes. Don't shift b. + + * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Use udiv_rnnd_preinv rather + than udiv_rnd_preinv. + (mpn_mod_1_1p): Likewise. + * mpn/generic/mod_1_4.c: Analogous changes. + * mpn/generic/mod_1_3.c: Analogous changes. + * mpn/generic/mod_1_2.c: Analogous changes. + * mpn/generic/mod_1.c: Analogous changes. + * mpn/generic/pre_mod_1.c: Analogous changes. + + * gmp-impl.h (udiv_qrnnd_preinv3): Eliminated unpredictable branch + using masking logic. Further optimization of the nl == constant 0 + case, similar to udiv_rnd_preinv. + (udiv_rnnd_preinv): Likewise. + (udiv_rnd_preinv): Deleted, use udiv_rnnd_preinv with nl == 0 + instead. + + * tests/mpn/t-divrem_1.c (check_data): Added testcase to exercise + the nl == constant 0 special case in udiv_qrnnd_preinv3. + +2011-02-28 Torbjorn Granlund + + * mpn/generic/rootrem.c (mpn_rootrem): Combine two similar scalar + divisions. Misc minor cleanup. + + * mpn/x86/atom/sse2/aorsmul_1.asm: Shorten software pipeline. + + * mpn/x86/atom/mul_basecase.asm: Remove file no longer used. + + * mpn/generic/rootrem.c (mpn_rootrem_internal): Delay O(log(U)) + allocations until they are known to be needed. + +2011-02-27 Marco Bodrato + + * mpn/x86/atom/sse2/mul_1.asm: New code. + +2011-02-27 Niels Möller + + * gmp-impl.h (udiv_rnnd_preinv): New macro. + +2011-02-27 Torbjorn Granlund + + * mpn/x86/atom/sse2/mul_basecase.asm: New file. + +2011-02-26 Marco Bodrato + + * mpn/x86/atom/sse2/aorsmul_1.asm: Optimise non-loop code. + +2011-02-26 Torbjorn Granlund + + * mpn/powerpc64/mode64/aorsmul_1.asm: Add MULFUNC_PROLOGUE. + * mpn/m68k/mc68020/aorsmul_1.asm: Likewise. + + * mpn/powerpc64/mode64/aorsmul_1.asm: Add missing MULFUNC_PROLOGUE. + * mpn/m68k/mc68020/aorsmul_1.asm: Likewise. + +2011-02-25 Torbjorn Granlund + + * mpn/x86/atom/sse2/aorsmul_1.asm: New file. + * mpn/x86/atom/aorsmul_1.asm: File removed. + +2011-02-25 Marco Bodrato + + * mpn/x86/atom/sse2/divrem_1.asm: New file (was in x86/atom). + * mpn/x86/atom/sse2/mul_1.asm: Likewise. + * mpn/x86/atom/sse2/popcount.asm: Likewise. + * mpn/x86/atom/divrem_1.asm: ReMoved (in sse2/ now). + * mpn/x86/atom/mul_1.asm: Likewise. + * mpn/x86/atom/popcount.asm: Likewise. + + * configure.in: Set up mmx path for atom. + * mpn/x86/atom/mmx/copyd.asm: New file (was in x86/atom). + * mpn/x86/atom/mmx/copyi.asm: Likewise. + * mpn/x86/atom/mmx/hamdist.asm: Likewise. + * mpn/x86/atom/copyd.asm: ReMoved (in mmx/ now). + * mpn/x86/atom/copyi.asm: Likewise. + * mpn/x86/atom/hamdist.asm: Likewise. + +2011-02-24 Torbjorn Granlund + + * mpn/x86/atom/sse2/mod_1_1.asm: New file. + * mpn/x86/atom/sse2/mod_1_4.asm: New file. + * configure.in: Set up sse2 path for atom. + + * mpn/x86/p6/sse2/mod_1_1.asm: New file. + * mpn/x86/p6/sse2/mod_1_4.asm: Fix typo in MULFUNC_PROLOGUE. + +2011-02-24 Niels Möller + + * mpn/x86/k7/mod_1_1.asm (mpn_mod_1_1p): Rewrite using the same + algorithm as the x86_64 version. + +2011-02-23 Marco Bodrato + + * mpn/x86/atom/logops_n.asm: New file (same loop as aors_n). + +2011-02-23 Niels Möller + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Shaved off one + instruction and one register in the inner loop. Rearranged + registers slightly, and no longer needs the callee-save register + %r12. + +2011-02-22 Torbjorn Granlund + + * configure.in: Export SHLD_SLOW and SHRD_SLOW to config.m4, also + fixing typo in exporting code. + + * mpn/x86_64/nano/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define. + * mpn/x86_64/atom/gmp-mparam.h (SHLD_SLOW, SHRD_SLOW): Define. + +2011-02-22 Niels Möller + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Rewrite. + +2011-02-22 Marco Bodrato + + * mpn/x86/atom/lshiftc.asm: New file (a copy of lshift.asm with a handful of neg added). + +2011-02-21 Torbjorn Granlund + + * mpn/x86/aors_n.asm: Move _nc entry to after main code. Align loop + and _n entry for claimed performance. Normalise mnemonic usage. + + * mpn/x86/atom/aorrlsh1_n.asm: New file (code from rsblsh_1, slightly + slower for addlsh_1 for large operands, but much faster for small). + * mpn/x86/atom/addlsh1_n.asm: Remove. + * mpn/x86/atom/rsblsh1_n.asm: Remove. + +2011-02-20 Marc Glisse + + * mpq/aors.c: Rewrite to remove redundant division. + +2011-02-20 Torbjorn Granlund + + * mpn/x86/atom/lshift.asm: New file. + * mpn/x86/atom/rshift.asm: Normalise mnemonic usage. + + * gmp-impl.h (mpn_divexact_by7): Relax inclusion condition. + + * mpz/divegcd.c (mpz_divexact_by5): New conditionally enabled function. + (mpz_divexact_by3): Wrap inside appropriate conditions. + (mpz_divexact_gcd): Rewrite. + + * mpn/x86/bdiv_dbm1c.asm: Save a jump. + +2011-02-20 Marco Bodrato + + * mpn/x86/atom/aorslshC_n.asm: New file. + * mpn/x86/atom/sublsh2_n.asm: New file. + + * mpn/x86/atom/aors_n.asm: New code. + * mpn/x86/atom/rshift.asm: Atom64 code adapted to 32-bit. + * mpn/x86/atom/lshift.asm: Likewise. + +2011-02-19 Torbjorn Granlund + + * mpn/x86_64/atom/rsh1aors_n.asm: New file. + + * mpn/x86_64/atom/lshift.asm: New file. + * mpn/x86_64/atom/rshift.asm: New file. + * mpn/x86_64/atom/lshiftc.asm: New file. + +2011-02-17 Marco Bodrato + + * mpn/x86/atom/aorsmul_1.asm: Small improvements for small sizes. + * mpn/x86/atom/aorrlshC_n.asm: Tiny size improvements. + +2011-02-16 Torbjorn Granlund + + * configure.in: Fix k8/k10 32-bit path setup problem. + +2011-02-16 Marco Bodrato + + * mpn/x86/atom/aorsmul_1.asm: Revive an old k7/aorsmul. + +2011-02-14 Marco Bodrato + + * gmp-impl.h (mpn_sublsh_n): Declare. + * mpn/asm-defs.m4: Likewise. + + * mpn/x86/atom/aorrlshC_n.asm: New file (was k7). + * mpn/x86/k7/aorrlshC_n.asm: ReMoved. + * mpn/x86/atom/aorrlsh2_n.asm: Grab atom/aorrlshC_n.asm. + * mpn/x86/atom/rsblsh1_n.asm: Grab atom/aorrlshC_n.asm. + +2011-02-13 Torbjorn Granlund + + * mpn/x86_64/atom/aorrlsh2_n.asm: New file. + +2011-02-12 Torbjorn Granlund + + * mpn/x86_64/aorrlsh_n.asm: Minor tweaks, update c/l numbers. + + * mpn/x86_64/atom/sublsh1_n.asm: New file. + + * mpn/x86_64/atom/aorrlsh1_n.asm: New file. + +2011-02-11 Torbjorn Granlund + + * mpn/powerpc64/mode64/mod_1_1.asm: Fix Darwin syntax issues. + +2011-02-10 Torbjorn Granlund + + * mpn/powerpc64/mode64/mod_1_4.asm: Tune away a cycle for 970. + +2011-02-11 Marco Bodrato + + * mpn/x86/k7/addlsh1_n.asm: Faster core loop (Torbjorn's). + + * configure.in: Add HAVE_NATIVE_{add,sub,rsb}lsh{,1,2}_nc. + * tests/tests.h: refmpn_{add,sub,rsb}lsh{,1,2}_nc prototypes. + * tests/refmpn.c: New refmpn_{add,sub,rsb}lsh{,1,2}_nc. + * tests/devel/try.c: Tests for mpn_{add,sub,rsb}lsh{,1,2}_nc. + + * mpn/x86/k7/aorrlshC_n.asm: New file. + * mpn/x86/atom/aorrlsh2_n.asm: Grab k7/aorrlshC_n.asm. + * mpn/x86/atom/rsblsh1_n.asm: Grab k7/aorrlshC_n.asm. + +2011-02-06 Marco Bodrato + + * mpn/x86/k7/addlsh1_n.asm: New file. + * mpn/x86/k7/sublsh1_n.asm: New file. + * mpn/x86/atom/addlsh1_n.asm: Grab k7/addlsh1_n.asm. + * mpn/x86/atom/sublsh1_n.asm: Grab k7/sublsh1_n.asm. + +2011-02-05 Torbjorn Granlund + + * gmp-impl.h (mpn_addlsh1_nc, mpn_addlsh2_nc, mpn_sublsh1_nc, + mpn_sublsh2_nc, mpn_rsblsh1_nc, mpn_rsblsh2_nc): Declare. + * mpn/asm-defs.m4: Likewise. + + * mpn/x86_64/coreisbr/aorrlshC_n.asm: New file. + * mpn/x86_64/coreisbr/aorrlsh1_n.asm: New file. + * mpn/x86_64/coreisbr/aorrlsh2_n.asm: New file. + + * mpn/x86_64/coreisbr/aors_n.asm: New file, based on old + atom/aors_n.asm. + * mpn/x86_64/atom/aors_n.asm: Grab coreisbr/aors_n.asm. + +2011-02-05 Marco Bodrato + + * gmp-impl.h (mpn_toom6_mul_n_itch): Handle threshold == zero. + (mpn_toom8_mul_n_itch): Likewise. + (MPN_TOOM6H_MIN, MPN_TOOM8H_MIN): Define. + * tests/mpn/t-toom6h.c: No tests below MPN_TOOM6H_MIN. + * tests/mpn/t-toom8h.c: No tests below MPN_TOOM8H_MIN. + + * mpz/lucnum_ui.c: Use mpn_addlsh2_n. + +2011-02-04 Torbjorn Granlund + + * mpn/x86_64/atom/rsh1aors_n.asm: Add a MULFUNC_PROLOGUE. + * mpn/x86_64/atom/dive_1.asm: Likewise. + * mpn/x86_64/atom/popcount.asm: Likewise. + * mpn/x86_64/core2/popcount.asm: Likewise. + * mpn/x86_64/coreinhm/hamdist.asm: Likewise. + * mpn/x86_64/coreinhm/popcount.asm: Likewise. + * mpn/x86_64/nano/popcount.asm: Likewise. + * mpn/x86_64/pentium4/popcount.asm: Likewise. + +2011-02-04 Marco Bodrato + + * mpn/x86/atom/mode1o.asm: New file, grabbing another asm file. + * mpn/x86/atom/mul_1.asm: Claim mul_1c. + +2011-02-02 Niels Möller + + * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): Fixed one + speed_operand_dst call. + +2011-02-01 Torbjorn Granlund + + * tune/speed.h (struct speed_params): Allow for 4 dst operands. + * tune/common.c (TOLERANCE): Increase from 0.5% to 1%. + + * tune/speed.h (SPEED_ROUTINE_MPN_HGCD_CALL): New macro, mainly based + on old speed_mpn_hgcd, but with speed_operand_src calls (as suggested + by Niels). + * tune/common.c (speed_mpn_hgcd): Invoke SPEED_ROUTINE_MPN_HGCD_CALL. + (speed_mpn_hgcd_lehmer): Likewise. + + * configure.in: Set up 32-bit x86 paths for new corei* CPU strings. + +2011-01-31 Torbjorn Granlund + + * config.guess: Recognise new Intel processors. + + * config.guess: Support 'coreinhm' and 'coreisbr'. + * config.sub: Likewise. + * configure.in: Likewise. + +2011-01-30 Torbjorn Granlund + + * configure.in: Support x86/geode. + * mpn/x86/geode/gmp-mparam.h: New file. + +2011-01-29 Marco Bodrato + + * mpn/x86/atom/addlsh1_n.asm: Removed. + * mpn/x86/atom/rsh1add_n.asm: Likewise. + +2011-01-28 Torbjorn Granlund + + * mpn/alpha/ev6/slot.pl: Add some missing insns. + +2011-01-28 Marco Bodrato + + * mpn/x86/atom/copyd.asm: New file, grabbing another asm file. + * mpn/x86/atom/copyi.asm: Likewise. + * mpn/x86/atom/aors_n.asm: Likewise. + * mpn/x86/atom/addlsh1_n.asm: Likewise. + * mpn/x86/atom/aorsmul_1.asm: Likewise. + * mpn/x86/atom/bdiv_q_1.asm: Likewise. + * mpn/x86/atom/dive_1.asm: Likewise. + * mpn/x86/atom/divrem_1.asm: Likewise. + * mpn/x86/atom/hamdist.asm: Likewise. + * mpn/x86/atom/logops_n.asm: Likewise. + * mpn/x86/atom/lshift.asm: Likewise. + * mpn/x86/atom/mod_34lsub1.asm: Likewise. + * mpn/x86/atom/mul_1.asm: Likewise. + * mpn/x86/atom/mul_basecase.asm: Likewise. + * mpn/x86/atom/popcount.asm: Likewise. + * mpn/x86/atom/rsh1add_n.asm: Likewise. + * mpn/x86/atom/rshift.asm: Likewise. + * mpn/x86/atom/sqr_basecase.asm: Likewise. + +2011-01-27 Torbjorn Granlund + + * mpn/x86_64/atom/rsh1aors_n.asm: New file, grabbing another asm file. + * mpn/x86_64/atom/popcount.asm: Likewise. + * mpn/x86_64/atom/dive_1.asm: Likewise. + * mpn/x86_64/nano/popcount.asm: Likewise. + +2011-01-26 Torbjorn Granlund + + * mpn/alpha/invert_limb.asm: Complete rewrite. + +2011-01-25 Torbjorn Granlund + + * mpn/powerpc32/invert_limb.asm: New file. + +2011-01-25 Marco Bodrato + + * mpn/x86/pentium4/sse2/bdiv_q_1.asm: New file. + * mpn/x86/k7/bdiv_q_1.asm: New file. + +2011-01-24 Torbjorn Granlund + + * tune/tuneup.c (tune_mul_n, tune_sqr): Loop, re-measuring thresholds + until no tiny ranges remain. + +2011-01-23 Torbjorn Granlund + + * mpn/ia64/mul_2.asm: Tweak to 1.5 c/l, less overhead. + + * mpn/ia64/addmul_2.asm: Rewrite, adding mpn_addmul_2s entry point. + +2011-01-22 Torbjorn Granlund + + * mpn/ia64/aors_n.asm: Fix some incorrect bundle types. + + * mpn/ia64/sqr_diagonal.asm: Remove. + + * mpn/ia64/sqr_diag_addlsh1.asm: New file. + + * mpn/ia64/ia64-defs.m4: Define some shorter convenience mnemonics. + + * mpn/generic/sqr_basecase.c (MPN_SQR_DIAG_ADDLSH1): New macro, using + new function mpn_sqr_diag_addlsh1 or defining its equivalent. + + * gmp-impl.h (mpn_addmul_2s): Declare. + (mpn_sqr_diag_addlsh1): Declare. + * mpn/asm-defs.m4 (define_mpn): Add addmul_2s and sqr_diag_addlsh1. + + * configure.in: Add HAVE_NATIVEs for mpn_sqr_diag_addlsh1 and + mpn_addmul_2s. + (gmp_mpn_functions_optional): Add sqr_diag_addlsh1. + +2011-01-21 Marco Bodrato + + * tests/devel/try.c: Initial support for mpn_bdiv_q_1. + * mpn/x86/pentium/bdiv_q_1.asm: New file. + * mpn/x86/p6/bdiv_q_1.asm: New file. + +2011-01-20 Torbjorn Granlund + + * tune/speed.c (run_gnuplot): Update to current gnuplot syntax. + + * mpn/powerpc64/mode64/aorsmul_1.asm: Trim away 0.5 c/l for submul_1 + for POWER5. + +2011-01-19 Torbjorn Granlund + + * mpn/x86_64/core2/rsh1aors_n.asm: New file. + +2011-01-18 Marco Bodrato + + * mpn/x86/bdiv_q_1.asm: New file (same core alg. as dive_1). + +2011-01-15 Marco Bodrato + + * mpn/generic/divexact.c: Avoid COPY if not needed. + +2011-01-14 Torbjorn Granlund + + * gmp-impl.h (struct cpuvec_t): Add field bmod_1_to_mod_1_threshold. + * configure.in (fat_thresholds): Add BMOD_1_TO_MOD_1_THRESHOLD. + +2011-01-13 Marco Bodrato + + * mpz/mul.c: Remove redundant size computation. + +2011-01-08 Torbjorn Granlund + + * tests/devel/try.c (types enum): Add TYPE_MUL_5 and TYPE_MUL_6. + (param_init): Support new types. + (choice_array): Support testing of mpn_mul_5 and mpn_mul_6. + (call): Support new routines. + + * tests/refmpn.c (refmpn_mul_5, refmpn_mul_6): New functions. + * tests/tests.h (refmpn_mul_5, refmpn_mul_6): Declare. + Remove parameter names from some other functions. + + * gmp-impl.h (mpn_mul_5, mpn_mul_6): Declare. + * mpn/asm-defs.m4: Likewise, also declare mpn_addmul_5, mpn_addmul_6, + mpn_addmul_7, and mpn_addmul_8. + + * configure.in (gmp_mpn_functions_optional): Add mul_5 and mul_6. + + * tune/speed.c (routine): Add measuring of mpn_mul_5 and mpn_mul_6. + * tune/common.c (speed_mpn_mul_5, speed_mpn_mul_6): New functions. + * tune/speed.h: Declare new functions. + +2011-01-03 Marco Bodrato + + * mpz/aors.h: Remove #ifdef BERKELEY_MP, and cleanup. + * mpz/cmp.c: Likewise. + * mpz/gcd.c: Likewise. + * mpz/mul.c: Likewise. + * mpz/powm.c: Likewise. + * mpz/set.c: Likewise. + * mpz/sqrtrem.c: Likewise. + * mpz/tdiv_qr.c: Likewise. + +2010-12-28 Torbjorn Granlund + + * mpn/minithres/gmp-mparam.h: Update with several recent thresholds. + +2010-12-19 Torbjorn Granlund + + * mpn/x86/k7/mod_1_1.asm: Canonicalise cmov forms. + * mpn/x86/k7/mod_1_4.asm: Likewise. + * mpn/x86/pentium4/sse2/mod_1_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise. + * mpn/x86_64/core2/divrem_1.asm: Likewise. + * mpn/x86_64/divrem_1.asm: Likewise. + * mpn/x86_64/mod_1_1.asm: Likewise. + * mpn/x86_64/mod_1_2.asm: Likewise. + * mpn/x86_64/mod_1_4.asm: Likewise. + + * mpn/x86/k7/gcd_1.asm: Rewrite. Remove slow 'div' loop. Call + mpn_mod_1 for operands with mode than BMOD_1_TO_MOD_1_THRESHOLD limbs. + Misc cleanups. + +2010-12-18 Torbjorn Granlund + + * mpn/x86_64/gcd_1.asm: Call mpn_mod_1 for operands with mode than + BMOD_1_TO_MOD_1_THRESHOLD limbs. + + * configure.in: Generalise code for putting THRESHOLDs in config.m4. + Add BMOD_1_TO_MOD_1_THRESHOLD to list. + + * mpn/x86_64/core2/divrem_1.asm: Tweak slightly, correct cycle counts. + + * mpn/x86_64/addmul_2.asm: Remove constant index. + * mpn/x86_64/lshiftc.asm: Likewise. + * mpn/x86_64/pentium4/lshift.asm: Likewise. + * mpn/x86_64/pentium4/lshiftc.asm: Likewise. + * mpn/x86_64/pentium4/rshift.asm: Likewise. + +2010-12-16 Torbjorn Granlund + + * mpn/x86_64/mod_34lsub1.asm: Complete rewrite. + * mpn/x86_64/pentium4/mod_34lsub1.asm: New file, old + mpn/x86_64/mod_34lsub1.asm. + +2010-12-15 Torbjorn Granlund + + * mpn/powerpc64/vmx/popcount.asm: Rewrite to use vperm count table. + +2010-12-14 Torbjorn Granlund + + * mp-h.in: Remove. + * configure.in: Remove mp-h.in from AC_OUTPUT invocation. + +2010-12-13 Torbjorn Granlund + + * mpz/mod.c: Rewrite. + + * mpn/x86_64/corei/popcount.asm: New file. + * mpn/x86_64/corei/hamdist.asm: New file. + + * mpn/x86_64/k10/hamdist.asm: New file. + + * configure.in: Amend last change for lame /bin/sh. + +2010-12-12 Torbjorn Granlund + + * configure.in: Comment out M4=m4-not-needed. + + * mpn/x86_64/k10/popcount.asm: New file. + * configure.in: Setup special path for k10 and later AMD CPUs. + Remove special x86_64'k8' path, since directory is non-existent. + +2010-12-11 Torbjorn Granlund + + * mpn/sparc32/ultrasparct1: New directory. + * mpn/sparc32/ultrasparct1/add_n.asm: New file. + * mpn/sparc32/ultrasparct1/sub_n.asm: New file. + * mpn/sparc32/ultrasparct1/mul_1.asm: New file. + * mpn/sparc32/ultrasparct1/addmul_1.asm: New file. + * mpn/sparc32/ultrasparct1/submul_1.asm: New file. + * mpn/sparc32/ultrasparct1/sqr_diagonal.asm: New file. + + * config.guess: Support Ultrasparc T2 and T3. + * config.sub: Likewise. + * configure.in: Likewise. + + * config.guess: Generalise BSD Sparc recognition by allowing any + caps (needed for OpenBSD which spells things innovatively). + +2010-12-01 Torbjorn Granlund + + * config.guess: Match new AMD processors, allow finer distinctions + among old ones. + * acinclude.m4 (X86_64_PATTERN): Likewise. + * config.sub: Likewise. + * configure.in: Rudimentarily support new AMD processors. + + * configure.in (--enable_assembly): New option. + (target none-*-*): Disable, give error. + +2010-11-29 Torbjorn Granlund + + * mpn/x86/x86-defs.m4 (LEA): Support non-PIC code. + * mpn/x86/darwin.m4 (LEA): Likewise. + + * tests/amd64call.asm: Rewrite for code size, and to match calls and + returns. + + * tests/x86call.asm: Rewrite for code size, to support PIC, and to + match calls and returns. + * tests/x86check.c: Rewrite. + +2010-11-22 Torbjorn Granlund + + * mpz/get_str.c: Make all bases either work or return an error. + * mpz/out_str.c: Likewise. + * mpq/get_str.c: Likewise. + * mpf/get_str.c: Likewise. + +2010-11-14 Torbjorn Granlund + + * tests/misc/t-printf.c: Add explicit casts for type conversions. + * mpn/generic/toom62_mul.c: Likewise. + +2010-11-13 Torbjorn Granlund + + * mpn/generic/get_d.c: Misc cleanup. Fail with a syntax error for + non-IEEE fp formats. + + * tests/devel/try.c (malloc_region): Add explicit casts for type + conversions. + + * acinclude.m4 (GMP_ASM_RODATA): Make test code snippet C++ compatible. + (GMP_C_DOUBLE_FORMAT): Likewise. + (GMP_FUNC_VSNPRINTF): Likewise. + + * config.guess (x86): Make test C snippet C++ compatible. + +2010-11-12 Torbjorn Granlund + + * Makefile.am: Remove mpbsd. + * configure.in: Remove mpbsd. + * doc/configuration: Remove mpbsd mentions. + * doc/gmp.texi: Remove mpbsd docs. + * tests/Makefile.am: Remove mpbsd. + * libmp.sym: Remove. + * mpbsd: Remove directory and files. + * tests/mpbsd: Remove directory and files. + +2010-11-11 Torbjorn Granlund + + * mpn/x86_64/atom/aors_n.asm: Don't rely on ZF after 'bt' insn. + Use 64-bit 'test' to support operands of 2^32 limbs and more. + + * rand: New directory, move rand*.c and randmt.h here. + * rand/Makefile.am: New file. + * Makefile.am (SUBDIRS): Add rand. + (RANDOM_OBJECTS): New variable. + (libgmp_la_SOURCES): Remove random objects. + (libgmp_la_DEPENDENCIES): Add RANDOM_OBJECTS. + * configure.in (AC_OUTPUT): Add rand/Makefile. + + * ansi2knr.1: File removed. + * ansi2knr.c: File removed. + +2010-11-10 Torbjorn Granlund + + Make it possible to compile GMP with g++: + + * gmp-impl.h: Declare __gmp_digit_value_tab here. + * mpbsd/min.c: ...not here. + * mpbsd/xtom.c: ...nor here. + * mpf/set_str.c: ...nor here. + * mpz/inp_str.c: ...nor here. + * mpz/set_str.c: ...nor here. + + * mpn/generic/toom43_mul.c: Add casts for logical operations on enums. + * mpn/generic/toom44_mul.c: Likewise. + * mpn/generic/toom4_sqr.c: Likewise. + * mpn/generic/toom52_mul.c: Likewise. + * mpn/generic/toom53_mul.c: Likewise. + * mpn/generic/toom62_mul.c: Likewise. + + * mpz/clrbit.c: Clean up typing using MPZ_REALLOC. + * mpz/setbit.c: Likewise. + + * mpz/powm.c: Avoid variable name 'new'. + + * randlc2x.c: Add explicit casts for type conversions. + * tests/misc/t-printf.c: Likewise. + * tests/misc/t-scanf.c: Likewise. + * tests/misc.c: Likewise. + * tests/mpz/convert.c: Likewise. + * tests/refmpn.c: Likewise. + + * tests/tests.h: Unconditionally use for now. + + * tests/memory.c: Include "tests.h. + + * mp_get_fns.c: Add a __GMP_NOTHROW for coherency with prototype. + * mp_set_fns.c: Likewise. + * mpf/cmp.c: Likewise. + * mpf/cmp_si.c: Likewise. + * mpf/cmp_ui.c: Likewise. + * mpf/fits_s.h: Likewise. + * mpf/fits_u.h: Likewise. + * mpf/get_dfl_prec.c: Likewise. + * mpf/get_prc.c: Likewise. + * mpf/get_si.c: Likewise. + * mpf/get_ui.c: Likewise. + * mpf/int_p.c: Likewise. + * mpf/set_dfl_prec.c: Likewise. + * mpf/set_prc_raw.c: Likewise. + * mpf/size.c: Likewise. + * mpf/swap.c: Likewise. + * mpq/equal.c: Likewise. + * mpq/swap.c: Likewise. + * mpz/cmp.c: Likewise. + * mpz/cmp_si.c: Likewise. + * mpz/cmp_ui.c: Likewise. + * mpz/cmpabs.c: Likewise. + * mpz/cmpabs_ui.c: Likewise. + * mpz/cong_2exp.c: Likewise. + * mpz/divis_2exp.c: Likewise. + * mpz/fits_s.h: Likewise. + * mpz/get_si.c: Likewise. + * mpz/hamdist.c: Likewise. + * mpz/scan0.c: Likewise. + * mpz/scan1.c: Likewise. + * mpz/sizeinbase.c: Likewise. + * mpz/swap.c: Likewise. + * mpz/tstbit.c: Likewise. + * tal-reent.c: Likewise. + +2010-11-09 Torbjorn Granlund + + * configure.in: Get rid of K&R support. + * Makefile.am: Likewise. + * mpn/Makefile.am: Likewise. + * doc/configuration: Update docs wrt K&R support. + * doc/gmp.texi: Likewise. + + * configure.in (AC_INIT): Amend bug reporting address with manual + reference. + +2010-11-06 Torbjorn Granlund + + * config.guess: If cpuid says we have 32bit-only x86 but + configfsf.guess return x86_64, return the latter. + + * mpn/x86_64/aors_n.asm: Rewrite not to rely on ZF after 'bt' insn. + +2010-10-09 Torbjorn Granlund + + * mpn/generic/trialdiv.c: Update documentation. + +2010-10-04 Torbjorn Granlund + + * mpn/x86_64/gcd_1.asm: Use m4_lshift to avoid << operator. + * mpn/x86_64/aorrlshC_n.asm: Likewise. + * mpn/x86_64/pentium4/aorslshC_n.asm: Likewise. + * mpn/x86/k7/gcd_1.asm: Likewise. + +2010-08-20 Niels Möller + + Suggested by Ozkan Sezer: + * configure.in: If $M4 is already set in the environment, don't + touch it. Fixed the case that no assembler files are used, and + GMP_PROG_M4 is omitted. + +2010-08-08 Torbjorn Granlund + + * mpn/x86_64/fat/fat.c: Recognise many more processors. + +2010-06-30 Torbjorn Granlund + + * mpn/x86_64/divrem_2.asm: Tune. + +2010-06-19 Niels Möller + + * tune/speed.h (SPEED_ROUTINE_MPN_MOD_1_1): Pass normalized + divisor to the benchmarked function. + +2010-06-15 Torbjorn Granlund + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite. + * mpn/x86_64/mod_1_2.asm (mpn_mod_1s_2p_cps): Rewrite. + * mpn/x86_64/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. + + * gmp-impl.h (udiv_rnd_preinv): Simplify. + + * mpn/x86/k7/mod_1_1.asm: New file. + * mpn/x86/pentium4/sse2/mod_1_1.asm (mpn_mod_1_1p_cps): Rewrite. + * mpn/x86/k7/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. + * mpn/x86/pentium4/sse2/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. + + * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Store results as they are + computed. + * mpn/generic/mod_1_2.c (mpn_mod_1s_2p_cps): Likewise. + * mpn/generic/mod_1_4.c (mpn_mod_1s_4p_cps): Likewise. + + * mpn/x86/k7/invert_limb.asm: Moved from mpn/x86/invert_limb.asm. + +2010-06-15 Niels Möller + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-mod_1. + * tests/mpn/t-mod_1.c: New file. + +2010-05-25 Torbjorn Granlund + + * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): Trim out space + for inverse, since that is passed in already. + +2010-05-24 Torbjorn Granlund + + * mpn/generic/mu_div_qr.c (mpn_preinv_mu_div_qr_itch): New function. + * gmp-impl.h: Declare it. + * tune/common.c (speed_mpn_mupi_div_qr): Use new itch function. + * tune/speed.h (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Pass parameters right + for new itch function. + + * mpn/powerpc32/lshiftc.asm: New file. + +2010-05-22 Torbjorn Granlund + + * tune/tuneup.c (tune_mod_1): Revert to version of 2010-05-06. + +2010-05-17 Torbjorn Granlund + + * configure.in (ia64): Get 32-bit sizeof test right. + + * tune/tuneup.c (tune_mod_1): Undo unintensional change to tuning of + PREINV_MOD_1_TO_MOD_1_THRESHOLD. + +2010-05-16 Torbjorn Granlund + + * mpn/sparc64/mod_1.c: Rewrite. + * mpn/sparc64/sparc64.h (umul_ppmm_s): New macro. + * mpn/sparc64/mod_1_4.c: New file. + + * mpn/generic/divrem_1.c: Minor cleanup. + * mpn/generic/mod_1.c: Likewise. + * mpn/generic/mod_1_1.c: Likewise. + * mpn/generic/mod_1_2.c: Likewise. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + + * configure.in (ia64-hpux): Do sizeof tests for 32-bit and 64-bit ABI. + + * tune/tuneup.c (tune_mod_1): Completely finish MOD_1_N tuning before + tuning MOD_1U_TO_MOD_1_1_THRESHOLD. + +2010-05-14 Torbjorn Granlund + + * mpn/generic/redc_2.c: Use asm code just for GNU C. + +2010-05-13 Torbjorn Granlund + + * mpn/sparc64/ultrasparc1234: New directory. Move all code that uses + floating-point into this directory. + * configure.in: Point to ultrasparc1234 for appropriate CPUs. + + * mpn/sparc64/ultrasparct1/add_n.asm: New file. + * mpn/sparc64/ultrasparct1/addlsh2_n.asm: New file. + * mpn/sparc64/ultrasparct1/addmul_1.asm: New file. + * mpn/sparc64/ultrasparct1/lshift.asm: New file. + * mpn/sparc64/ultrasparct1/mul_1.asm: New file. + * mpn/sparc64/ultrasparct1/rsblsh2_n.asm: New file. + * mpn/sparc64/ultrasparct1/rshift.asm: New file. + * mpn/sparc64/ultrasparct1/sublsh1_n.asm: New file. + * mpn/sparc64/ultrasparct1/sublshC_n.asm: New file. + * mpn/sparc64/ultrasparct1/addlsh1_n.asm: New file. + * mpn/sparc64/ultrasparct1/addlshC_n.asm: New file. + * mpn/sparc64/ultrasparct1/lshiftc.asm: New file. + * mpn/sparc64/ultrasparct1/rsblsh1_n.asm: New file. + * mpn/sparc64/ultrasparct1/rsblshC_n.asm: New file. + * mpn/sparc64/ultrasparct1/sub_n.asm: New file. + * mpn/sparc64/ultrasparct1/sublsh2_n.asm: New file. + * mpn/sparc64/ultrasparct1/submul_1.asm: New file. + * mpn/sparc64/ultrasparct1/gmp-mparam.h: New file. + + * configure.in: Give ultrasparct1 and ultrasparct2 special code path. + + * mpn/x86_64/pentium4/gmp-mparam.h: Disable mpn_addlsh_n, mpn_rsblsh_n. + +2010-05-12 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): Fixed off-by-one error in use of + scratch space. + + * tune/common.c (speed_mpz_powm_sec): New function. + * tune/speed.h: Declare speed_mpz_powm_sec. + * tune/speed.c (routine): Added speed_mpz_powm_sec. + + * tune/common.c (speed_mpn_addlsh_n, speed_mpn_sublsh_n) + (speed_mpn_rsblsh_n): New functions. + * tune/speed.h: Declare new functions. + * tune/speed.c (routine): Add new functions. + +2010-05-12 Torbjorn Granlund + + * mpn/x86_64/mod_1_4.asm: Tune for more processors. + + * mpn/x86_64/pentium4/lshiftc.asm: New file. + +2010-05-11 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): Deleted old implementation. + Reorganized new implementation, to handle small inputs efficiently. + + * tests/mpz/t-jac.c (check_large_quotients): Reduced test sizes. + (check_data): One more input pair related to a fixed bug. + (main): Enable check_large_quotients. + +2010-05-10 Torbjorn Granlund + + * mpn/x86_64/aorrlsh2_n.asm: Fix typo. + +2010-05-09 Torbjorn Granlund + + * mpn/x86_64/aorrlshC_n.asm: New file based on aorrlsh2_n.asm. + * mpn/x86_64/aorrlsh2_n.asm: Now just include aorrlshC_n.asm. + * mpn/x86_64/core2/aorrlsh1_n.asm: New file, include ../aorrlshC_n.asm. + * mpn/x86_64/core2/aorrlsh2_n.asm: Likewise. + + * mpn/x86_64/core2/sublshC_n.asm: New file based on aorslsh1_n.asm. + * mpn/x86_64/core2/aorslsh1_n.asm: Remove. + * mpn/x86_64/core2/sublsh1_n.asm: Just include sublshC_n.asm. + * mpn/x86_64/core2/sublsh2_n.asm: Likewise. + +2010-05-08 Torbjorn Granlund + + * mpn/x86_64/atom/gmp-mparam.h: Disable mpn_rsh1add_n, mpn_rsh1sub_n. + + * mpn/x86_64/pentium4/aorslshC_n.asm: New file based on aorslsh1_n.asm. + * mpn/x86_64/pentium4/aorslsh1_n.asm: Now just include aorslshC_n.asm. + * mpn/x86_64/pentium4/aorslsh2_n.asm: New file. + +2010-05-07 Torbjorn Granlund + + * mpn/sparc64: Support operands of >= 2^32 limbs. + + * mpn/sparc64/lshiftc.asm: New file. + + * mpn/ia64/divrem_2.asm: Complete rewrite. + +2010-05-06 Torbjorn Granlund + + * tune/tuneup.c (all): Don't call tune_divrem_2. + + * mpn/generic/divrem_2.c: Complete rewrite. + + * tune/tuneup.c (tune_mod_1): Fix typo. + +2010-05-05 Torbjorn Granlund + + * mpn/x86_64/mod_1_1.asm (mpn_mod_1_1p): Use macro register names. + (mpn_mod_1_1p_cps): Rewrite. + + * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Micro-optimise. + + * longlong.h: Undo 2009-03-01 change for powerpc64, it gives poor code. + + * mpn/x86/pentium4/sse2/mod_1_1.asm: New file. + + * mpn/powerpc64/mode64/mod_1_1.asm: New file. + + * tune/tuneup.c (tune_mod_1): Use more typical divisor, for the benefit + of machines with early-out multipliers. + +2010-05-04 Torbjorn Granlund + + * tune/tuneup.c (tune_mod_1): Fix typo. + + * mpn/generic/mod_1_1.c: Undo last change. + * mpn/x86_64/mod_1_1.asm: Likewise. + +2010-05-03 Niels Möller + + * mpn/generic/jacobi_lehmer.c (jacobi_hook): New function. + (mpn_jacobi_subdiv_step): Deleted function. + (mpn_jacobi_lehmer): Use general mpn_gcd_subdiv_step. + + * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized + to use a single hook function. + * mpn/generic/gcdext.c (mpn_gcdext): Adapted to new hook + interface. + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_hook): New unified hook + function. + * mpn/generic/gcd.c (gcd_hook): Renamed from gcd_done, and adapted + to new hook interface. + * gmp-impl.h (gcd_subdiv_step_hook): New typedef, now a function + type, not a struct. + (mpn_gcdext_hook): Declare. + +2010-05-03 Torbjorn Granlund + + * mpn/generic/mod_1_1.c: Avoid multiply for 2 limb feed-in. + * mpn/generic/mod_1_2.c: Likewise. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + * mpn/x86_64/mod_1_1.asm: Likewise. + * mpn/x86_64/mod_1_2.asm: Likewise. + * mpn/x86_64/mod_1_4.asm: Likewise. + * mpn/x86/k7/mod_1_4.asm: Likewise. + * mpn/x86/pentium4/sse2/mod_1_4.asm: Likewise. + * mpn/alpha/ev6/mod_1_4.asm: Likewise. + + * tune/tuneup.c (tune_mod_1): Measure MOD_1_1_TO_MOD_1_2_THRESHOLD and + MOD_1_2_TO_MOD_1_4_THRESHOLD before MOD_1U_TO_MOD_1_1_THRESHOLD for + correctness. + + * mpn/powerpc64/sqr_diagonal.asm: Complete rewrite. + + * mpn/powerpc64/mode64/mod_1_4.asm: New file. + +2010-05-02 Torbjorn Granlund + + * config.guess: Recognise power7. + + * configure.in: Major overhaul of powerpc support. + + * mpn/powerpc64/p6/lshift.asm: New file. + * mpn/powerpc64/p6/lshiftc.asm: Likewise. + * mpn/powerpc64/p6/rshift.asm: Likewise. + +2010-04-30 Torbjorn Granlund + + * configure.in (powerpc64): Support CPU specific mode-less subdirs. + + * mpn/powerpc64/aix.m4 (PROLOGUE_cpu): Use "named csect" making + requested alignment actually honoured. + +2010-04-30 Niels Möller + + * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Fixed handling of + the case bl == 1. Fixed missing application of reciprocity. + +2010-04-29 Niels Möller + + * configure.in (gmp_mpn_functions): Deleted gcdext_subdiv_step. + + * mpn/generic/gcdext.c (mpn_gcdext): Use new generalized + mpn_gcd_subdiv_step. + + * mpn/generic/gcdext_lehmer.c (gcdext_update): New function. + (gcdext_done): New function. + (gcdext_hook): New const hook struct. + (mpn_gcdext_lehmer_n): Use new generalized mpn_gcd_subdiv_step. + + * mpn/generic/gcd.c (gcd_done): New function. + (gcd_hook): New const hook struct. + (mpn_gcd): Adapted to new mpn_gcd_subdiv_step interface. + + * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Reorganized + function. Added hook function pointers to the argument list, so + the same function can be used for gcd, gcdext, and jacobi. + + * gmp-impl.h (struct gcd_subdiv_step_hook): New struct. + (mpn_gcdext_subdiv_step): Deleted prototype. + (struct gcdext_ctx): New struct. + (gcdext_hook): Declare const struct. + (mpn_gcd_subdiv_step): Updated prototype. + + * mpn/generic/gcdext_subdiv_step.c: Deleted file. + +2010-04-28 Torbjorn Granlund + + * mpn/powerpc64/lshift.asm: Rewrite. + * mpn/powerpc64/rshift.asm: Likewise. + * mpn/powerpc64/mode64/lshiftc.asm: New file. + + * mpn/powerpc64/aix.m4: Align functions to 32-byte boundary. + * mpn/powerpc64/darwin.m4: Likewise. + * mpn/powerpc64/elf.m4: Likewise. + +2010-04-28 Niels Möller + + * tests/mpz/t-jac.c (check_data): Added some more test cases. + + * mpn/generic/jacobi_lehmer.c (mpn_jacobi_2): Bugfix, count + trailing zeros, not leading. + +2010-04-27 Torbjorn Granlund + + * mpn/powerpc64/mode64/p6/mul_basecase.asm: New file. + +2010-04-23 Niels Möller + + * gmp-impl.h (MPN_GCD_LEHMER_N_ITCH): Deleted. + (mpn_gcd_lehmer_n): Deleted declaration. + + * mpn/generic/gcd.c (gcd_2): Moved from gcd_lehmer.c. + (mpn_gcd): Inlined the code from mpn_gcd_lehmer_n. Also use + MPN_GCD_SUBDIV_STEP_ITCH rather than MPN_GCD_LEHMER_N_ITCH. + +2010-04-22 Torbjorn Granlund + + * mpn/powerpc64/mode64/bdiv_dbm1c.asm: Swap multiply insns to make them + consecutive, for the benefit of POWER6. + + * mpn/powerpc64/mode64/p6/gmp-mparam.h: New file. + +2010-04-21 Torbjorn Granlund + + * mpn/generic/gcd_lehmer.c: Deleted file. + + * mpn/powerpc64/mode64/divrem_1.asm: Swap multiply insns to make them + consecutive, for the benefit of POWER6. + * mpn/powerpc64/mode64/dive_1.asm: Likewise. + * mpn/powerpc64/mode64/divrem_2.asm: Likewise. + * mpn/powerpc64/mode64/mul_1.asm: Likewise. + * mpn/powerpc64/mode64/aorsmul_1.asm: Likewise. + + * mpn/powerpc64/mode64/aorslshC_n.asm: Swap ldx operands as a temporary + workaround for POWER6 pipeline glitch. + +2010-04-19 Niels Möller + + * mpz/jacobi.c (mpz_jacobi): New implementation using + mpn_jacobi_lehmer. Currently #if:ed out. + + * mpn/generic/jacbase.c (mpn_jacobi_base) + [JACOBI_BASE_METHOD < 4]: Support inputs with a >= b. + + * gmp-impl.h (mpn_jacobi_lehmer): Added prototype. + (jacobi_table): Declare. + (mpn_jacobi_init): New inline function. + (mpn_jacobi_finish): Likewise. + (mpn_jacobi_update): Likewise. + + * mpn/generic/jacobi_lehmer.c (mpn_jacobi_lehmer): New file, new + function. + + * configure.in (gmp_mpn_functions): Added jacobi_lehmer. + +2010-04-14 Niels Möller + + * configure.in (gmp_mpn_functions): Added + matrix22_mul1_inverse_vector. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added + matrix22_mul1_inverse_vector.c. + + * gmp-impl.h (mpn_matrix22_mul1_inverse_vector): Updated for + rename of mpn_matrix22_mul1_inverse_vector. + * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Likewise. + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Likewise. + * mpn/generic/hgcd.c (hgcd_step): Likewise. + + * mpn/generic/matrix22_mul1_inverse_vector.c + (mpn_matrix22_mul1_inverse_vector): New file, function moved and + renamed... + * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_inverse_vector): + ...from here. + +2010-04-12 Torbjorn Granlund + + * tests/mpn/t-toom6h.c (SIZE_LOG): Define. + * tests/mpn/t-toom8h.c (SIZE_LOG): Likewise. + +2010-04-10 Torbjorn Granlund + + * mpn/ia64/lorrshift.asm: Rewrite feed-in and wind-down code. + + * mpn/ia64/aorslsh1_n.asm: Adapt to new aorslsh1_n. + * mpn/ia64/aorslsh1_n.asm: Likewise. + + * mpn/ia64/aors_n.asm: Complete rewrite. + * mpn/ia64/aorslsh1_n.asm: Likewise. + + * mpn/ia64/add_n_sub_n.asm: Misc cleanups. Add slotting comments. + + * mpn/ia64/lshiftc.asm: New file. + + * mpn/x86_64/pentium4/gmp-mparam.h: No longer disable rsh1add_n and + rsh1sub_n; instead disable rsblsh1_n, addlsh2_n, rsblsh2_n. + + * mpn/x86/divrem_2.asm: Use "orb" instead of "or" to work around + Solaris assembler bug. + * mpn/x86_64/mpn/x86_64/divrem_2.asm: Likewise. + + * mpn/x86/aors_n.asm: Use operand-less shift-by-1 insn form. + * mpn/x86/pentium/aors_n.asm: Likewise. + * mpn/x86_64/invert_limb.asm: Likewise. + + * mpn/x86_64/pentium4/aors_n.asm: Let non-nc code fall into nc code. + + * mpn/x86_64/pentium4/rsh1aors_n.asm: New file. + +2010-03-25 Torbjorn Granlund + + * mpn/ia64/add_n_sub_n.asm: New file. + + * mpn/generic/toom33_mul.c: Fix mpn_add_n_sub_n usage. + * mpn/generic/toom3_sqr.c: Likewise. + * mpn/generic/toom63_mul.c: Likewise. + + * mpn/generic/add_n_sub_n.c: Renamed from addsub_n.c. + +2010-03-23 Torbjorn Granlund + + * mpn/x86_64/divrem_2.asm: Use mpn_invert_limb instead of div insn. + + * mpn/ia64/aorslshC_n.asm: New file, generalised from last iteration of + aorslsh1_n.asm. + * mpn/ia64/aorslsh1_n.asm: Use aorslshC_n.asm. + * mpn/ia64/aorslsh1_n.asm: New file, use aorslshC_n.asm. + +2010-03-20 Torbjorn Granlund + + * mpn/powerpc64/mode64/invert_limb.asm: Rewrite to exploit cancellation + in the Newton iteration. + +2010-03-20 Marco Bodrato + + * mpn/generic/toom_interpolate_8pts.c: Use mpn_sublsh2_n. + +2010-03-20 Torbjorn Granlund + + * mpn/powerpc64/mode64/aorslshC_n.asm: New file, generalised from + last iteration of aorslsh1_n.asm. + * mpn/powerpc64/mode64/aorslsh1_n.asm: Use aorslshC_n.asm. + * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, use aorslshC_n.asm. + +2010-03-19 Torbjorn Granlund + + * mpn/x86_64/nano/dive_1.asm: New file. + + * mpn/x86_64/divrem_1.asm: Avoid shld since it is slow on several CPU + types. Unconditionally provide code for normalised and unnormalised + divisors. Cleanup labels. + + * mpn/x86_64/core2/divrem_1.asm: Remove special code for normalised + divisors. Cleanup labels. + + * mpn/generic/toom_interpolate_6pts.c: Call mpn_sublsh2_n and + mpn_sublsh_n with correct args. + + * tests/devel/try.c: Use enum for TYPE_*. + + * tests/devel/try.c: Test mpn_sublsh2_n. + * tests/refmpn.c (refmpn_sublsh2_n): New function. + * tests/tests.h (refmpn_sublsh2_n): Declare. + + * mpn/powerpc64/mode64/aorslsh1_n.asm: New file, with faster + mpn_addlsh1_n and mpn_sublsh1_n. + * mpn/powerpc64/mode64/addlsh1_n.asm: Delete. + * mpn/powerpc64/mode64/sublsh1_n.asm: Delete. + +2010-03-18 Torbjorn Granlund + + * configure.in (*-*-aix): Define gcc_32_cflags_maybe, ar_32_flags and + nm_32_flags. + + * mpn/x86/pentium4/sse2/addlsh1_n.asm: Tune for slightly better speed. + Misc cleanups. Add cycle table. + + * mpn/x86_64/copyi.asm: Update cycle table. + * mpn/x86_64/copyd.asm: Likewise. + * mpn/x86_64/rsh1aors_n.asm: Likewise. + * mpn/x86_64/dive_1.asm: Likewise. + + * mpn/x86/pentium4/sse2/add_n.asm: Misc cleanups. Add cycle table. + * mpn/x86/pentium4/sse2/sub_n.asm: Likewise. + +2010-03-16 Torbjorn Granlund + + * mpn/x86_64/divrem_1.asm: Use mpn_invert_limb instead of div insn. + * mpn/x86_64/core2/divrem_1.asm: Likewise. + + * tune/speed.c (routine): Add FLAG_R_OPTIONAL for many binops. + +2010-03-15 Torbjorn Granlund + + * mpn/alpha/ev6/mod_1_4.asm (mpn_mod_1s_4p_cps): Rewrite. + + * mpn/ia64/aors_n.asm: Insert explicitly typed nops to trigger intended + bundling. + * mpn/ia64/aorslsh1_n.asm: Likewise. + * mpn/ia64/dive_1.asm: Likewise. + +2010-03-13 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/submul_1.asm: Rewrite. + + * mpn/powerpc64/mode64/aorsmul_1.asm: New file, faster than old code + for both mpn_addmul_1 and mpn_submul_1. + * mpn/powerpc64/mode64/addmul_1.asm: Remove. + * mpn/powerpc64/mode64/submul_1.asm: Remove. + +2010-03-11 Niels Möller + + * mpn/generic/gcd_lehmer.c (gcd_2): Use sub_ddmmss. + + * mpn/generic/jacbase.c (mpn_jacobi_base): Reorganized the + JACOBI_BASE_METHOD 4 slightly. Now requires that b > 1. + +2010-03-10 Torbjorn Granlund + + * mpn/x86_64/divrem_1.asm: Make fraction code take documented # of + cycles. Annotate code for more CPUs. Misc cleanups. + * mpn/x86_64/core2/divrem_1.asm: Annotate code for more CPUs. + + * mpn/alpha/ev6/mod_1_4.asm: New file. + + * mpn/ia64/mod_34lsub1.asm: New file. + + * doc/gmp.texi (Language Bindings): Update Python site, add Ruby. + +2010-03-10 Niels Möller + + * tune/tuneup.c (tune_jacobi_base): Consider mpn_jacobi_base_4. + * tune/speed.c (routine): Added mpn_jacobi_base_4. + * tune/common.c (speed_mpn_jacobi_base_4): New function. + * tune/speed.h (speed_mpn_jacobi_base_4): Declare it. + * tune/Makefile.am (libspeed_la_SOURCES): Added jacbase4.c. + * tune/jacbase4.c: New file. + + * mpn/generic/jacbase.c (mpn_jacobi_base): New function, for + JACOBI_BASE_METHOD 4. + +2010-03-09 Niels Möller + + * tests/mpz/t-jac.c (check_large_quotients): Also generate inputs + with large quotients and a large gcd. + +2010-03-09 Marco Bodrato + + * tests/mpz/t-bin.c (randomwalk): New test-generator function. + +2010-03-07 Torbjorn Granlund + + * tune/speed.c (routine): Force r argument for several mod_1 calls. + +2010-03-06 Torbjorn Granlund + + * mpn/x86_64/divrem_1.asm: Disable SPECIAL_CODE_FOR_NORMALIZED_DIVISOR. + Misc clean up. + + * mpn/x86_64/mod_1_1.asm: New file. + * mpn/x86_64/mod_1_2.asm: New file. + * mpn/x86_64/mod_1_4.asm: Update cycle counts. + + * tests/tests.h (TESTS_REPS): Fix typo. + +2010-03-03 Torbjorn Granlund + + * mpn/x86_64/core2/divrem_1.asm: New file. + +2010-02-26 Niels Möller + + * tune/speed.c (routine): Added udiv_qrnnd_preinv3. + + * tune/common.c (speed_udiv_qrnnd_preinv3): New function. + * tune/speed.h: Added prototype for it. + +2010-02-26 Niels Möller + + * tests/mpz/t-jac.c (check_large_quotients): New test. Currently + disabled, since it's quite slow. + (mpz_nextprime_step): New function. + +2010-02-26 Torbjorn Granlund + + * mpn/pa64/aors_n.asm: Fix typo in last change. + +2010-02-25 Niels Möller + + * tests/mpz/t-jac.c (ref_jacobi): New reference implementation, + using factorization and legendre symbols computed by powm. + + * tests/devel/try.c (param_init, call): Don't pass negative values + for the second argument to mpz_jacobi and refmpz_jacobi. + + * tests/refmpz.c (refmpz_jacobi): Require that b is odd and positive. + + * tests/devel/try.c (param_init): Support mpz_legendre. + (choice_array): Added mpz_kronecker (apparently forgotten) and + mpz_legendre. + (call): Added TYPE_MPZ_LEGENDRE. + (try_one): Added support for DATA_SRC1_ODD_PRIME. + + * tests/refmpz.c (refmpz_legendre): Rewrote using powm. + +2010-02-25 Torbjorn Granlund + + * config.guess: Make "corei" default for unrecognised Intel P6 CPUs. + + * tests/mpz/t-perfpow.c (check_random): Use mp_limb_t type for limb + variables. + + * tests/mpn/t-toom6h.c (COUNT): Define. + * tests/mpn/t-toom8h.c (COUNT): Define. + + * tests/mpn/t-div.c: Cast a switch index to placate HP's cc. + * tests/mpn/t-bdiv.c: Likewise. + + * mpn/pa64/aors_n.asm: Fix support of the 2.0n ABI. + +2010-02-24 Marco Bodrato + + * tests/mpz/t-bin.c (data): Replace (2k,k), tested by twos (). + * tests/mpf/t-inp_str.c (data): Test also "+" in the exponent. + +2010-02-23 Torbjorn Granlund + + * mpn/generic/mod_1_3.c: Cast a switch index to placate HP's cc. + + * mpn/generic/sqrtrem.c: Use CNST_LIMB. + +2010-02-20 Niels Möller + + * tune/speed.h (mpn_gcd_accel): Deleted prototype. + (mpn_hgcd_lehmer): New prototype. + (MPN_HGCD_LEHMER_ITCH): New macro (previously in gmp-impl.h). + + * tune/Makefile.am (libspeed_la_SOURCES): Added hgcd_lehmer.c. + * tune/hgcd_lehmer.c: New file. + * tune/gcd_accel.c: Deleted obsolete file. + + * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): Deleted macro. + + * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Deleted function, + (mpn_hgcd): Don't call mpn_hgcd_lehmer, instead use inlined loop + around hgcd_step. + (mpn_hgcd_itch): Substitute n for MPN_HGCD_LEHMER_ITCH (n). + +2010-02-19 Niels Möller + + * Makefile.am (mpn/jacobitab.h): Added the rules needed to + generate this file. + + * gen-jacobitab.c: New file. + +2010-02-19 Torbjorn Granlund + + * mpn/generic/powm.c: Honour SQR_BASECASE_THRESHOLD in innerloop + expansions. + +2010-02-16 Niels Möller + + * tune/time.c (cgt_works_p): Added rudimentary sanity check for + clock_gettime working. + +2010-02-15 Niels Möller + + * tune/time.c (speed_time_init): Make use of cycle counter + configurable, via the speed_option_cycles_broken flag. + * tune/common.c (speed_option_cycles_broken): New global variable. + (speed_option_set): Recognize option "cycles-broken". + + * tune/time.c (cycles_works_p): Deleted hack to disable cycle + counter on linux. Needs to be replaced by something more + selective. + +2010-02-11 Niels Möller + + * tune/time.c (speed_time_init): Fix speed_time_string when using + clock_gettime. + (cycles_works_p): On linux, don't use the cycle counter. + + * tune/Makefile.am: Add $(TUNE_LIBS) when linking programs. + + * configure.in: Check if -lrt is needed for clock_gettime, and if + so, add that flag to TUNE_LIBS. + +2010-02-07 Torbjorn Granlund + + * tune/tuneup.c (tune_redc): Set min_size and min_is_always when + measuring REDC_1_TO_REDC_2_THRESHOLD. + (tune_mod_1): Set min_size for PREINV_MOD_1_TO_MOD_1_THRESHOLD. + + * mpn/x86_64/aorrlsh_n.asm (cnt): Fix a typo. + * mpn/x86_64/lshsub_n.asm: Likewise. + +2010-02-05 Torbjorn Granlund + + * Version 5.0.1 released. + + * mpn/generic/powm.c: Use rp target area for power table computation in + order to use less scratch. + + * mpn/generic/binvert.c (mpn_binvert_itch): Enable more economical + mpn_mulmod_bnm1_itch call. + + * mpn/generic/mu_div_qr.c: Remove always true #if. + * mpn/generic/mu_divappr_q.c: Likewise. + * mpn/generic/mu_bdiv_q.c: Likewise. + * mpn/generic/mu_bdiv_qr.c: Likewise. + +2010-02-01 Torbjorn Granlund + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): + Bump version info. + + * mpn/powerpc64/mode64/gmp-mparam.h: Remove {MUL,SQR}_FFT_TABLE2. + * mpn/x86/p6/gmp-mparam.h: Likewise. + * mpn/x86/p6/mmx/gmp-mparam.h: Likewise. + * mpn/generic/mul_fft.c: Don't depend on FFT_TABLE2, it was broken. + +2010-01-29 Torbjorn Granlund + + * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Remove arguments n, m, + k and rec; add argument sqr. Don't call mpn_mul_fft_decompose here, + instead do that in all callers. + (mpn_mul_fft): Trim allocation when squaring, and use TMP_ALLOC*, not + explicit alloc/free. + (mpn_fft_div_2exp_modF): Avoid a scalar division. + (mpn_fft_mul_modF_K): Replace some multiplies by K with shifting by k. + (mpn_fft_mul_2exp_modF): Make function more symmetrical. + +2010-01-27 Torbjorn Granlund + + * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): Rewrite. + * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Re-enable + better mulmod itch estimate. + * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. + * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. + * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. + +2010-01-27 Marco Bodrato + + * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Disabled guessed + estimate, enabled a conservative one. + * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. + * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. + * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. + +2010-01-26 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Partial rewrite to + reduce memory usage. + * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise. + (mpn_sqrmod_bnm1_next_size): New function. + + * gmp-impl.h (mpn_mulmod_bnm1_itch): Accepts 3 parameters now. + (mpn_sqrmod_bnm1_itch): New inline function. + (mpn_sqrmod_bnm1_next_size): Declaration and mangling. + * mpn/generic/nussbaumer_mul.c: Use the new functions. + + * mpn/generic/invertappr.c (mpn_ni_invertappr): Use new syntax for + mpn_mulmod_bnm1_itch. + * mpn/generic/mu_divappr_q.c (mpn_mu_divappr_q_itch): Likewise. + * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Likewise. + * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Likewise. + * mpn/generic/mu_div_qr.c (mpn_mu_div_qr_itch): Likewise. + * mpn/generic/binvert.c (mpn_binvert_itch): Likewise. + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): Likewise. + (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Likewise. + + * tests/mpn/t-sqrmod_bnm1.c, tests/mpn/t-mulmod_bnm1.c: Test + reduced memory usage. + +2010-01-25 Torbjorn Granlund + + * tune/tuneup.c (INSERT_FFTTAB): New macro, like old insertion code but + also inserting a sentinel. + (fftmes): Use INSERT_FFTTAB for inserting new measurements. + Limit k range to best_k - 4 ... best_k + 4. + +2010-01-23 Torbjorn Granlund + + * gmp-h.in (__GNU_MP_VERSION_PATCHLEVEL): Bump. + (__GMP_MP_RELEASE): New macro. + + * mpf/div.c: Rewrite to use mpn_div_q. + +2010-01-21 Torbjorn Granlund + + * Add FFT_TABLE3 tables for a basic set of machines. + + * configure.in: Use -mtune=nocona for 64-bit pentium4. + + * config.guess: Recognise many more Intel processors. + + * tune/common.c: Whitespace cleanup. + (speed_mpn_matrix22_mul): Rewrite. + +2010-01-21 Niels Möller + + * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Take + advantage of new mpn_mulmod_bnm1 interface, to reduce allocation. + + * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1, main): Adapted to + mpn_mulmod_bnm1 interface change. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Interface change, + in case an + bn < rn, only write an + bn output limbs. New input + requirement, an + bn > rn/2. + * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Corresponding + changes. + +2010-01-19 Torbjorn Granlund + + * tune/tuneup.c (fftmes): Round up initial n according to initial k. + Limit k to 24 in loop. Remove an obsolete always-true condition. + Remove a redundant trace printout. + +2010-01-18 Torbjorn Granlund + + * tune/tuneup.c (fftmes): New function + (fft): Rewrite. + (mpn_mul_fft_lcm): New function, copied from mpn/generic/mul_fft.c. + (fftfill): New function, code taken from mul_fft.c (mpn_mul_fft). + (cached_measure): New function. + + * gmp-impl.h (struct fft_table_nk): Moved from mul_fft.c. + (MUL_FFT_TABLE3, SQR_FFT_TABLE3): Provide dummy versions for tuneup + builds. + (FFT_TABLE3_SIZE): Increase value for tuneup builds. + + * mpn/generic/mul_fft.c: Handle a new FFT threshold table type ("3"). + Misc cleanups to old table type code. + +2010-01-16 Torbjorn Granlund + + * mpn/x86_64/darwin.m4: Fix typo in last change. + +2010-01-15 Torbjorn Granlund + + * gmp-h.in (__GMP_EXTERN_INLINE): Remove "extern" for newer Sun C. + + * gmp-impl.h (GMP_LIMB_BYTES): New define. + + * mpn/x86_64/darwin.m4 (LEA): New define. + + * mpn/x86/invert_limb.asm (approx_tab): Use DEF_OBJECT. + Rename and globalise it to work around Mac OS bug. + + With Philip McLaughlin: + * mpn/x86_64/gcd_1.asm (ctz_table): Don't use local prefix, but + use DEF_OBJECT...END_OBJECT. + Keep stack pointer at ABI mandated alignment over call. + +2010-01-12 Torbjorn Granlund + + * tune/speed.c (routine): Remove obsolete mpn_dc_tdiv_qr and + mpn_dc_div_qr_n. + * tune/common.c (speed_mpn_dc_tdiv_qr, speed_mpn_dcpi1_div_qr_n): + Remove now unused functions. + * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_N, + SPEED_ROUTINE_MPN_DC_DIVREM_SB, SPEED_ROUTINE_MPN_DC_TDIV_QR): Remove + now unused macros. + + * mpn/x86_64/fat/fat_entry.asm (mpn_cpuid_available): Remove function. + + * ltmain.sh: Upgrade from 1.5.24 to 2.2.6b. + * ylwrap: New file. + * .bootstrap: Remove explicit versions. + + * doc/gmp.texi (Block-wise Barrett Division): New node. + + * mpn/generic/powm.c: Change some #if to plain 'if' to avoid fat build + problems. + +2010-01-11 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): Accept arguments for size + restrictions. + * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr, + (speed_mpn_sbpi1_divappr_q, speed_mpn_dcpi1_divappr_q): Pass size + limits for SPEED_ROUTINE_MPN_PI1_DIV. + + * tune/speed.c (routine): Allow .r argument for mpn_sbpi1_divappr_q and + mpn_dcpi1_divappr_q. + +2010-01-08 Torbjorn Granlund + + * Version 5.0.0 released. + + * mpn/generic/div_q.c: Handle mpn_*_divappr_q returning high limb + everywhere. + +2010-01-07 Torbjorn Granlund + + * Update MUL_FFT_TABLE2 and SQR_FFT_TABLE2 for many machines. + + * mpn/generic/mu_div_q.c: Account for divisor truncation error as well + as mpn_mu_divappr_q's error. + + * mpn/generic/mu_div_q.c: Handle mpn_preinv_mu_divappr_q returning a + high limb. + + * tests/mpn/t-bdiv.c: Move a random call for debugability. + * tests/mpn/t-div.c: Likewise. + + * mpn/generic/mu_divappr_q.c: Rewrite quotient round-up code. + + * mpn/generic/mu_div_qr.c: Handle carry-out from a carry propagation + subtract. + * mpn/generic/mu_divappr_q.c: Likewise. + + * mpn/generic/mu_divappr_q.c + (mpn_preinv_mu_divappr_q, mpn_mu_divappr_q): Declare dividend constant. + * gmp-impl.h: Likewise. + + * perfpow.c (mpn_perfect_power_p): Call mpn_divexact instead of + mpn_bdiv_q (with too little scratch space!). + + From Niels Möller: + * tests/mpn/t-div.c (check_one): Get rid of the poorly managed variable + tn. + + * mpn/minithres/gmp-mparam.h: Add all lately defined thresholds. + + * mpn/generic/div_q.c: Use SB division for small quotients as well as + small divisors. Fix typo in itch call. + +2010-01-06 Niels Möller + + * tests/mpn/t-div.c (check_one): Checking based on multiplication, + refmpn_mul, rather than refmpn_tdiv_qr. + +2010-01-06 Marco Bodrato + + * mpn/generic/toom8h_mul.c: Avoid overflows of mp_size_t. + +2010-01-06 Torbjorn Granlund + + * gmp-h.in (__GNU_MP__): Bump. + (__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL): + Bump version info. + * mp-h.in (__GNU_MP__): Bump. + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): + Bump version info. + + * doc/gmp.texi: Rewrite mpn_gcdext text. Remove some out-of-date + text in Algorithms chapter. + + * mpn/generic/div_q.c: Properly handle np=scratch. Fix critical typo + in final adjustment code. Misc cleanups. + + * mpn/generic/rootrem.c: Use mpn_div_q. + * mpz/tdiv_q.c: Likewise. + + * tests/mpn/t-div.c: Test mpn_div_q. + (SIZE_LOG): Up to 17. + + * mpn/generic/div_q.c: New file. + * configure.in (gmp_mpn_functions): Add div_q. + + * mpn/generic/mu_div_q.c: Actually declare dividend constant. + +2010-01-04 Torbjorn Granlund + + * tune/tuneup.c (fft): Separate tuning of modf and full products. + (struct fft_param_t): New field, mul_modf_function. + (tune_fft_sqr): Fix typo. + (tune_fft_mul, tune_fft_sqr): Initialise mul_modf_function field. + * tune/common.c (speed_mpn_fft_mul, speed_mpn_fft_sqr): New functions. + + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): Clean up. + + * mpn/generic/mul.c: Simplify rational expression. + + * gmp-impl.h: Cleanup threshold variables; remove obsolete ones and + make all possibly needed definitions for existing ones. + * tune/tuneup.c (tune_mul): Write fractions-compensated values to + threshold variables. + +2010-01-03 Marco Bodrato + + * tune/common.c, tune/speed.c, tune/speed.h: Support measuring + mpn_toom43_mul. + + * mpn/generic/toom_interpolate_6pts.c: Small reorganisation. + +2010-01-03 Torbjorn Granlund + + * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to + INV_MULMOD_BNM1_THRESHOLD/2 instead. + + * gmp-impl.h (INV_APPR_THRESHOLD, INV_MULMOD_BNM1_THRESHOLD): Default + here... + * mpn/generic/invert.c, mpn/generic/invertappr.c: ...not here. + + * tests/mpn/t-div.c: Rewrite operand generation code. + +2010-01-02 Torbjorn Granlund + + * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to + INV_MULMOD_BNM1_THRESHOLD. + +2010-01-02 Marco Bodrato + + * mpn/generic/dcpi1_div_q.c: Handle divappr approximation problem more + efficiently. + * mpn/generic/mu_div_q.c: Likewise. + + * mpn/generic/invert.c: Remove duplicated code. + +2010-01-01 Torbjorn Granlund + + * gmp-impl.h (MUL_TO_MULMOD_BNM1_FOR_2NXN_THRESHOLD): Default to 0. + + * mpn/generic/mu_div_qr.c: Rewrite to use mpn_mulmod_bnm1. Clean up + scratch usage. Improve itch functions. + * mpn/generic/mu_divappr_q.c: Likewise. + * mpn/generic/mu_bdiv_qr.c: Likewise. + * mpn/generic/mu_div_q.c: Likewise. + + * mpn/generic/dcpi1_bdiv_qr.c: Add parameter ASSERTs. + * mpn/generic/dcpi1_bdiv_q.c: Likewise. + + * tests/mpn/t-bdiv.c: Replace with unit testing code, based on t-div.c. + Increase COUNT to 500. + + * tests/mpn/t-div.c: Avoid generating too small test operands. + Move SB suppression limit downwards. Increase COUNT to 200. + +2009-12-31 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Handle numerator/remainder overlap in MU case. + + * tests/tests.h (TESTS_REPS): New macro. + * tests/mpz/dive.c: Use larger operands, decrease default reps, use + TESTS_REPS. + * tests/mpz/convert.c: Likewise. + * tests/mpz/t-sqrtrem.c: Likewise. + * tests/mpz/reuse: Likewise. + * tests/mpz/t-root.c: Likewise. + * tests/mpz/t-tdiv.c: Likewise. + * tests/mpz/t-gcd.c: Likewise. + * tests/mpz/t-powm.c: Likewise. + +2009-12-31 Marco Bodrato + + * mpn/generic/toom8_sqr.c (SQR_TOOM8_MAX): Avoid overflow. + * mpn/generic/toom6_sqr.c (SQR_TOOM6_MAX): Likewise. + + * mpn/generic/mulmod_bnm1.c: Don't mention MISUSE any more, + simply consider UNLIKELY any unexpected size. + +2009-12-31 Torbjorn Granlund + + * tune/tuneup.c (speed_mpn_sbordcpi1_div_qr): New function. + (tune_mu_div): Use it. + +2009-12-30 Torbjorn Granlund + + * tune/tuneup.c (tune_mu_bdiv, tune_dc_bdiv, tune_mu_div) + (tune_dc_div): Clear global s.r to make speed functions do 2n/n. + + * tune/speed.c (routine): New entries for mpn_mu_div_qr and + mpn_mupi_div_qr. Allow .r parameter for mpn_sbpi1_div_qr, + mpn_dcpi1_div_qr. + * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV, SPEED_ROUTINE_MPN_MU_DIV_QR) + (SPEED_ROUTINE_MPN_MUPI_DIV_QR): Handle .r parameter. + + * tests/mpz/t-tdiv.c: Increase operands size again. + + * mpn/generic/tdiv_qr.c: Attempt to choose between DC and MU cleverer. + + * mpn/generic/tdiv_qr.c: Don't overwrite rp with unnecessary temporary + alloc. + +2009-12-29 Torbjorn Granlund + + * tune/tuneup.c (tune_mu_div): Tune MUPI_DIV_QR_THRESHOLD. + * tune/speed.h (struct speed_params): Allow 3 source operands. + (SPEED_ROUTINE_MPN_MUPI_DIV_QR): New macro. + * tune/common.c (speed_mpn_mupi_div_qr): New function. + + * mpn/generic/tdiv_qr.c: Call mpn_mu_div_qr. + + * tests/mpz/t-tdiv.c: Use larger test operands. + + * mpn/generic/mu_div_qr.c (mpn_mu_div_qr2): Remove code for dn==1. + + * mpz/mul.c: Call mpn_sqr directly. Use PTR,SIZ,ALLOC. + + * tune/tuneup.c (tune_mu_div): Set min_size to 6, DC functions require + this. + + * tests/mpn/t-div.c: Call mu_div functions with operands that generate + a high quotient limb. + + * mpn/generic/mu_div_qr.c: Rewrite to return a high quotient limb, + to let dividend argument be constant, and as a general cleanup. + * mpn/generic/mu_divappr_q.c: Likewise. + * mpn/generic/mu_div_q.c: Likewise. + * gmp-impl.h: Update declarations of changed functions. + + * mpn/generic/invertappr.c (mpn_invertappr): Allocate scratch space + when caller passed NULL. + +2009-12-28 Torbjorn Granlund + + * mpn/generic/toom_couple_handling.c: Prefix name with mpn_. + * gmp-impl.h: Likewise. + * mpn/generic/toom63_mul.c: Likewise. + * mpn/generic/toom6_sqr.c: Likewise. + * mpn/generic/toom6h_mul.c: Likewise. + * mpn/generic/toom8_sqr.c: Likewise. + * mpn/generic/toom8h_mul.c: Likewise. + + * configure.in (gmp_mpn_functions_optional) Move "com" from here... + (gmp_mpn_functions): ...to here. + * mpn/generic/com.c: New file. + * (mpn_com): New name for mpn_com_n. Make public. + * (mpn_neg): Analogous changes. + + * tune/tuneup.c (tune_mu_div, tune_mu_bdiv): Set step_factor. + + * tune/common.c, tune/speed.c, tune/speed.h: Support measuring + mpn_lshiftc. + + * tests/devel/try.c: Test mpn_lshiftc. + * tests/refmpn.c (refmpn_com): New function. + (refmpn_lshiftc): Likewise. + + * configure.in (gmp_mpn_functions_optional) Move lshiftc from here... + (gmp_mpn_functions): ...to here. + * mpn/generic/lshiftc.c: New file. + * mpn/x86_64/lshiftc.asm: New file. + * mpn/x86_64/core2/lshiftc.asm: New file. + * mpn/generic/mul_fft.c (mpn_lshiftc): Remove. + + * mpn/x86_64/core2/lshift.asm: Tweak for better Core iN performance. + * mpn/x86_64/core2/rshift.asm: Likewise. + +2009-12-27 Marco Bodrato + + * mpn/generic/mul.c: Use toom6h and toom8h for almost balanced. + + * mpn/generic/mullo_n.c (mpn_dc_mullo_n): New ratio, to be used in + Toom-8 range. + +2009-12-27 Torbjorn Granlund + + * (mpn_sqr): New name for mpn_sqr_n. Many files affected. + + * tune/tuneup.c (tune_mullo): Up step_factor for MULLO_MUL_N_THRESHOLD. + (tune_invertappr, tune_invert, tune_binvert): Let max_size default. + + * tune/tuneup.c (tune_mu_div, tune_mu_bdiv) New functions. + * tune/speed.h (SPEED_ROUTINE_MPN_MU_DIV_Q): New macro. + (SPEED_ROUTINE_MPN_MU_DIV_QR): Likewise. + (SPEED_ROUTINE_MPN_MU_BDIV_Q): Likewise. + (SPEED_ROUTINE_MPN_MU_BDIV_QR): Likewise. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add bdiv_q.c and bdiv_qr.c. + * tune/common.c (speed_mpn_mu_div_qr): New function. + (speed_mpn_mu_divappr_q): Likewise. + (speed_mpn_mu_div_q): Likewise. + (speed_mpn_mu_bdiv_q): Likewise. + (speed_mpn_mu_bdiv_qr): Likewise. + + * mpn/*/gmp-mparam.h: Fix incorrect MOD_1U_TO_MOD_1_1_THRESHOLD 0 + values. + + * gmp-impl.h (MODEXACT_1_ODD_THRESHOLD): Remove. + (BMOD_1_TO_MOD_1_THRESHOLD): New parameter, with the reverse meaning of + MODEXACT_1_ODD_THRESHOLD. + (MPN_MOD_OR_MODEXACT_1_ODD): Use BMOD_1_TO_MOD_1_THRESHOLD. + * mpn/generic/divis.c, mpz/{cong.c,cong_ui.c,divis_ui.c}: Likewise. + * tune/tuneup.c (tune_modexact_1_odd): Tune BMOD_1_TO_MOD_1_THRESHOLD; + Do not assume native mpn_modexact_1_odd is faster than mpn_mod_1. + (tuned_speed_mpn_mod_1): Remove variable. + (tune_mod_1): Fix thinkos. Suppress printing of "always" etc. + (all): Measure for divrem_1, mod_1, divexact_1, etc first, since Toom + depends on some of them. + + * mpn/generic/toom22_mul.c (TOOM22_MUL_REC): New name for + TOOM22_MUL_MN_REC. + +2009-12-26 Niels Möller + + * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Relax + requirements a bit. + + * mpn/generic/toom32_mul.c (mpn_toom32_mul): Relax requirement on + input sizes, to support s+t>=n (used to be s+t>=n+2). Keep high + limbs of the evaluated values in scalar variables. + + * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Remove + unused variables. + + * mpn/generic/toom32_mul.c (mpn_toom32_mul): Fixed left-over use + of mpn_addsub_n which should be mpn_add_n_sub_n. + +2009-12-26 Marco Bodrato + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add new toom files (spotted by Torbjorn). + + * gmp-impl.h (mpn_toom6_sqr_itch): Rename to mpn_toom6_mul_n_itch and redefine. + (mpn_toom8_sqr_itch): Rename to mpn_toom8_mul_n_itch and redefine. + * mpn/generic/mul_n.c: Use renamed _itch macros. + +2009-12-25 Niels Möller + + * tests/mpn/t-toom32.c (MIN_AN, MIN_BN, MAX_BN): Tightened requirements. + * gmp-impl.h (mpn_toom32_mul_itch): Updated. Less scratch needed + by toom32 itself, and also the pointwise multiplications are + currently mpn_mul_n with no supplied scratch. + * mpn/generic/toom32_mul.c (mpn_toom32_mul): Reorganized + interpolation to use less scratch space. No longer supports the + most extreme size ratios. + +2009-12-25 Torbjorn Granlund + + * tune/tuneup.c (tune_preinv_mod_1): Purge. + (tune_mod_1): Use speed_mpn_mod_1_tune for + PREINV_MOD_1_TO_MOD_1_THRESHOLD + + * mpn/generic/dcpi1_divappr_q.c: Handle 2n/n properly. Don't use full + precision in mpn_sbpi1_divappr_q call. Misc cleanup. + + * tune/tuneup.c (tune_mod_1): Add a check_size for + PREINV_MOD_1_TO_MOD_1_THRESHOLD. + +2009-12-24 Torbjorn Granlund + + * tune/mod_1_div.c (MOD_1N_TO_MOD_1_1_THRESHOLD, + (MOD_1U_TO_MOD_1_1_THRESHOLD): Set. + * tune/mod_1_inv.c (MOD_1N_TO_MOD_1_1_THRESHOLD, + (MOD_1U_TO_MOD_1_1_THRESHOLD): Set. + + * gmp-impl.h (USE_PREINV_MOD_1): Remove. + (MPN_MOD_OR_PREINV_MOD_1): Define to choose functions dynamically in + terms of PREINV_MOD_1_TO_MOD_1_THRESHOLD (used to choose statically + using USE_PREINV_MOD_1). + * mpn/generic/perfsqr.c (PERFSQR_MOD_PP): Corresponding updates. + + * tune/tuneup.c (tune_mod_1): Rewrite. + * gmp-impl.h (MOD_1N_TO_MOD_1_1_THRESHOLD): New. + (MOD_1U_TO_MOD_1_1_THRESHOLD): New name for MOD_1_1_THRESHOLD. + (MOD_1_1_TO_MOD_1_2_THRESHOLD): Mew name for MOD_1_2_THRESHOLD. + (MOD_1_2_TO_MOD_1_4_THRESHOLD): New name for MOD_1_4_THRESHOLD. + * mpn/generic/mod_1.c: Corresponding updates. + +2009-12-24 Marco Bodrato + + * mpn/generic/mul_n.c: Use also toom6h and toom8h. + * mpn/generic/sqr_n.c: Use also toom6 and toom8. + * gmp-impl.h: Initial support for tuning of Toom-6half and Toom-8half. + * tune/tuneup.c: Tune Toom-6half and Toom-8half thresholds. + +2009-12-24 Torbjorn Granlund + + * mpn/generic/mod_1_4.c: Get ASSERT right. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_2.c: Likewise. + + * mpn/generic/powm_sec.c: Use SQR_TOOM2_THRESHOLD as limit for a native + mpn_sqr_basecase, not TUNE_SQR_TOOM2_MAX. + +2009-12-23 Marco Bodrato + + * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring + mpn_toom8h_mul and mpn_toom8_sqr speed. + + * mpn/generic/toom_eval_pm2exp.c: Fix ASSERTs. + + * mpn/generic/toom8h_mul.c: New file. + * mpn/generic/toom8_sqr.c: New file. + * mpn/generic/toom_interpolate_16pts.c: New file. + * gmp-impl.h: Provide corresponding declarations. + * configure.in (gmp_mpn_functions): List toom_interpolate_16pts, + toom8h_mul, and toom8h_sqr. + * tests/mpn/t-toom8h.c: New test program. + + * mpn/generic/toom6_sqr.c: New file, was part of toom6h_mul. + * mpn/generic/toom6h_mul.c: Removed _sqr. + + * mpn/generic/mulmod_bnm1.c: Nailify CRT. + * mpn/generic/sqrmod_bnm1.c: Likewise. + + * mpn/generic/mullo_n.c: Split dc_mullo_n function; + ALLOC memory at once. + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Update. + + * mpn/generic/toom6h_mul.c: Add prefix to toom_interpolate_12pts. + * mpn/generic/toom_interpolate_12pts.c: Likewise. + + * mpn/generic/invertappr.c (mpn_bc_invertappr): Use mpn_divrem_2. + * mpn/generic/invert.c: Faster basecase, use mpn_sbpi1_div_q. + + * mpn/generic/toom_eval_pm2exp.c: Assert support for degree 3. + * mpn/generic/toom6h_mul.c: Avoid obsolete _itch function. + +2009-12-23 Torbjorn Granlund + + * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring + mpn_mod_1_1p, mpn_mod_1s_2p, mpn_mod_1s_3p, mpn_mod_1s_4p. + + * tests/mpz/t-powm.c: Test mpz_powm_sec. + + * mpz/powm_sec.c: New file. + * gmp-h.in: Declare it. + * Makefile.am, mpz/Makefile.am: Compile it. + * doc/gmp.texi: Document it. + + * mpn/generic/powm_sec.c (mpn_powm_sec_itch): New function. + (mpn_powm_sec): Use passed scratch, no local allocation. + Allow exp argument = 1. + (win_size): Start loop from 1. + + * mpn/generic/powm.c (win_size): Start loop from 1. + +2009-12-22 Torbjorn Granlund + + * tests/mpn/t-div.c: New file. + * tests/mpn/Makefile.am: Compile it. + + * mpn/generic/mu_divappr_q.c: Handle quotient overflow. + + * mpn/generic/mu_div_q.c (mpn_mu_div_q_itch): New function. + +2009-12-22 Niels Möller + + * mpn/generic/sbpi1_div_q.c: Use udiv_qr_3by2. Intended to change + nothing after preprocessing. + + * mpn/generic/sbpi1_divappr_q.c: For the last call to udiv_qr_3by2, + avoid using memory locations as output parameters, and revert to + explicitly copying n1 and n0 to memory. + + * gmp-impl.h (udiv_qr_3by2): Tweaked to expand to precisely the + same code as was used before the introduction of this macro. + Eliminated some local variables, instead do multiple updates to + the output parameters. + +2009-12-22 Torbjorn Granlund + + * tests/mpn/t-toom6h.c (MIN_AN): Set to MUL_TOOM6H_THRESHOLD to avoid + invalid recursive sizes. + + * tests/mpn/t-bdiv.c: Get itch function calls right. + + * mpn/generic/mu_bdiv_q.c (mpn_mu_bdiv_q_itch): Rewrite. + * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Simplify. + + * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Simplify, don't allocate. + (mpn_bdiv_qr_itch): Conditionalise on MU_BDIV_QR_THRESHOLD. + +2009-12-18 Niels Möller + + * tests/mpn/t-bdiv.c: Add red-zones. + +2009-12-21 Torbjorn Granlund + + * mpn/generic/sbpi1_div_q.c: Fix fixup code to work for qn = 0. + + * mpn/generic/dcpi1_divappr_q.c: Handle qn = 1 and qn = 2 for initial + quotient block (code block copied from dcpi1_div_qr.c). + + * mpn/generic/dcpi1_div_qr.c: Rewrite singular case giving q limb of + GMP_NUMB_MAX. Remove an impossible qn = 0 case. + + * mpn/generic/dcpi1_bdiv_q.c: Remove a spurious mpn_sub_1. + + * mpn/generic/mul.c: Put back call to mpn_mul_n. + + * tune/tuneup.c (all): Call tune_mulmod_bnm1 before tuning fft due to + dependency on mulmod_bnm1 from both mul_fft_mul and from mullo_n. + + * mpn/generic/dcpi1_divappr_q.c: ASSERT that dn >= 6 and nn > dn. + * mpn/generic/dcpi1_div_q.c: ASSERT that dn >= 6 and nn-dn >= 3. + * mpn/generic/dcpi1_div_qr.c: ASSERT that dn >= 6 and nn-dn >= 3. + + * mpn/generic/bdiv_q_1.c (mpn_pi1_bdiv_q_1): Renamed from + mpn_bdiv_q_1_pi1. + * All references changed. + + * configure.in: Add --enable-old-fft-full. + * tune/speed.c (routine): Conditionalise mpn_mul_fft_full references on + WANT_OLD_FFT_FULL. + * tune/common.c (speed_mpn_mul_fft_full) + (speed_mpn_mul_fft_full_sqr): Likewise. + * mpn/generic/mul_fft.c (mpn_mul_fft_full): Include iff + WANT_OLD_FFT_FULL. + +2009-12-21 Marco Bodrato + + * gmp-impl.h (mpn_toom6h_mul_itch): New inline function. + (MUL_TOOM6H_THRESHOLD): Default value. + (SQR_TOOM6_THRESHOLD): Default value. + * mpn/generic/toom6h_mul.c: Remove definitions moved to gmp-impl.h. + * tune/common.c, tune/speed.c, tune/speed.h: Support for measuring + mpn_toom6h_mul and mpn_toom6_sqr speed. + + * mpn/generic/toom63_mul.c: Remove unused TMP_*. + + * mpn/generic/toom_eval_pm2rexp.c: New file. + * gmp-impl.h: Provide corresponding declaration. + * configure.in (gmp_mpn_functions): List toom_eval_pm2rexp. + * mpn/generic/toom6h_mul.c: Use shared toom_eval_pm2rexp. + + * mpn/generic/toom_couple_handling.c: New file, helper function + for high degree Toom. + * gmp-impl.h: Provide corresponding declaration. + * configure.in (gmp_mpn_functions): List toom_couple_handling. + * mpn/generic/toom6h_mul.c: Use shared toom_couple_handling. + * mpn/generic/toom63_mul.c: Likewise. + + * mpn/generic/toom6h_mul.c: New file. + * mpn/generic/toom_interpolate_12pts.c: New file. + * gmp-impl.h: Provide corresponding declarations. + * configure.in (gmp_mpn_functions): List toom_interpolate_12pts, + toom6h_mul. + * tests/mpn/t-toom6h.c: New test program. + + * tests/mpn/t-mulmod_bnm1.c (ref_mulmod_bnm1): Use ref_mul. + * tests/mpn/t-sqrmod_bnm1.c (ref_sqrmod_bnm1): Likewise. + +2009-12-20 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): New CRT. + * mpn/generic/sqrmod_bnm1.c (mpn_sqrmod_bnm1): Likewise. + +2009-12-20 Torbjorn Granlund + + * Change all bit counts for bignums to use mp_bitcnt_t. + + * mpn/generic/bdivmod.c: File removed. All references purged. + + * mpn/generic/mul_fft.c (mpn_mul_fft_full): Disable. + + * gmp-impl.h: Define mpn_fft_mul as an alias for mpn_nussbaumer_mul. + * mpn/generic/mul.c: Refer mpn_fft_mul. + * mpn/generic/mul_n.c: Likewise. + * mpn/generic/sqr_n.c: Likewise. + * mpn/generic/mullo_n.c: Likewise. + + * mpn/generic/mul.c: Loop also over mpn_nussbaumer_mul, as suggested by + Marco. Use TMP_SALLOC_LIMBS in more places. Clean up ws allocation. + +2009-12-19 Marco Bodrato + + * mpn/generic/toom_interpolate_8pts.c: Nailify. + +2009-12-19 Torbjorn Granlund + + * mpn/generic/mul.c: Major rewrite. Use toom43, toom53, toom63. + Call mpn_nussbaumer_mul for largest operands. + + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM43_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM43_FOR_TOOM32_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM32_FOR_TOOM53_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM32_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM42_FOR_TOOM53_MUL): New macro. + (SPEED_ROUTINE_MPN_TOOM53_FOR_TOOM42_MUL): New macro. + * tune/common.c (speed_mpn_toom63_mul): New function. + (speed_mpn_toom32_for_toom43_mul): New function. + (speed_mpn_toom43_for_toom32_mul): New function. + (speed_mpn_toom32_for_toom53_mul): New function. + (speed_mpn_toom53_for_toom32_mul): New function. + (speed_mpn_toom42_for_toom53_mul): New function. + (speed_mpn_toom53_for_toom42_mul): New function. + * tune/tuneup.c (tune_mul_n): New name for old tune_mul. + (tune_sqr_n): New name for old tune_sqr. + (tune_mul): New function, for unbalanced multiplication. + * gmp-impl.h: Provide declarations for corresponding threshold vars. + + * gmp-impl.h (mpn_rsh1add_nc, mpn_rsh1sub_nc): Declare. + * mpn/asm-defs.m4: Likewise. + * configure.in: Add corresponding HAVE_NATIVEs. + * mpn/x86_64/rsh1aors_n.asm: Add _nc entry point. + +2009-12-18 Niels Möller + + * mpz/divexact.c: Rewrite to use mpn_divexact. + + * mpn/generic/bdiv_q_1.c (mpn_bdiv_q_1): Deleted some unused + variables. + + * mpn/generic/toom52_mul.c (mpn_toom52_mul) + [HAVE_NATIVE_mpn_add_n_sub_n]: Moved declaration of cy to avoid a + compiler warning. + + * gmp-impl.h (gmp_pi1_t): Eliminated inv21 member. + (invert_pi1): ...and don't store it here. + + * mpn/generic/toom63_mul.c (mpn_toom63_mul): Simplified + calculation of block size n. + * gmp-impl.h (mpn_toom63_mul_itch): Likewise. + + * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Fixed + output asserts. + +2009-12-18 Torbjorn Granlund + + * tests/mpn/t-toom63.c: New test program. + +2009-12-18 Marco Bodrato + + * mpn/generic/invert.c: Nailify. + * mpn/generic/invertappr.c: Nailify. + * mpn/generic/mulmod_bnm1.c: Nailify. + * mpn/generic/sqrmod_bnm1.c: Nailify. + + * tests/mpn/t-invert.c: New test program. + + * mpn/generic/toom63_mul.c: New file. + * mpn/generic/toom_interpolate_8pts.c: New file. + * gmp-impl.h: Provide corresponding declarations. + * configure.in (gmp_mpn_functions): List toom_interpolate_8pts and + toom63_mul. + +2009-12-17 Torbjorn Granlund + + * mpn/generic/mul.c: Move allocation of ws to where it is used. + Identify toom22, 32, 42, in that order (in two places). Use midline + between toom22, 32, 42. + * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): Call also + mpn_toom32_mul. + + * doc/gmp.texi: Update References section. Update Contributors + section. Misc updates. + + * gmp-impl.h: Renew default values for all THRESHOLDs. + +2009-12-17 Niels Möller + + * mpn/generic/divexact.c (mpn_divexact): Don't require that the + dividend is normalized. Use MPN_DIVREM_OR_PREINV_DIVREM_1. When + shifting, allocate and process only the low qn+1 limbs. Eliminated + code for the impossible case nn < qn. + + * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): Added some input + asserts. + + * mpn/generic/dcpi1_div_qr.c (mpn_dcpi1_div_qr): In the case that + the initial quotient block is a single limb, use 3/2 division, + thereby eliminating the only use of gmp_pi1_t->inv21. + +2009-12-17 Marco Bodrato + + * mpn/generic/invert.c: Added some comment. + * mpn/generic/invertappr.c: Slightly better threshold handling. + * gmp-impl.h (INV_NEWTON_THRESHOLD): Default to 200. + + * mpn/generic/nussbaumer_mul.c: New file. + * configure.in (gmp_mpn_functions): Add nussbaumer_mul. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add nussbaumer_mul. + * gmp-impl.h (mpn_nussbaumer_mul): Added prototype and name-mangling. + * tune/speed.h (speed_mpn_nussbaumer_mul): Declare function. + * tune/common.c (speed_mpn_nussbaumer_mul): New function. + * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul. + + * mpn/generic/sqrmod_bnm1.c: New file. + * configure.in (gmp_mpn_functions): Add sqrmod_bnm1. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqrmod_bnm1. + * gmp-impl.h (mpn_sqrmod_bnm1): Added prototype and name-mangling. + (SQRMOD_BNM1_THRESHOLD): support for the new threshold. + * tune/speed.h (speed_mpn_sqrmod_bnm1): Declare function. + * tune/common.c (speed_mpn_sqrmod_bnm1): New function. + * tune/speed.c (routine): Add speed_mpn_sqrmod_bnm1. + * tests/mpn/t-mulmod_bnm1.c: Attribution. + * tests/mpn/t-sqrmod_bnm1.c: New test file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add t-sqrmod_bnm1. + + * tune/tuneup.c: Tune SQRMOD_BNM1_THRESHOLD. + + * mpn/generic/nussbaumer_mul.c (mpn_nussbaumer_mul): Mimic fft_mul, + use squaring if operands coincide. + * tune/speed.h (speed_mpn_nussbaumer_mul_sqr): Declare function. + * tune/common.c (speed_mpn_nussbaumer_mul_sqr): New function. + * tune/speed.c (routine): Add speed_mpn_nussbaumer_mul_sqr. + +2009-12-17 Torbjorn Granlund + + * mpn/generic/bdiv_q.c (mpn_bdiv_q_itch): Rewrite. + +2009-12-16 Torbjorn Granlund + + * tests/mpn/t-bdiv.c (bdiv_q_valid_p, bdiv_qr_valid_p): Call refmpn_mul + instead of refmpn_mul_basecase. + * tests/mpn/toom-shared.h: Likewise. + * tests/refmpn.c (refmpn_mullo_n,refmpn_sqr,refmpn_mul_any): Likewise. + + * minithres/gmp-mparam.h: Add new thresholds, trim old values. + + * mpn/generic/powm.c: Use mp_bitcnt_t for bit counts. + Handle REDC_1_TO_REDC_N_THRESHOLD < MUL_TOOM22_THRESHOLD in + non-WANT_REDC_2 INNERLOOP expansion code. + * mpn/generic/powm_sec.c: Use mp_bitcnt_t for bit counts. + +2009-12-16 Niels Möller + + * tests/mpz/t-gcd.c (main): Added test case to exercise the + unlikely u0 == u1 case in mpn_gcdext_lehmer_n. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Get ASSERT + right. + +2009-12-16 Torbjorn Granlund + + * tests/mpz/t-mul.c: Misc cleanups. + (mul_basecase): Remove. + (ref_mpn_mul): Remove. + * tests/refmpn.c (refmpn_mul): New function, mainly from t-mul.c's + ref_mpn_mul. + (refmpn_mullo_n): Add a missing free. + + * tune/speed.c (routine): Measure speed_mpn_{sb,dc}pi1_div_qr, + mpn_{sb,dc}pi1_divappr_q, mpn_{sb,dc}pi1_bdiv_qr, and + mpn_{sb,dc}pi1_bdiv_q. + + * mpn/generic/invertappr.c: New file, meat from invert.c. + * mpn/generic/invert.c: Leave just mpn_invert.c. + * configure.in (gmp_mpn_functions): Add invertappr. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invertappr.c. + * gmp-impl.h (mpn_invert_itch, mpn_invertappr_itch): New macros. + +2009-12-15 Torbjorn Granlund + + * mpn/generic/gcdext_subdiv_step.c: Get an ASSERT right. + +2009-12-15 Niels Möller + + * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): A very small step + towards nail support. + +2009-12-15 Marco Bodrato + + * gmp-impl.h (mpn_ni_invertappr): Added prototype and name-mangling. + * mpn/generic/mulmod_bnm1.c: Comment representation of class [0]. + +2009-12-14 Niels Möller + + * mpn/generic/sbpi1_divappr_q.c (mpn_sbpi1_divappr_q): Use + udiv_qr_3by2. + +2009-12-14 Torbjorn Granlund + + * tune/tuneup.c (tune_binvert): Remove BINV_MULMOD_BNM1_THRESHOLD + tuning, it was always zero and caused BINV_NEWTON_THRESHOLD to be + wrong (as pointed out by Marco). + * (BINV_MULMOD_BNM1_THRESHOLD): Clean from other files too. + +2009-12-14 Marco Bodrato + + * mpn/generic/invert.c: Improved comments. + (mpn_bc_invertappr): Conditionally re-enable mpn_dcpi1_divappr_q. + +2009-12-14 Niels Möller + + * gmp-impl.h (udiv_qr_3by2): Fix typo in argument list. + +2009-12-13 Niels Möller + + * gmp-impl.h (udiv_qr_3by2): New macro. + * mpn/generic/sbpi1_div_qr.c (mpn_sbpi1_div_qr): Use udiv_qr_3by2. + +2009-12-13 Torbjorn Granlund + + * mpn/generic/dcpi1_divappr_q.c (mpn_dcpi1_divappr_q): Avoid a buffer + overrun. + + * mpn/generic/mul_fft.c (mpn_mul_fft_full): Handle carry-out from 2nd + mpn_mul_fft, add an ASSERT for the 1st mpn_mul_fft. Replace some + comments on cc's range with ASSERTs. + + * mpn/generic/gcdext.c (compute_v): Normalise tp[] after mpn_mul. + + * mpz/powm.c: Rework buffer handling. + +2009-12-13 Niels Möller + + * tests/mpn/toom-shared.h (main): Use refmpn_mul_basecase to check + results (slow!). Iteration counts of all toom tests reduced + considerably. + +2009-12-13 Marco Bodrato + + * mpn/generic/invert.c (mpn_invertapp): Split in _bc and _ni. + (mpn_bc_invertappr): New function, the basecase. + (mpn_ni_invertapp): New function, Newton iteration. + (mpn_invert): Use mpn_ni_invertapp. + * tune/tuneup.c (tune_invert): Min for INV_APPR_THRESHOLD. + (tune_invertappr): Min for INV_NEWTON_THRESHOLD. + + * tune/speed.h (SPEED_ROUTINE_MPN_NI_INVERTAPPR): New macro. + (speed_mpn_ni_invertappr): Declare function. + * tune/common.c (speed_mpn_ni_invertappr): New function. + * tune/speed.c (routine): Add speed_mpn_ni_invertappr. + + * tune/tuneup.c (tune_invertappr): Use speed_mpn_ni_invertappr to + tune INV_MULMOD_BNM1_THRESHOLD. + +2009-12-12 Torbjorn Granlund + + * mpn/generic/mu_bdiv_qr.c (mpn_mu_bdiv_qr_itch): Rewrite. + +2009-12-12 Marco Bodrato + + * tests/mpn/t-mulmod_bnm1.c (main): Disable B^n+1 stressing test + for odd sizes. + + * mpn/generic/invert.c: Complete rewrite. Uses Newton iterations. + * gmp-impl.h (mpn_invertappr): Added prototype and name-mangling. + (mpn_invertappr_itch): Added prototype and name-mangling. + (INV_APPR_THRESHOLD): Support for a new tunable const. + * tune/speed.h (SPEED_ROUTINE_MPN_INVERTAPPR): New macro. + (speed_mpn_invertappr): Declare function. + * tune/common.c (speed_mpn_invertappr): New function. + * tune/speed.c (routine): Add speed_mpn_invertappr. + * tune/tuneup.c (tune_invertappr): New function: was tune_invert. + (tune_invert): Now tune only INV_APPR_THRESHOLD. + (all): Enable call to tune_invert and tune_invertappr. + +2009-12-11 Torbjorn Granlund + + * mpn/generic/binvert.c: Use mpn_mulmod_bnm1 instead of FFT wrapping. + Old, evidently broken wrapping code removed. + * tune/tuneup.c (tune_binvert): Tune BINV_MULMOD_BNM1_THRESHOLD. + * gmp-impl.h: Provide declarations for corresponding threshold var. + + * tests/mpn/t-bdiv.c (COUNT): Decrease to keep run time reasonable. + + * tune/tuneup.c (tune_invert): Tune INV_MULMOD_BNM1_THRESHOLD. + * gmp-impl.h: Provide declarations for corresponding threshold var. + + * tests/mpn/t-mulmod_bnm1.c: Avoid a division by zero. + + * configure.in: Set up different paths for different 64-bit sparc + processors. + * mpn/sparc64/ultrasparc34/gmp-mparam.h: New file. + +2009-12-10 Torbjorn Granlund + + * mpn/*/gmp-mparam.h: Regenerate many of these files. + +2009-12-10 Niels Möller + + * gmp-impl.h (mpn_divexact): Removed scratch pointer from + prototype. + * mpn/generic/gcdext.c (divexact): Deleted, moved to... + * mpn/generic/divexact.c (mpn_divexact): New implementation (moved + from gcdext.c). The bidirectional divexact is kept but #if:ed out. + Interface change, since the new code doesn't take a scratch + argument. + + * tests/mpn/t-mulmod_bnm1.c (main): Ensure that an >= bn. Lowered + MIN_N to 1. Various fixes to handle n == 1 properly. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Small interface + change, require an >= bn. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Fixed non-recursive + case to not write beyond end of result area. + +2009-12-09 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL): New macro, made + from now deleted SPEED_ROUTINE_MPN_MULMOD_BNM1. + * tune/common.c (speed_mpn_bc_mulmod_bnm1): New function. + (speed_mpn_mulmod_bnm1): Use SPEED_ROUTINE_MPN_MULMOD_BNM1_CALL. + * tune/speed.c (routine): Add mpn_bc_mulmod_bnm1. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite. + + * tune/tuneup.c (tune_mulmod_bnm1): Rewrite. + +2009-12-08 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c (mpn_bc_mulmod_bnm1, + mpn_bc_mulmod_bnp1): Added a parameter for scratch area, possibly + same as result area (as suggested by Niels Möller). + (mpn_mulmod_bnm1): Calls changed accordingly. + +2009-12-08 Niels Möller + + * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: Use + table lookup for count_trailing_zeros. Binary algorithm still + disabled by default. + + * mpn/generic/gcdext.c (divexact): Local definition of divexact, + using mpn_bdiv_q. + (compute_v): Use it. + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-bdiv. + + * tests/mpn/t-bdiv.c: New file. + + * mpn/generic/bdiv_q.c (mpn_bdiv_q): Fixed bad quotient length, + should have qn == nn. + + * mpn/generic/bdiv_qr.c (mpn_bdiv_qr): Pass correct nn length to + the lower-level functions. + +2009-12-08 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1_ROUNDED): New define. + * tune/common.c (speed_mpn_mulmod_bnm1_rounded): New function. + * tune/speed.c (routine): Add mpn_mulmod_bnm1_rounded for measuring + mpn_mulmod_bnm1 at recommended sizes. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): Rewrite. + (mpn_bc_mulmod_bnm1): Use mpn_add_n instead of mpn_add. + + * tune/speed.c (routine): Add mpn_invert. + + * tune/tuneup.c (tune_invert): New function. + * tune/speed.h (SPEED_ROUTINE_MPN_INVERT): New macro. + * tune/common.c (speed_mpn_invert): New function. + * gmp-impl.h: Provide declarations for corresponding threshold var. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add invert.c. + +2009-12-08 Marco Bodrato + + * tests/devel/try.c: Test mpn_addlsh2_n and mpn_{add,sub}lsh_n; + mpn_rsblsh_n now tests all shift values. + * tests/refmpn.c (refmpn_addlsh_n, refmpn_sublsh_n): New functions. + (refmpn_addlsh1_n): Use generic refmpn_addlsh_n. + (refmpn_sublsh1_n): Use generic refmpn_sublsh_n. + (refmpn_addlsh2_n): New function. + * tests/tests.h: Declare new functions. + +2009-12-06 Torbjorn Granlund + + * tune/tuneup.c (tune_mulmod_bnm1): Up min_size to 12. + + * Globally: Rename *mullow* to *mullo*, *MULLOW* to *MULLO*. + + * configure.in: Don't include ev5 directory for ev6* and ev7. Misc + alpha path cleanups. + * mpn/alpha/add_n.asm: Replaced by mpn/alpha/ev5/add_n.asm. + * mpn/alpha/sub_n.asm: Replaced by mpn/alpha/ev5/sub_n.asm. + * mpn/alpha/lshift.asm: Replaced by mpn/alpha/ev5/lshift.asm. + * mpn/alpha/rshift.asm: Replaced by mpn/alpha/ev5/rshift.asm. + * mpn/alpha/com_n.asm: New, moved from mpn/alpha/ev5/rshift.asm. + * mpn/alpha/ev5/diveby3.asm: New, moved from mpn/alpha/diveby3.asm. + + * mpn/powerpc64/mode64/diveby3.asm: Remove, it is slower than + mpn_bdiv_dbm1c on all hardware. + + * mpn/generic/powm_sec.c: Rework logic for mpn_sqr_basecase size limit. + + * gmp-impl.h (mpn_redc_1_sec): Declare. + * configure.in (gmp_mpn_functions): Add redc_1_sec. + +2009-12-06 Marco Bodrato + + * tests/devel/try.c (try_one): DATA_SRC0_HIGHBIT sets the high bit. + +2009-12-05 Marco Bodrato + + * mpn/generic/toom_eval_dgr3_pm1.c: Change return value: 0 or ~0. + * mpn/generic/toom_eval_dgr3_pm2.c: Likewise. + * mpn/generic/toom_eval_pm1.c: Likewise. + * mpn/generic/toom_eval_pm2exp.c: Likewise. + * mpn/generic/toom_eval_pm2.c: Rewrite to use mpn_addlsh2_n. + + * mpn/generic/toom_interpolate_5pts.c: Param sa is a flag, not a sign. + + * mpn/generic/toom33_mul.c: Adapt to changes above. + * mpn/generic/toom3_sqr.c: Likewise. + * mpn/generic/toom42_mul.c: Likewise. + * mpn/generic/toom43_mul.c: Reduce branches. + * mpn/generic/toom44_mul.c: Likewise. + * mpn/generic/toom53_mul.c: Likewise. + * mpn/generic/toom62_mul.c: Likewise. + + * mpn/generic/toom52_mul.c: Use toom_eval_ functions. + + * mpn/generic/toom4_sqr.c: Avoid C99 construct. + * mpn/generic/toom_interpolate_7pts.c: Likewise. + +2009-12-05 Torbjorn Granlund + + * mpn/generic/redc_1_sec.c: New file. + * mpn/generic/powm_sec.c: Use redc_1_sec. Use dummy full subtract + instead of mpn_cmp since the latter leaks to the side channel. + (mpn_local_sqr_n): New function, with associated macros. + (mpn_powm_sec): Use mpn_local_sqr_n. + + * configure.in (HAVE_NATIVE): Add missing functions, then sort. + +2009-12-04 Torbjorn Granlund + + * tune/tuneup.c (tune_dc_div): Up min_size to 6. + (tune_mod_1): Set MOD_1_1_THRESHOLD min_size to 2. + + * tune/speed.h: Negate "binvert"-type inverses, as required. + + * mpn/generic/redc_1.c: Add ASSERTs. + * mpn/generic/redc_2.c: Likewise. + + * mpn/generic/sbpi1_bdiv_q.c: Simplify loops, indexing. + +2009-12-03 Yann Droneaud + + * acinclude.m4 ([long long reliability test 1]): Add a "static" for C99 + inline semantics compatibility. + +2009-12-03 Torbjorn Granlund + + * configure.in: Move intptr_t test into common AC_CHECK_TYPES. + + * mpn/generic/gcdext.c: Add a TMP_FREE. + +2009-12-03 Niels Möller + + * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: + Added various masking tricks. + + * mpn/generic/gcdext_1.c (mpn_gcdext_1) [GCDEXT_1_USE_BINARY]: + Reimplemented binary gcdext, with proper canonicalization. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Handle v == 0 + from mpn_gcdext_1. + * mpn/generic/gcdext_1.c (mpn_gcdext_1): Allow inputs with a < b, + assertions fixed accordingly. + +2009-12-03 Torbjorn Granlund + + * tune/tuneup.c: Tune DC_DIVAPPR_Q_THRESHOLD. Rewrite + DC_DIV_QR_THRESHOLD tuning code. + (tune_dc_div): Rewrite. + * tune/speed.h (SPEED_ROUTINE_MPN_PI1_DIV): New macro. + * tune/common.c (speed_mpn_sbpi1_div_qr, speed_mpn_dcpi1_div_qr, + speed_mpn_sbpi1_divappr_q, speed_mpn_sbpi1_bdiv_qr): New functions. + * gmp-impl.h: Provide declarations for corresponding threshold vars. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_divappr_q.c. + + * tune/tuneup.c (tune_binvert): Up max_size. + +2009-12-02 Marco Bodrato + + * tests/devel/try.c: Test mpn_rsblsh2_n and mpn_rsblsh_n. + * tests/refmpn.c (refmpn_rsblsh_n, refmpn_rsblsh2_n): New functions. + (refmpn_rsblsh1_n): Use generic refmpn_rsblsh_n. + * tests/tests.h: Declare new functions. + +2009-12-03 Niels Möller + + * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): + Select the right cofactor in the cases A == B or A == 2B. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Deleted + handling of ap[0] == 0 and bp[0] == 0; these cases don't happen. + Select the right cofactor in the case ap[0] == bp[0]. + * mpn/generic/gcdext.c (mpn_gcdext): Analogous changes. + +2009-12-02 Niels Möller + + * gmp-h.in (mpn_gcdext_1): Updated prototype. + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for + signed cofactors from gcdext_1. + * mpn/generic/gcdext_1.c (mpn_gcdext_1): Use Euclid's algorithm, + and return signed cofactors. + +2009-12-02 Torbjorn Granlund + + * doc/gmp.texi (Low-level Functions): Document mpn_sqr_n. + + * tune/speed.c (routine): Add mpn_binvert. + + * tune/tuneup.c: Tune BINV_NEWTON_THRESHOLD. + (tune_binvert): New function. + * tune/speed.h (SPEED_ROUTINE_MPN_BINVERT): New macro. + * tune/common.c (speed_mpn_binvert): New function. + * gmp-impl.h: Provide declarations for corresponding threshold var. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add binvert.c. + + * tune/tuneup.c: Tune DC_BDIV_QR_THRESHOLD and DC_BDIV_Q_THRESHOLD. + (tune_dc_bdiv): New function. + (tune_dc_div): New name for tune_dc. + * tune/speed.h (SPEED_ROUTINE_MPN_PI1_BDIV_QR, + SPEED_ROUTINE_MPN_PI1_BDIV_Q): New macros. + * tune/common.c (speed_mpn_sbpi1_bdiv_qr, speed_mpn_dcpi1_bdiv_qr, + speed_mpn_sbpi1_bdiv_q, speed_mpn_dcpi1_bdiv_q): New functions. + * gmp-impl.h: Provide declarations for corresponding threshold vars. + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add dcpi1_bdiv_qr.c and + dcpi1_bdiv_q.c. + +2009-12-01 Marco Bodrato + + * mpn/generic/toom53_mul.c: Removed double computation of vinf. + + * mpn/x86_64/aorrlsh_n.asm: Correct return value for rsblsh_n. + * mpn/asm-defs.m4 (define_mpn): Add rsblsh_n. + * gmp-impl.h (mpn_rsblsh_n): Added prototype and name-mangling. + + * mpn/generic/fib2_ui.c: Reduce the amount of temporary storage. + Use mpn_rsblsh_n. + +2009-12-01 Torbjorn Granlund + + * mpn/generic/redc_n.c: Rework temp allocation. + + * mpn/generic/dcpi1_bdiv_qr.c (mpn_dcpi1_bdiv_qr_n_itch): Add pi1 also + to this function. + + * mpn/generic/dcpi1_bdiv_q.c: Get the mpn_sbpi1_bdiv_q call right. + Misc cleanups. + + * tune/speed.c (routine): Fix typo in last change. + Add mpn_redc_2. + + * tune/speed.h (SPEED_ROUTINE_REDC_N): Set min size properly. + +2009-12-01 Niels Möller + + * tune/speed.c (routine): Added mpn_toom42_mul and mpn_redc_n. + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM42_MUL): New macro. + (speed_mpn_toom42_mul): Declare function. + * tune/common.c (speed_mpn_toom42_mul): New function. + * gmp-impl.h (MPN_TOOM42_MUL_MINSIZE): New constant. + +2009-11-30 Marco Bodrato + + * mpn/generic/fib2_ui.c: Use mpn_rsblsh2_n. + +2009-11-29 Torbjorn Granlund + + * mpn/x86_64/pentium4/gmp-mparam.h + (HAVE_NATIVE_mpn_addlsh1_n, HAVE_NATIVE_mpn_sublsh1_n): Don't undef. + + * Makefile.am (EXTRA_DIST): Remove macos. + +2009-11-28 Torbjorn Granlund + + * tune/tuneup.c (tune_redc): Set min_size to 16 for redc_n tuning. + + * mpn/x86_64/sqr_basecase.asm (SQR_TOOM2_THRESHOLD_MAX): Avoid quoting + to allow configure.in parse it more easily. Trim from 120 to 80. + +2009-11-28 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c: Basecases made simpler, this also corrects + a bug affecting previous version. + +2009-11-28 Torbjorn Granlund + + * configure.in: Handle atom also in 32-bit mode. + * mpn/x86/atom/gmp-mparam.h: New file. + + * gmp-impl.h (MULMOD_BNM1_THRESHOLD): Default. + + * mpn/generic/redc_n.c: Use mpn_mulmod_bnm1 instead of mpn_mul_n. + + * Use TMP_ALLOC_LIMBS consistently. + * Finish renaming BITS_PER_MP_LIMB to GMP_LIMB_BITS. + + * macos: Remove entire directory. + +2009-11-27 Torbjorn Granlund + + * mpn/x86_64/corei/gmp-mparam.h: New file. + * mpn/x86_64/core2/gmp-mparam.h: Now for just core2. + * mpn/powerpc64/mode64/p3/gmp-mparam.h: New file. + * mpn/powerpc64/mode64/p4/gmp-mparam.h: New file. + * mpn/powerpc64/mode64/p5/gmp-mparam.h: New file. + + * config.guess: Return "corei" for core i7 and core i5. + * config.sub: Recognise "corei". + * acinclude.m4 (X86_64_PATTERN): Add corei. + * configure.in (powerpc): Set up more CPU-specific paths. + (x86): Handle corei. + + * mpz/powm.c: Allow input operand overlap also when exponent = 1. + Misc cleanups. + +2009-11-26 Marco Bodrato + + * tests/mpn/t-mulmod_bnm1.c: New test file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add t-mulmod_bnm1. + + * mpn/generic/mullow_n.c: Comments on Mulders' trick implementation. + +2009-11-26 Torbjorn Granlund + + * mpn/generic/powm.c: Make comments reflect current code state. + + * tests/devel/try.c: Make mpn_mullow_n testing actually work. + +2009-11-25 Torbjorn Granlund + + * mpz/powm.c: Clean up unused defs. + +2009-11-24 Torbjorn Granlund + + * tune/tuneup.c (tune_redc): Rewrite. + * mpn/generic/powm.c: Use REDC_1_TO_REDC_2_THRESHOLD, + REDC_1_TO_REDC_N_THRESHOLD, and REDC_2_TO_REDC_N_THRESHOLD. + Get rid of previous REDC params, including LOCAL_REDC_N_THRESHOLD. + (WANT_REDC_2): Define. + * gmp-impl.h: Corresponding changes. + +2009-11-23 Torbjorn Granlund + + * mpn/generic/powm.c: Fix typo. + Define LOCAL_REDC_N_THRESHOLD, use in REDC_2_THRESHOLD... + REDC_N_THRESHOLD chain. + +2009-11-22 Torbjorn Granlund + + * tune/tuneup.c (tune_mullow): Set min_size to 1. + + * mpn/generic/powm_sec.c: Use just mpn_mul_basecase and + mpn_sqr_basecase for multiplication and squaring. + + * tune/tuneup.c: Tune REDC_2_THRESHOLD and REDC_N_THRESHOLD. + (tune_redc): New function. + (tune_powm): Remove function. + * tune/speed.h (SPEED_ROUTINE_REDC_2, SPEED_ROUTINE_REDC_N): New. + * tune/common.c (speed_mpn_redc_2, speed_mpn_redc_n): New. + + * mpz/powm.c: Complete rewrite. Use mpn_powm and mpn_powlo. + * mpn/generic/powm.c: Rewrite. + * mpn/generic/redc_n.c: New file. + * configure.in (gmp_mpn_functions): Add redc_n. + * gmp-impl.h (REDC_2_THRESHOLD, REDC_N_THRESHOLD): Default, and define + for tuneup. + +2009-11-21 Marco Bodrato + + * mpn/generic/mullow_n.c: Disable Mulders' trick for small operands, + use fft for bigger ones. + * tests/mpn/t-mullo.c: New test file. + +2009-11-22 Torbjorn Granlund + + * tune/tuneup.c (tune_mullow): Rewrite. + +2009-11-21 Marco Bodrato + + * gmp-impl.h: Removed unused macros (CACHED_ABOVE_THRESHOLD and + CACHED_BELOW_THRESHOLD). + + * mpn/generic/mullow_n.c: Use Mulders' trick. + * tune/tuneup.c (tune_mullow): MULLOW_MUL_N_THRESHOLD range of + search depends on FFT tuning; + (all): Anticipate tune_fft_{mul,sqr}. + + * tune/speed.c (routine): Add entry related to mpn_mulmod_bnm1. + +2009-11-19 Niels Möller + + * mpn/generic/toom_eval_dgr3_pm2.c (mpn_toom_eval_dgr3_pm2) + [HAVE_NATIVE_mpn_add_n_sub_n]: Fixed typo in mpn_add_n_sub_n call + (spotted by Marco Bodrato). + * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): Likewise. + * mpn/generic/toom_eval_pm2exp.c (mpn_toom_eval_pm2exp): Likewise. + + * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2) [HAVE_NATIVE_mpn_addlsh_n]: + Fixed missing declaration. + + * mpn/asm-defs.m4 (define_mpn): Add addlsh_n. + * gmp-impl.h (mpn_addlsh_n): Added prototype and name-mangling. + +2009-11-19 Niels Möller + + * mpn/generic/toom_eval_pm2.c (mpn_toom_eval_pm2): New file. + * mpn/generic/toom53_mul.c (mpn_toom53_mul): Use mpn_toom_eval_pm2. + * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise. + * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2. + +2009-11-18 Torbjorn Granlund + + * gmp-impl.h (mpn_and_n, etc): Adapt to now-public logic functions. + + * config.guess: Recognise VIA nano. + * config.sub: Likewise. + * configure.in: Generalise x86_64 support; recognise VIA nano. + +2009-11-16 Torbjorn Granlund + + * tune/speed.c (routine): Add measurement of mpn_addlsh2_n, + mpn_sublsh2_n, mpn_rsblsh2_n. + * tune/common.c: Add speed routines for lsh2 functions. + + * mpn/generic/divis.c: Use MU_BDIV_QR_THRESHOLD. + + * configure.in (gmp_mpn_functions_optional): Add *lsh_n functions. + + * mpn/generic/toom_eval_pm2exp.c: Make HAVE_NATIVE_mpn_addlsh_n code + work. + + * mpn/x86_64/aorrlsh2_n.asm: Optimise inner loop. + + * configure.in (gmp_mpn_functions_optional): Remove copyi,copyd, they + are now in gmp_mpn_functions. Analogously move logical functions. + +2009-11-16 Marco Bodrato + + * mpn/generic/toom53_mul.c: Use addlsh2 for evaluation (and fix typo). + * mpn/generic/toom_eval_dgr3_pm2.c: Likewise (affects toom44 and 43). + + * mpn/asm-defs.m4: Fix comments for op_lsh2 new functions. + * gmp-impl.h: Likewise. + * tests/mpz/t-fac_ui.c: Fix a comment. + +2009-11-15 Torbjorn Granlund + + * mpn/x86_64/aorrlsh2_n.asm: New file. + * configure.in: Add support for addlsh2_n, sublsh2_n, and rsblsh2_n, + including mulfuncs. + * gmp-impl.h (mpn_addlsh2_n, mpn_sublsh2_n, mpn_rsblsh2_n): Declare. + * mpn/asm-defs.m4: Likewise. + + * mpn/generic/copyi.c: New file. + * mpn/generic/copyd.c: Likewise. + * mpn/generic/zero.c: Likewise. + * gmp-h.in: Declare new functions. + * configure.in (gmp_mpn_functions): Add new functions. + +2009-11-15 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1_next_size): fix typo + + * mpn/generic/toom33_mul.c: Use rsblsh1 for evaluation. + * mpn/generic/toom3_sqr.c: Likewise. + +2009-11-14 Torbjorn Granlund + + * mpn/generic/toom52_mul.c: Use mpn_addlsh1_n. + + * mpn/generic/toom52_mul.c: Toggle the right flag bit in an + HAVE_NATIVE_mpn_add_n_sub_n arm. + + * tests/mpz/t-remove.c: New file. + + * mpn/generic/remove.c: Major overhaul. Add parameter 'cap'. + + * mpn/generic/binvert.c: Fix typo in last change. + + * mpn/generic/bdiv_qr.c: Make it actually work. Also use passed-in + scratch space. + + * mpn/generic/mu_bdiv_qr.c: Reset FFT parameters for each call. + +2009-11-12 Torbjorn Granlund + + * mpn/x86/k7/gcd_1.asm (MASK): Compute from MAXSHIFT. + +2009-11-11 Torbjorn Granlund + + * mpn/generic/binvert.c: Simplify, fix comments. + + * tests/devel/try.c: Test mpn_invert and mpn_binvert. + + * tests/refmpn.c (refmpn_invert, refmpn_binvert): New functions. + * tests/tests.h: Declare new functions. + +2009-11-10 Torbjorn Granlund + + * configure.in: Supply compiler options for atom in 32-bit mode. + + * acinclude.m4 (X86_64_PATTERN): New. + * configure.in: Setup and use X86_64_PATTERN. + + * mpn/x86_64/fat/fat.c: New file. + * mpn/x86_64/fat/fat_entry.asm: New file. + * mpn/x86_64/fat: Copy C placeholder files from mpn/x86/fat. + * mpn/x86_64/x86_64-defs.m4 (CPUVEC_FUNCS_LIST): New, copied from + mpn/x86/x86-defs.m4. + * configure.in: Move down x86 fat setup code until after ABI has been + determined; generalise to handle x86_64. + +2009-11-09 Torbjorn Granlund + + * mpn/x86/fat/mod_1.c: New file. + + * acinclude.m4 (GMP_C_FOR_BUILD_ANSI): Avoid poor quoting. + +2009-11-08 Torbjorn Granlund + + * gmp-impl.h (MPN_LOGOPS_N_INLINE): Rewrite, update interface. Callers + updated. + * mpn/generic/logops_n.c: New file. + * doc/gmp.texi (Low-level Functions): Document logical mpn functions. + +2009-11-07 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): Adapt to new + mpn_mulmod_bnm1 interface. + +2009-11-07 Marco Bodrato + + * mpn/generic/mulmod_bnm1.c: New interface, with size + specified for all operands in mpn_mulmod_bnm1. + * gmp-impl.h: Changed mpn_mulmod_bnm1 prototype. + +2009-11-05 Torbjorn Granlund + + * mpn/x86/k7/gcd_1.asm: Actually use div-reduced value. + Mnemonic cleanup. + + * mpn/x86_64/gcd_1.asm: New file. + +2009-11-03 Torbjorn Granlund + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add sqr_n.c. + +2009-11-03 Marco Bodrato + + * mpn/generic/toom_interpolate_6pts.c: removed an addmul_1 and cleanup. + +2009-11-02 Torbjorn Granlund + + * configure.in (gmp_mpn_functions): Remove obsolete functions + dc_divrem_n and sb_divrem_mn. + * gmp-impl.h: Misc cleanup. + (mpn_sb_divrem_mn, mpn_dc_divrem_n): Remove. + (DIV_DC_THRESHOLD): Remove. + * mpn/generic/dc_divrem_n.c: Remove. + * mpn/generic/sb_divrem_mn.c: Remove. + * mpn/generic/tdiv_qr.c: Use DC_DIV_QR_THRESHOLD, not DIV_DC_THRESHOLD. + + * tests/devel/try.c: Replace mpn_sb_divrem_mn by mpn_sbpi1_div_qr. + * tests/refmpn.c (refmpn_sb_div_qr): New name for refmpn_sb_divrem_mn. + + * tune/Makefile.am (libspeed_la_SOURCES): Remove sb_div.c and sb_inv.c. + (TUNE_MPN_SRCS_BASIC): Remove sb_divrem_mn.c. + * tune/common.c (speed_mpn_dcpi1_div_qr_n): New function. + Remove mpn_sb_divrem_mn related functions. + * tune/speed.c (routine): Remove entries related to mpn_dc_divrem and + mpn_sb_divrem. + (routine): New entry for mpn_dc_div_qr_n. + * tune/speed.h (SPEED_ROUTINE_MPN_DC_DIVREM_CALL): Compute inverse + needed by pi1 calls. + (SPEED_ROUTINE_MPN_SB_DIVREM_M3): Remove. + * tune/tuneup.c (tune_sb_preinv): Remove. + (tune_dc): Update to measure DC_DIV_QR_THRESHOLD. + + * mpn/generic/sb_divappr_q.c: Remove. + +2009-11-01 Torbjorn Granlund + + * gmp-impl.h: Misc minor cleanups. + +2009-10-31 Torbjorn Granlund + + * gmp-impl.h (toom itch functions): Simplify, make some into macros. + (MPN_KARA_MUL_N_TSIZE, MPN_KARA_SQR_N_TSIZE): Remove. + * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove. + * mpn/generic/mul_n.c (mpn_sqr_n): Move from here... + * mpn/generic/sqr_n.c: ...to this new file. + * configure.in (gmp_mpn_functions): Add sqr_n. + + * Globally change + MUL_TOOM3_THRESHOLD => MUL_TOOM33_THRESHOLD, + MUL_KARATSUBA_THRESHOLD => MUL_TOOM22_THRESHOLD, + SQR_KARATSUBA_THRESHOLD => SQR_TOOM2_THRESHOLD, + and associated names analogously. + +2009-10-31 Niels Möller + + * mpn/generic/toom_interpolate_7pts.c: Changed evaluation points, + replacing -1/2 by -2. + * mpn/generic/toom44_mul.c: Updated to use new evaluation points, + and use mpn_toom_eval_dgr3_pm2. + * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Likewise. + * mpn/generic/toom53_mul.c (mpn_toom53_mul): Updated to use new + evaluation points, and use mpn_toom_eval_pm1 and + mpn_toom_eval_pm2exp. + * mpn/generic/toom62_mul.c (mpn_toom62_mul): Likewise. + + * mpn/generic/toom_eval_pm2exp.c: New file. + * mpn/generic/toom_eval_pm1.c: New file. + + * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use + mpn_toom_eval_dgr3_pm2. + +2009-10-30 Torbjorn Granlund + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom2* and toom3* files. + +2009-10-30 Niels Möller + + * configure.in (gmp_mpn_functions): Added toom_eval_dgr3_pm2. + * gmp-impl.h: Added prototype for mpn_toom_eval_dgr3_pm2. + * mpn/generic/toom_eval_dgr3_pm2.c: New file. + +2009-10-29 Niels Möller + + * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use + mpn_toom_eval_dgr3_pm1. + * mpn/generic/toom42_mul.c (mpn_toom42_mul): Likewise. + +2009-10-29 Torbjorn Granlund + + * mpn/generic/mulmod_bnm1.c: Replace some add_1 by INCR. + + * gmp-impl.h (mpn_mulmod_bnm1_itch): New macro. + + * mpn/generic/mulmod_bnm1.c (mpn_mulmod_bnm1): Call mpn_mul_fft. + (mpn_mulmod_bnm1_next_size): Adopt to SS FFT. + + * mpn/generic/mul_fft.c (mpn_mul_fft): Make it return high limb. + (mpn_mul_fft_internal): Likewise. + + * mpn/generic/mulmod_bnm1.c: New file, by Niels Möller. + * configure.in (gmp_mpn_functions): Add mulmod_bnm1. + * gmp-impl.h: Add related declarations. + * tune/tuneup.c: Tune MULMOD_BNM1_THRESHOLD. + * tune/speed.h (SPEED_ROUTINE_MPN_MULMOD_BNM1): New macro. + * tune/common.c (speed_mpn_mulmod_bnm1): New function. + * Makefile.am (TUNE_MPN_SRCS_BASIC): Add mulmod_bnm1.c. + + * gmp-impl.h (mpn_kara_mul_n, mpn_kara_sqr_n): Remove declarations. + * tune/common.c: Remove/rename kara functions. + * tune/speed.h: Likewise. + + * tests/devel/try.c: Clean up usage of %p printf arguments. + + * gmp-impl.h: Update MUL/SQR MINSIZE macros to reflect new function + names and limitations + * tune/tuneup.c: Use updated macro names. + * tune/speed.h: Likewise. + * tests/devel/try.c: Test new mul/sqr functions, remove old tests. + +2009-10-29 Niels Möller + + * tune/speed.c: Added support for mpn_toom4_sqr, + + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM4_SQR): New macro. + (SPEED_ROUTINE_MPN_KARA_MUL_N): Deleted. + (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Deleted. + (SPEED_ROUTINE_MPN_TOOM2_SQR): Use mpn_toom2_sqr_itch. + + * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove + declarations. + (mpn_toom2_sqr_itch): Add margin for recursive calls. + +2009-10-28 Niels Möller + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Deleted old Karatsuba + implementation. + (mpn_kara_sqr_n): Likewise deleted. + + * mpn/generic/mul_n.c (mpn_sqr_n): Use mpn_toom2_sqr and + mpn_toom3_sqr, not the old implementations. + + * gmp-impl.h (MPN_TOOM3_MUL_N_TSIZE): Deleted, replaced by + mpn_toom33_mul_itch. + (MPN_TOOM3_SQR_N_TSIZE): Deleted, replaced by + mpn_toom3_sqr_itch. + (mpn_toom33_mul_itch): Needs more scratch. + (mpn_toom3_sqr_itch): Likewise. + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM3_MUL_N): Use + mpn_toom33_mul_itch. + (SPEED_ROUTINE_MPN_TOOM3_SQR_N): Use mpn_toom3_sqr_itch. + * mpn/generic/mul_n.c (mpn_mul_n): Use mpn_toom33_mul_itch. + (mpn_sqr_n): Use mpn_toom3_sqr_itch. + + * mpn/generic/toom33_mul.c (mpn_toom33_mul): Avoid TMP_ALLOC. Needs + some more supplied scratch instead. + * mpn/generic/toom3_sqr.c (mpn_toom3_sqr): Likewise. + +2009-10-26 Torbjorn Granlund + + * gmp-impl.h (invert_pi1): Streamline, as suggested by Niels. + +2009-10-24 Torbjorn Granlund + + * mpn/generic/bdiv_q.c: Update to call new functions. + * mpn/generic/bdiv_qr.c: Likewise. + * mpn/generic/binvert.c: Likewise. + * mpn/generic/divexact.c: Likewise. + * mpn/generic/divis.c: Likewise. + * mpn/generic/perfpow.c: Likewise. + * mpn/generic/tdiv_qr.c: Likewise. + * mpn/generic/dcpi1_bdiv_q.c: New file. + * mpn/generic/dcpi1_bdiv_qr.c: New file. + * mpn/generic/dcpi1_div_q.c: New file. + * mpn/generic/dcpi1_div_qr.c: New file. + * mpn/generic/dcpi1_divappr_q.c: New file. + * mpn/generic/sbpi1_bdiv_q.c: New file. + * mpn/generic/sbpi1_bdiv_qr.c: New file. + * mpn/generic/sbpi1_div_q.c: New file. + * mpn/generic/sbpi1_div_qr.c: New file. + * mpn/generic/sbpi1_divappr_q.c: New file. + * mpn/generic/dc_bdiv_q.c: Removed. + * mpn/generic/dc_bdiv_qr.c: Removed. + * mpn/generic/dc_div_q.c: Removed. + * mpn/generic/dc_div_qr.c: Removed. + * mpn/generic/dc_divappr_q.c: Removed. + * mpn/generic/sb_bdiv_q.c: Removed. + * mpn/generic/sb_bdiv_qr.c: Removed. + * mpn/generic/sb_div_q.c: Removed. + * mpn/generic/sb_div_qr.c: Removed. + + * configure.in (gmp_mpn_functions): Add new division functions, remove + obsolete division functions. + + * gmp-impl.h: Add declarations of new division functions, remove + corresponding obsolete declarations. + (gmp_pi1_t, gmp_pi2_t): New types. + (invert_pi1): New macro for computing 2/1 and 3/2 inverses. + +2009-10-23 Niels Möller + + * gmp-impl.h (mpn_toom62_mul_itch): New function. + + * tests/mpn/t-toom53.c: New test program. + * tests/mpn/t-toom62.c: New test program. + +2009-10-23 Torbjorn Granlund + + * mpn/generic/get_d.c: Fix code handling denorms for 64-bit machines. + * tests/mpf/t-get_d.c (test_denorms): New function. + +2009-10-23 Niels Möller + + * mpn/generic/toom52_mul.c (mpn_toom52_mul): Use supplied scratch + space, not TMP_ALLOC. Interface change, now requires input sizes + such that s + t >= 5. + + * gmp-impl.h (mpn_toom52_mul_itch): New function. + + * tests/mpn/t-toom52.c: New test program. + +2009-10-22 Torbjorn Granlund + + * mpn/x86_64/sqr_basecase.asm: Tune for speed and a 7% size decrease. + +2009-10-22 Niels Möller + + * tests/mpn/t-toom44.c: New test program. + * tests/mpn/t-toom33.c: New test program. + + * tests/mpn/toom-shared.h (main): Reorganized input generation. + Users are now supposed to define macros MAX_AN, MIN_BN and MAX_BN. + Updated existing toom test programs. + +2009-10-22 Torbjorn Granlund + + * tests/devel/try.c: Fix typos in last change. + +2009-10-21 Torbjorn Granlund + + * mpn/asm-defs.m4 (define_mpn): Add mullow_basecase. + + * tests/devel/try.c: Test mpn_mullow_n. + + * tests/refmpn.c (refmpn_mullow_n): New function. + * tests/tests.h: Declare it. + +2009-10-21 Niels Möller + + * tests/mpn/toom-shared.h (main): Check for writes outside of the + product or scratch area. + + * gmp-impl.h (mpn_toom43_mul_itch): New function. + + * mpn/generic/toom43_mul.c (mpn_toom43_mul): Use supplied scratch + space, not TMP_ALLOC. Interface change, now requires input sizes + such that s + t >= 5. + +2009-10-20 Niels Möller + + * tests/mpn/toom-shared.h (MIN_BLOCK): New constant, which can be + overridden by users. Needed by t-toom42 and t-toom43. + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom32, + t-toom42 and t-toom43. + * tests/mpn/t-toom43.c: New test program. + * tests/mpn/t-toom42.c: New test program. + * tests/mpn/t-toom32.c: New test program. + + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-toom22. + * tests/mpn/t-toom22.c: New test file. + * tests/mpn/toom-shared.h: New file. Test framework for Toom + functions. + +2009-10-14 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd_itch): Thanks to the new + mpn_matrix22_mul_strassen, the scratch need is reduced by 16%. + +2009-10-14 Marco Bodrato + + * mpn/generic/matrix22_mul.c (mpn_matrix22_mul_strassen): New + Strassen-like algorithm, to reduce the amount of temporary + storage. + (mpn_matrix22_mul_itch): Updated to reflect the reduced storage + need. + +2009-10-03 Torbjorn Granlund + + * Rename mpn_addsub_n to mpn_add_n_sub_n. + +2009-10-01 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Call mpn_divrem_1 and mpn_dc_div_qr instead of + old functions. + + * mpn/generic/mul_n.c: Call toom22 and toom33 instead of old functions. + + * mpn/generic/toom42_mul.c (TOOM42_MUL_N_REC): Renamed from + TOOM22_MUL_N_REC. Unconditionally call the generic mpn_mul_n. + * mpn/generic/toom32_mul.c: Analogous changes. + +2009-09-28 Niels Möller + + * mpn/x86_64/invert_limb.asm: Rewrite. Exploit cancellation in the + Newton iteration. + +2009-09-27 Niels Möller + + * mpn/x86/invert_limb.asm: Reduce register usage. Eliminated $1 + arguments to add, sub and shift. + +2009-09-25 Niels Möller + + * mpn/x86/invert_limb.asm: New file. + +2009-09-24 Torbjorn Granlund + + * mpn/generic/toom33_mul.c: Use new toom functions for all recursive + products. + * mpn/generic/toom3_sqr.c: Likewise. + * mpn/generic/toom44_mul.c: Likewise. + * mpn/generic/toom4_sqr.c: Likewise. + + * mpn/generic/add_n.c: Relax operand overlap ASSERTs. + * mpn/generic/sub_n.c: Likewise. + +2009-09-15 Torbjorn Granlund + + Suggested by Uwe Mueller: + * printf/doprnt.c: Use "%ld" for exponent printing. + * printf/doprntf.c (__gmp_doprnt_mpf): Make expval "long". + +2009-09-14 Torbjorn Granlund + + * configure.in: Handle mingw64. + * gmp-impl.h (gmp_intptr_t): Declare. + * tests/amd64check.c (calling_conventions_values): Use CNST_LIMB. + * tests/memory.c: Use gmp_intptr_t; print pointers using C90 "%p". + * tests/misc.c: Use gmp_intptr_t. + * tests/mpq/t-get_str.c: Print pointers using C90 "%p". + +2009-08-12 Torbjorn Granlund + + * mpn/generic/mod_1_1.c (mpn_mod_1_1p_cps): Remove silly ASSERT code. + + * mpn/asm-defs.m4 (define_mpn): Remove mod_1s_1p, add mod_1_1p. + + * mpn/arm/invert_limb.asm: Complete rewrite. + + * longlong.h: Document LONGLONG_STANDALONE and NO_ASM. + +2009-08-05 Torbjorn Granlund + + * tests/mpz/dive_ui.c (check_random): Avoid zero divisors. + +2009-07-31 Torbjorn Granlund + + * mpn/generic/mod_1_1.c: Tweak to handle any modulus (possibility + pointed out by Per Austrin). + (mpn_mod_1_1p): Renamed from mpn_mod_1s_1p. + (mpn_mod_1_1p_cps): Renamed from mpn_mod_1s_1p_cps. + *mpn/generic/mod_1.c (mpn_mod_1): Reorganise to call mpn_mod_1_1p for + any modulus. + +2009-07-28 Torbjorn Granlund + + * configure.in: Pass arch for x86 also in 64-bit mode. + +2009-07-26 Torbjorn Granlund + + * config.guess (_cpuid): Recognise more Intel "Core" processors. + +2009-07-13 Torbjorn Granlund + + * mpf/eq.c: Rewrite. + + * tests/mpf/t-eq.c: New test. + +2009-07-06 Torbjorn Granlund + + * gmp-impl.h (__mp_bases): Remove this alias. + + * mpf/get_str.c: Use less overflow prone expression for computing limb + allocation. + * mpz/inp_str.c: Likewise. + * mpf/set_str.c: Likewise. + * mpz/set_str.c: Likewise. + +2009-07-03 Niels Möller + + * mpn/generic/gcd_1.c (mpn_gcd_1): Use masking tricks to reduce + the number of branches in the loop. + +2009-06-28 Torbjorn Granlund + + * demos/factorize.c (factor_using_pollard_rho): Rewrite. + + * mpz/clears.c: New file. + * mpq/clears.c: New file. + * mpf/clears.c: New file. + * gmp-h.in (mpz_clears, mpq_clears, mpf_clears): Declare. + * mpz/Makefile.am: Add clears.c. + * mpq/Makefile.am: Add clears.c. + * mpf/Makefile.am: Add clears.c. + * Makefile.am: Add these also to respective OBJECTS variables. + * doc/gmp.texi: Document inits function and clears functions. + +2009-06-20 Torbjorn Granlund + + * mp-h.in (mp_bitcnt_t): Declare here too. + +2009-06-19 Torbjorn Granlund + + * mpq/inits.c: New file. + * mpf/inits.c: New file. + * gmp-h.in (mpz_inits, mpq_inits, mpf_inits): Declare . + + * mpn/generic/remove.c: New file. + * configure.in (gmp_mpn_functions): Add remove. + * gmp-impl.h (mpn_remove): Declare. + + * gmp-h.in (mp_bitcnt_t): New basic type. + * mpn/generic/perfpow.c (mp_bitcnt_t): Remove private definition. + + * mpn/generic/bdiv_qr.c: Make it actually work. + + * mpn/x86_64/core2/aorsmul_1.asm: Rewrite to use shorter pipeline and + to need fewer registers. + +2009-06-17 Torbjorn Granlund + + * mpn/x86_64/rsh1aors_n.asm: New file. + * mpn/x86_64/rsh1add_n.asm: Remove. + * mpn/x86_64/rsh1sub_n.asm: Remove. + + * mpz/inits.c: New file. + + * gen-trialdivtab.c: Wrap limb constants into CNST_LIMB. + + With Martin Boij: + * mpn/generic/perfpow.c (binv_root, binv_sqroot): Change from being + recursive to being iterative. + (mpn_perfect_power_p): Reorganise temp memory usage to avoid a buffer + overrun. Trim allocation of next and prev. Never create oversize + products in the multiplicity binary search. + + * mpn/generic/dc_div_q.c: Add missing TMP_FREE. + +2009-06-16 Torbjorn Granlund + + Revert: + * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive. + +2009-06-16 Martin Boij + + * mpn/generic/perfpow.c (logs): Use more conservative table. + +2009-06-15 Torbjorn Granlund + + * mpn/pa64/aors_n.asm: New file. + * mpn/pa64/add_n.asm: Remove. + * mpn/pa64/sub_n.asm: Remove. + + * mpn/generic/perfpow.c (perfpow): Test exponents up to ub, inclusive. + +2009-06-14 Torbjorn Granlund + + * mpn/x86_64/bdiv_q_1.asm: Optimise away a mov insn. + * mpn/x86_64/dive_1.asm: Likewise. + + * mpn/generic/perfpow.c (binv_root): Use mpn_bdiv_q_1, not + mpn_divexact_itch for 2-adic division. + (all functions): Micro optimise. + + * Makefile.am (libmp_la_SOURCES): Add nextprime.c. + +2009-06-13 Torbjorn Granlund + + * gmp-h.in (mpn_perfect_power_p): Declare. + * configure.in (gmp_mpn_functions): Add perfpow. + * mpz/perfpow.c: Now trivial, simply calls mpn_perfect_power_p. + +2009-06-13 Martin Boij + + * mpn/generic/perfpow.c: New file. + * tests/mpz/t-perfpow.c: Rewrite. + +2009-06-12 Torbjorn Granlund + + * mpn/generic/bdiv_qr.c: New file. + * mpn/generic/bdiv_q.c: New file. + * configure.in (gmp_mpn_functions): Add bdiv_qr and bdiv_q. + * gmp-impl.h: Declare new functions. + + * nextprime.c: New file. + * gmp-impl.h (gmp_primesieve_t, gmp_init_primesieve, gmp_nextprime): + Declare. + * Makefile.am (libgmp_la_SOURCES): Add nextprime.c. + +2009-06-11 Torbjorn Granlund + + * mpn/generic/trialdiv.c: New file. + * gen-trialdivtab.c: New file. + * configure.in (gmp_mpn_functions): Add trialdiv. + * gmp-impl.h (mpn_trialdiv): Declare + * Makefile.am: Add rules for gen-trialdivtab and trialdiv. + + * longlong.h (arm count_leading_zeros): Define for armv5. + + * gmp-impl.h: Move down toom itch functions to after we've #defined + all THRESHOLDs. + + * dumbmp.c (isprime): Replace with slightly less inefficient code. + (mpz_tdiv_r): New function. + +2009-06-11 Niels Möller + + Support for mpn_toom32_mul in speed: + * tune/speed.c (routine): Added mpn_toom32_mul. + * tune/speed.h (SPEED_ROUTINE_MPN_TOOM32_MUL): New macro. + * tune/common.c (speed_mpn_toom32_mul): New function. + + * gmp-impl.h (mpn_toom32_mul_itch): Count scratch space needed + for the calls to mpn_toom22_mul. + (ABOVE_THRESHOLD): Moved this and related macros so it can be used + by mpn_toom32_mul_itch. + (mpn_toom22_mul_itch): Count scratch space for recursive calls. + +2009-06-11 Torbjorn Granlund + + * mpn/x86/k7/mod_1_4.asm: New file, mainly for k7, but perhaps useful + also for k6 and non-sse p6. + +2009-06-10 Torbjorn Granlund + + * mpn/x86_64/mod_1_4.asm: Minor size reducing tweaks. + + * mpn/x86/mod_1.asm: Remove obsolete file. + * mpn/x86/k7/mmx/mod_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mod_1.asm: Likewise. + * mpn/x86/p6/mod_1.asm: Likewise. + * mpn/x86/pentium/mod_1.asm: Likewise. + +2009-06-08 Niels Möller + + * mpn/generic/toom4_sqr.c (mpn_toom4_sqr): Reorganized, to reduce + the need for scratch space, and get rid of TMP_ALLOC. Also use + mpn_toom_eval_dgr3_pm1. + + * mpn/generic/toom_interpolate_6pts.c (mpn_toom_interpolate_6pts): + Stricter ASSERTs based on maximum size of polynomial coefficients. + Improved comments on the signedness of intermediate values. + +2009-06-07 Torbjorn Granlund + + * mpn/generic/toom2_sqr.c: Make it actually work. + + * mpn/generic/toom3_sqr.c: Reduce local scratch space. + +2009-06-05 Torbjorn Granlund + + * mpn/generic/mul_fft.c (FFT_TABLE2_SIZE): Default to 200. + (MUL_FFT_TABLE2_SIZE, SQR_FFT_TABLE2_SIZE): Let these decide + FFT_TABLE2_SIZE if they are defined. + (struct nk): Use bit field. + +2009-06-05 Niels Möller + + * mpn/generic/toom44_mul.c (mpn_toom44_mult): Use + mpn_toom_eval_dgr3_pm1. + + * mpn/generic/toom_eval_dgr3_pm1.c: New file. + + * mpn/generic/toom_interpolate_7pts.c (mpn_toom_interpolate_7pts): + Minor cleanup, use mpn_add rather than mpn_add_n + MPN_INCR_U. + + * mpn/generic/toom44_mul.c (mpn_toom44_mul): Reorganized, to + reduce the need for scratch space, and get rid of TMP_ALLOC. + +2009-06-05 Torbjorn Granlund + + * mpn/generic/toom_interpolate_7pts.c: Fall back mpn_divexact_byN to + mpn_bdiv_q_1_pi1, if the latter is NATIVE. + +2009-06-04 Torbjorn Granlund + + * mpn/x86_64/bdiv_q_1.asm: New file. + + * configure.in (HAVE_NATIVE): Add recently added functions. + (GMP_MULFUNC_CHOICES): Handle addlsh_n, sublsh_n, rsblsh_n. + + * tune/common.c (speed_mpn_bdiv_q_1, speed_mpn_bdiv_q_1_pi1): + New functions. + * tune/speed.c (routine): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1. + * tune/speed.h (SPEED_ROUTINE_MPN_BDIV_Q_1_PI1): New #define. + (SPEED_ROUTINE_MPN_BDIV_Q_1): Mew #define. + + * configure.in (gmp_mpn_functions): Add bdiv_q_1. + * mpn/generic/bdiv_q_1.c: New file. + * mpn/asm-defs.m4 (define_mpn): Add mpn_bdiv_q_1 and mpn_bdiv_q_1_pi1. + * gmp-impl.h (mpn_bdiv_q_1, mpn_bdiv_q_1_pi1): Declare. + + * mpn/x86_64/lshift.asm: Cleanup. + * mpn/x86_64/rshift.asm: Cleanup. + + * mpn/x86_64/addlsh1_n.asm: Removed. + * mpn/x86_64/aorrlsh1_n.asm: Generalised addlsh1_n.asm to handle + addlsh1_n and rsblsh1_n functionality. + + * tests/refmpn.c (refmpn_rsblsh1_n): New function. + * tests/devel/try.c: Test mpn_rsblsh1_n. + * tests/tests.h: Declare refmpn_rsblsh1_n. + * tune/common.c (speed_mpn_rsblsh1_n): New function. + * tune/speed.c (routine): Add mpn_rsblsh1_n. + * tune/speed.h (mpn_rsblsh1_n): Declare. + + * configure.in (gmp_mpn_functions_optional): Add rsblsh1_n. + (GMP_MULFUNC_CHOICES): Handle rsblsh1_n defined with a mulfunc. + * mpn/asm-defs.m4 (define_mpn): Add rsblsh1_n. + * gmp-impl.h (mpn_rsblsh1_n): Declare. + + * mpn/generic/toom32_mul.c: Consistently use TOOM22_MUL_N_REC. + +2009-06-03 Marco Bodrato + + * mpn/generic/toom43_mul.c: New file. + * mpn/generic/toom52_mul.c: New file. + * mpn/generic/toom_interpolate_6pts.c: New file. + +2009-06-03 Torbjorn Granlund + + * configure.in (gmp_mpn_functions): Add toom43_mul, toom52_mul, and + toom_interpolate_6pts, but also some previously forgotten functions. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Likewise. + * gmp-impl.h: Declare new functions. Sort toom function declarations. + + * gmp-impl.h: Rename toom4_* flags enum to toom7_*. Relevant C files + updated. + + * mpn/generic/toom_interpolate_7pts (divexact_2exp): Remove. + +2009-06-02 Torbjorn Granlund + + * demos/factorize.c: Add -q command line option. + +2009-06-02 Marco Bodrato + + * mpn/generic/toom_interpolate_7pts.c: Streamline, resulting in speed + improvements. + + * mpn/generic/toom_interpolate_5pts.c: Likewise, but also completely + do away with explicit scratch space. + * gmp-impl.h (mpn_toom_interpolate_5pts): Update prototype. + + * mpn/generic/mul_n.c (mpn_toom3_sqr_n, mpn_toom3_mul_n): + Update toom_interpolate_5pts call without scratch space parameter. + * mpn/generic/toom3_sqr.c: Likewise. + * mpn/generic/toom42_mul.c: Likewise. + * mpn/generic/toom33_mul.c: Likewise. + + * mpn/generic/toom33_mul.c: Reduce local scratch space. + * mpn/generic/toom32_mul.c: Rewrite to not use local scratch space. + +2009-06-02 Torbjorn Granlund + + * mpn/generic/toom22_mul.c (TOOM22_MUL_MN_REC): New macro, use it for + oo point. + +2009-06-01 Torbjorn Granlund + + * mpn/generic/mul.c: Loop to avoid excessive recursion in toom33 and + toom44 slicing code. + + * mpz/remove.c: Correctly handle multiplicity that does not fit an int. + + * Makefile.am (dist-hook): Check library version consistency. + + * mpn/generic/mul.c: Rewrite. + +2009-05-29 Torbjorn Granlund + + * tests/mpz/t-divis.c (check_random): Create huge test operands. + + * mpn/generic/toom44_mul.c: Allocate temp space using one TMP_ALLOC + call, not multiple TMP_SALLOC. + * mpn/generic/toom4_sqr.c: Likewise. + + * gmp-impl.h (mpn_toom22_mul_itch): Replace totally wrong code. + + * mpn/generic/mullow_n.c: Relax overlap requirement implied by ASSERT. + + * mpn/generic/divis.c: Rewrite. + + * gmp-impl.h (mpn_mu_bdiv_qr): Now returns mp_limb_t. + (mpn_toom2_sqr_itch): Simplify. + + * mpn/generic/mu_bdiv_qr.c: Implement properly. + +2009-05-27 Torbjorn Granlund + + * mpn/generic/mod_1_1.c: Add proper ASSERT functionality cps function. + * mpn/generic/mod_1_2.c: Likewise. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + + * tune: Add speed measuring of toom22, toom33, and toom44. + + * mpn/generic/toom22_mul.c: Handle potentially unbalanced coefficient + product better. + +2009-05-26 Torbjorn Granlund + + * tests/mpz/t-mul.c (ref_mpn_mul): Use mpn_toom44_mul in FFT range for + better huge-operands performance. + +2009-05-24 Torbjorn Granlund + + * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Try "$L" too, before "$". + +2009-05-23 Torbjorn Granlund + + * gmp-impl.h (mpn_mod_1s_1p,mpn_mod_1s_2p,mpn_mod_1s_3p,mpn_mod_1s_4p): + Declare using __GMP_ATTRIBUTE_PURE. + + * tune/tuneup.c (tune_mod_1): Specify check_size for measuring mod_1_N + functions. + (one): Remove redundant size loop exit condition. + +2009-05-20 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/mod_1_4.asm: New file. + * mpn/x86/p6/sse2/mod_1_4.asm: New file (grabbing pentium4 code). + +2009-05-18 Torbjorn Granlund + + * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 4. + (__GNU_MP_VERSION_PATCHLEVEL): Set to -1. + + * mpn/x86_64/mod_1_4.asm: New file. + + * mpn/asm-defs.m4: Correct names for mod_1_N functions. + Add defines for corresponding cps functions. + + * mpn/generic/mod_1_2.c: Support any sizes > 1. + * mpn/generic/mod_1_3.c: Likewise. + * mpn/generic/mod_1_4.c: Likewise. + +2009-05-12 Torbjorn Granlund + + * Version 4.3.1 released. + +2009-05-11 Torbjorn Granlund + + * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump. + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): + Bump version info. + +2009-05-09 Torbjorn Granlund + + * tests/mpz: Add MPZ_CHECK_FORMAT to many tests. + +2009-05-07 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/mul_basecase.asm: Avoid L(ret), "ret" is + defined in x86-defs.m4. + +2009-05-06 Torbjorn Granlund + + * mpn/x86/p6/aors_n.asm: Use L() for labels. + * mpn/x86/pentium4/sse2/addmul_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mul_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mul_basecase.asm: Likewise. + * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise. + * mpn/x86_64/lshift.asm: Likewise. + * mpn/x86_64/rshift.asm: Likewise. + + * tests/cxx/t-locale.cc (point_string): Declare as extern "C" to + placate compilers that mangle variable names. + +2009-05-04 Torbjorn Granlund + + * tests/mpz/t-gcd.c: Generate operands that are multiple of each other. + +2009-05-01 Torbjorn Granlund + + * gmp-h.in (__GMP_EXTERN_INLINE): Support for more systems. + (gmp_randinit_set): Add missing __GMP_DECLSPEC. + +2009-04-28 Torbjorn Granlund + + * mpn/generic/neg_n.c: New file. + * configure.in (gmp_mpn_functions): Add neg_n. + * mpn/asm-defs.m4 (define_mpn): Add neg_n. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add neg_n.c. + * gmp-h.in: Handle mpn_neg_n properly. + + * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Nailify. + + * mpn/generic/gcdext.c: Change some MPN_NORMALIZE to + MPN_NORMALIZE_NOT_ZERO. + * mpn/generic/gcdext_lehmer.c: Likewise. + Add a MPN_NORMALIZE_NOT_ZERO. + + * mpn/generic/binvert.c: Remove own mpn_neg_n. + + * tests/mpz/t-gcd.c: Add some MPZ_CHECK_FORMAT calls. + +2009-04-27 Torbjorn Granlund + + * mpn/Makefile.am (TARG_DIST): Add minithres. + + * mpn/generic/bdiv_dbm1c.c: Handle nails. + +2009-04-26 Torbjorn Granlund + + * config.guess: Recognise more POWER processor types. + +2009-04-25 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/popcount.asm: Work around Apple reloc bug. + * mpn/x86/darwin.m4: Define symbol "DARWIN". + +2009-04-19 Torbjorn Granlund + + * mpn/generic/powm.c (mpn_redc_n): Use ASSERT_ALWAYS, not abort(). + * mpn/generic/powm_sec.c: Likewise. + + * mpn/powerpc64/aix.m4 (EXTERN_FUNC): New define. Add dummy variants + for other m4 files. + * mpn/powerpc64/mode64/divrem_1.asm: Use EXTERN_FUNC. + * mpn/powerpc64/mode64/divrem_1.asm: Likewise. + +2009-04-16 Torbjorn Granlund + + * mpn/x86_64/x86_64-defs.m4 (JUMPTABSECT): New define. + * mpn/x86_64/darwin.m4: Likewise. + * mpn/x86_64/sqr_basecase.asm: Rework switch code using JUMPTABSECT. + + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): + Remove an unused variable. + + * mpn/x86/x86-defs.m4 (LEA): Get SIZE arguments right. + +2009-04-14 Torbjorn Granlund + + * Version 4.3.0 released. + + * scanf/doscan.c (__gmp_doscan): Pad 3-operand scanf call with dummy + argument. + * scanf/sscanffuns.c (scan): Disable vsscanf variant for now. + +2009-04-13 Torbjorn Granlund + + * scanf/sscanffuns.c (scan): Rewrite to use stdarg. + + * tests/mpz/t-root.c: Rewrite. Add unconditional gcc 4.3.2 tests. + +2009-04-09 Torbjorn Granlund + + * mpn/generic/powm.c: New file. + * mpn/generic/powlo.c: New file. + * mpn/generic/powm_sec.c: New file. + * configure.in (gmp_mpn_functions): List new functions. + +2009-04-08 Torbjorn Granlund + + * mpz/urandomm.c: Amend last fix. + +2009-04-06 Torbjorn Granlund + + * configure.in: Support Sun cc for x86_64. + + * mpz/urandomm.c: Handle operand overlap. + +2009-03-11 Torbjorn Granlund + + * configure.in (powerpc): Brave removing -Wa,-mppc64, in the hope that + GCC now passes the proper options. + +2009-03-09 Torbjorn Granlund + + * mpn/x86_64/divrem_1.asm: Add a nop to save a cycle in unnormalised + case. + +2009-03-05 Torbjorn Granlund + + * ia64/gmp-mparam.h, arm/gmp-mparam.h, x86/p6/mmx/gmp-mparam.h, + pa32/hppa2_0/gmp-mparam.h sparc32/v9/gmp-mparam.h: Update. + +2009-03-03 Torbjorn Granlund + + * mpn/ia64/bdiv_dbm1c.asm: Accept/return carry. + +2009-03-02 Torbjorn Granlund + + * configure.in (64-bit sparc/solaris): Pass -xO3, not -O3 to solaris + system compiler. + +2009-03-01 Torbjorn Granlund + + * longlong.h (mips, powerpc): Provide assembly-free umul_ppmm for newer + gcc. + +2009-02-04 Torbjorn Granlund + + * mpn/generic/redc_2.c: Remove code for testing and timing. Update + to current FSF header. + * mpn/generic/redc_1.c: Update to current FSF header. + +2009-01-21 Torbjorn Granlund + + * mpz/powm.c (redc): Remove. + (mpz_powm): Use mpn_redc_1 instead of redc. + + * tests/mpz/t-powm.c: Rewrite reference code. + +2009-01-18 Torbjorn Granlund + + * tests/mpz: Increase reps for many tests. + + * mpn/generic/rootrem.c (mpn_rootrem_internal): Use MPN_DECR_U instead of + mpn_sub_1 (works around gcc 4.3 bugs and is also faster). + +2009-01-16 Torbjorn Granlund + + * tests/tests.h: Declare refmpn_divrem_2. + +2009-01-15 Torbjorn Granlund + + * mpz/perfpow.c: Add TMP_FREE before every return statement. + + * mpn/generic/rootrem.c (mpn_rootrem_internal): Add a missing TMP_FREE. + + * configure.in (gcc_cflags, gcc_64_cflags): Revert from -O3 to -O2, + the change was accidental and cause too much miscompilation. + +2009-01-14 Torbjorn Granlund + + * tune/tuneup.c (tune_mod_1): Run MOD_1_x_THRESHOLD tests also when + longlong.h specified UDIV_PREINV_ALWAYS. + + * mpn/generic/mod_1.c (mpn_mod_1): Properly check for normalisation + divisor. + +2009-01-13 Torbjorn Granlund + + * tune/tuneup.c (tune_mod_1): Tune for MOD_1_1_THRESHOLD, + MOD_1_2_THRESHOLD, and MOD_1_4_THRESHOLD. + + * mpn/generic/mod_1.c: Rewrite. + * mpn/generic/mod_1_1.c: New file. + * mpn/generic/mod_1_2.c: New file. + * mpn/generic/mod_1_3.c: New file. + * mpn/generic/mod_1_4.c: New file. + * configure.in (gmp_mpn_functions): Add mod_1_*. + * mpn/asm-defs.m4 (define_mpn): Add mod_1_*. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mod_1_*.c. + * gmp-impl.h: Declare new mpn_mod_1s_* functions and associated + THRESHOLD macros. + (udiv_rnd_preinv): New macro. + +2009-01-12 Torbjorn Granlund + + * tune/tuneup.c (tune_gcd_dc,tune_gcdext_dc): Lower step_factor to 0.1. + +2009-01-08 Torbjorn Granlund + + * tests/mpz/t-nextprime.c: New test file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-nextprime. + + From Niels Möller: + * mpz/nextprime.c: Handle large prime gaps by limiting incr. + +2009-01-04 Torbjorn Granlund + + * mpz/and.c, mpz/ior.c, mpz/xor.c: Re-read only necessary source + pointers after reallocation. Misc cleanup. + + * gmp-impl.h (MPN_TOOM44_MAX_N): New define, replaces MPN_TOOM3_MAX_N. + + * mpn/x86/fat/diveby3.c: New file. + +2008-12-30 Niels Möller + + * doc/gmp.texi (Greatest Common Divisor Algorithms): Updated + section on GCD algorithms. + +2008-12-29 Torbjorn Granlund + + * doc/gmp.texi (Multiplication Algorithms): Add descriptions of Toom-4 + and unbalanced multiplication. + (Radix to Binary): Add warning that text is outdated, + (Contributors): Fix typos. + + * mpn/generic/toom*.c: Use coherent MAYBE_ macros for trimming + unreachable recursive functions. + * gmp-impl.h: Update toom itch functions. + + * mpn/x86_64/sqr_basecase.asm: Slightly increase stack allocation, to + placate tuneup. + +2008-12-28 Torbjorn Granlund + + * mpn/x86_64/pentium4/aors_n.asm: Tune prologue code. + + * mpn/x86_64/pentium4/aorslsh1_n.asm: New file. + + * mpn/x86_64/darwin.m4: Define symbol "DARWIN". + * mpn/x86_64/invert_limb.asm: Work around darwin quirks. + + * mpn/x86_64/sqr_basecase.asm: Further optimize, support Darwin. + + * mpn/x86_64/invert_limb.asm: New file. + +2008-12-27 Torbjorn Granlund + + * mpn/x86_64/core2/aorslsh1_n.asm: New file. + +2008-12-26 Torbjorn Granlund + + * mpz/perfpow.c: Handle negative arguments properly. + * tests/mpz/t-perfpow.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-perfpow. + +2008-12-23 Torbjorn Granlund + + * tests/mpz/t-mul.c (dump_abort): Improve error message. + + * gcd.c gcd_subdiv_step.c gcdext.c gcdext_subdiv_step.c: + Remove private mpn_zero_p. + + * tune/tuneup.c (tune_mul): Tune for MUL_TOOM44_THRESHOLD. + (tune_sqr): Tune for SQR_TOOM4_THRESHOLD. + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Add toom44_mul.c and + toom4_sqr.c. + + * configure.in (gmp_mpn_functions): Toom function updates. + + * Rename mpn/mul_toomMN.c to mpn/toomMN_mul.c. Function names changed + accordingly. + + * mpn/toomMN_mul.c: Add scratch parameter. Do recursive multiplies + properly. Misc tuning. Remove CHECK and TIMING code. + + * mpn/toom2_sqr.c, mpn/toom3_sqr.c, mpn/toom4_sqr.c: New files. + + * gmp-impl.h (mpn_toomMN_mul_itch): Several new functions. + (mpn_zero_p): New functions. + Add various TOOM4/TOOM44 related parameters. + Update mpn_toomMN_mul prototypes. + + * mpn/generic/mul_n.c (mpn_mul_n): Call mpn_toom44_mul. Use TMP_BALLOC + instead of malloc. + (mpn_sqr_n): Analogous changes. + + * mpn/generic/mul.c: Update unbalanced toom code to pass scratch space. + +2008-12-21 Torbjorn Granlund + + * mpz/nextprime.c: Add TMP_SDECL/MARK/FREE. + +2008-12-20 Torbjorn Granlund + + * mpn/generic/sqrtrem.c (mpn_sqrtrem1): Rewrite, improve interface. + (invsqrttab): New table, remove table approx_tab. + (mpn_sqrtrem2): Optimize, update mpn_sqrtrem1 call. + (mpn_sqrtrem): Update mpn_sqrtrem1 call. + +2008-12-18 Torbjorn Granlund + + * mpz/nextprime.c: Run 10 mpz_millerrabin tests (was 5). + Give credit to authors. + + * mpn/x86_64/redc_1.asm: Align stack as mandated by ABI. + + * mpn/x86_64/divrem_2.asm: Add some comments. + + * mpn/x86_64/darwin.m4: New file. + * configure.in: Use x86_64/darwin.m4. + +2008-12-15 Torbjorn Granlund + + * doc/projects.html: Remove GCD and division projects, update text on + multiplication. + + * doc/tasks.html: Add a caution about that the file is somewhat + outdated. + +2008-12-14 Torbjorn Granlund + + * mpn/alpha/ev6/aorsmul_1.asm: New file (same code for mpn_addmul_1, + much improved for mpn_submul_1). + * mpn/alpha/ev6/addmul_1: File removed. + * mpn/alpha/ev6/submul_1: File removed. + +2008-12-09 Torbjorn Granlund + + From David Harvey: + * mpn/x86_64/mul_basecase.asm: Further tweaks for code size and speed. + + * mpn/powerpc64/mode64/divrem_1.asm: Rewrite. + + * mpn/powerpc64/mode64/mul_basecase.asm: New file. + +2008-12-08 Torbjorn Granlund + + * mpn/powerpc64/mode64/gmp-mparam.h: New file. + + * gmp-impl.h: Additional cleanups. + (mpn_set_str_compute_powtab): New prototype. + (mpn_powm, mpn_powlo): New prototypes. + + * mpz/pow_ui.c: Handle some small exponents locally. + +2008-12-07 Torbjorn Granlund + + * mpn/generic/set_str.c: Remove prototypes (they are in gmp-impl.h). + + * tune/set_strs.c, tune/set_strb.c: Make prototypes effective by moving + the #define mpn_set_str* before including gmp-impl.h. + + * All files: Change _PROTO => __GMP_PROTO. + + * tune/speed.c (routine): Remove non-working choice mpn_set_str_subquad. + * tune/common.c (speed_mpn_dc_set_str): Remove, it is broken. + + * mpn/generic/toom_interpolate_7pts.c (divexact_2exp): Make this static, + and inline it. + + * gmp-impl.h: Major cleanup. + (Remove formal parameter names. Use __GMP_PROTO consistently. Move + __GMP_PROTO and __MPN use to adjacent lines for declared function. + Fix typos. Remove code inside #if 0.) + + * configure.in (gmp_mpn_functions): Add mul_toom33. Reformat. + +2008-12-05 Torbjorn Granlund + + * mpn/generic/redc_1.c: New file. + * mpn/generic/redc_2.c: New file. + + * configure.in (gmp_mpn_functions): List redc_1 and redc_2. + (HAVE_NATIVE): Likewise. + + * tune/common.c (speed_mpn_redc_1): Renamed from speed_redc. + * tune/speed.c (routine): Remove "redc", and "mpn_redc_1". + * tune/speed.h (SPEED_ROUTINE_REDC_1): Renamed from SPEED_ROUTINE_REDC. + Updated call. + * tune/tuneup.c (tune_powm): Update redc call. + +2008-12-04 Torbjorn Granlund + + * mpn/x86_64/sqr_basecase.asm: Inline a combined diagonal product code + and addlsh1 loop. Misc cleanup. + +2008-12-02 Torbjorn Granlund + + * mpn/x86_64/sqr_basecase.asm: New file. + +2008-11-30 Torbjorn Granlund + + * mpn/generic/sqr_basecase.c: Fix typo in mpn_addmul_2s variant. + +2008-11-28 Torbjorn Granlund + + * mpn/x86_64/redc_1.asm: Rewrite. + +2008-11-27 Torbjorn Granlund + + * tests/refmpn.c (refmpn_redc_1): New function. + +2008-11-25 Torbjorn Granlund + + * mpn/x86/k7/aorsmul_1.asm: Actually handle mpn_submul_1. + +2008-11-23 Torbjorn Granlund + + * mpn/x86_64/divrem_1.asm: Rewrite. + + * alpha/divrem_2.asm: New file. + * powerpc32/divrem_2.asm: New file. + * powerpc64/mode64/divrem_2.asm: New file. + * x86/divrem_2.asm: New file. + * x86_64/divrem_2.asm: New file. + * tests/refmpn.c (refmpn_divrem_2): New function. + +2008-11-22 Torbjorn Granlund + + * mpn/x86/k7/mul_1.asm: Rewrite for smaller size and better speed. + * mpn/x86/k7/aorsmul_1.asm: Likewise. + + * acinclude.m4 (GMP_VERSION): Include last component even when zero. + +2008-11-21 Torbjorn Granlund + + * mpn/x86_64/README: Rewrite. + + * tests/devel/try.c (malloc_region, mprotect_maybe): Add casts for + printf type correctness. + + * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump. + + * Makefile.am (LIBGMP_LT_*, LIBGMPXX_LT_*, LIBMP_LT_*): + Bump version info. + +2008-11-20 Torbjorn Granlund + + * gmp-impl.h: Rename modlimb_invert to binvert_limb. + * tune/speed.h: Likewise. + * tune/modlinv.c: Likewise. + * tune/common.c: Likewise. + * tests/t-modlinv.c: Likewise. + * tests/t-constants.c: Likewise. + * mpn/sparc64/mode1o.c: Likewise. + * mpn/alpha/dive_1.c: Likewise. + * mpn/sparc64/dive_1.c: Likewise. + * mpn/generic/mode1o.c: Likewise. + * mpn/generic/dive_1.c: Likewise. + * mpn/generic/bdivmod.c: Likewise. + * mpn/alpha/mode1o.asm: Likewise. + * mpn/asm-defs.m4: Likewise. + * mpn/ia64/mode1o.asm: Likewise. + * mpn/powerpc32/README: Likewise. + * mpn/powerpc32/mode1o.asm: Likewise. + * mpn/powerpc64/mode64/dive_1.asm: Likewise. + * mpn/powerpc64/mode64/mode1o.asm: Likewise. + * mpn/x86/dive_1.asm: Likewise. + * mpn/x86/k6/mmx/dive_1.asm: Likewise. + * mpn/x86/k6/mode1o.asm: Likewise. + * mpn/x86/k7/dive_1.asm: Likewise. + * mpn/x86/k7/mode1o.asm: Likewise. + * mpn/x86/p6/dive_1.asm: Likewise. + * mpn/x86/p6/mode1o.asm: Likewise. + * mpn/x86/pentium/dive_1.asm: Likewise. + * mpn/x86/pentium/mode1o.asm: Likewise. + * mpn/x86/pentium4/sse2/dive_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mode1o.asm: Likewise. + * mpn/x86_64/dive_1.asm: Likewise. + * mpn/x86_64/mode1o.asm: Likewise. + + * mpn/x86_64/aors_n.asm: Replace with slightly faster, more alignment + neutral loop. + +2008-11-18 Torbjorn Granlund + + * configure.in: Remove gcd_finda related declarations. + * gmp-impl.h (mpn_gcd_finda): Remove declaration. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Remove gcd_finda. + * mpn/asm-defs.m4: Remove define_mpn(gcd_finda). + * mpn/x86/k6/gcd_finda.asm: Remove file. + * tests/devel/try.c (param_init): Remove mpn_gcd_finda. + (choice_array): Remove mpn_gcd_finda. + * tests/mpn/t-instrument.c (check): Remove testing of mpn_gcd_finda. + * tests/refmpn.c (refmpn_gcd_finda): Remove. + * tests/tests.h (refmpn_gcd_finda): Remove declaration. + * tune/common.c (speed_mpn_gcd_finda): Remove. + * tune/gcd_finda_gen.c: Remove file. + * tune/speed.h (speed_mpn_gcd_finda): Remove declaration. + * tune/speed.c (routine): Remove mpn_gcd_finda entry. + + * tests/mpz/t-powm.c: Print test number when failing a test. + + * mpn/x86_64/redc_1.asm (CALL): Move from here... + * mpn/x86_64/x86_64-defs.m4: ...to here. + + * gmp-impl.h (mpn_jacobi_base): Remove parameter names. + +2008-11-11 Torbjorn Granlund + + * tests/mpf/t-conv.c: Add some specific tests, supplementing the random + tests. + +2008-11-09 Torbjorn Granlund + + * mpf/set_str.c: Default 'base' before letting exp_base inherit it. + + * tests/cxx/t-prec.cc: Use the right precision for all float constants. + +2008-11-08 Torbjorn Granlund + + * doc/gmp.texi (Float Comparison): Update mpf_eq documentation. + + * mpf/eq.c: Compare the right number of bits. + +2008-11-02 Torbjorn Granlund + + Undo, it made testing too slow: + * tests/mpz/t-mul.c: Use slower geometric progression for operand + sizes. + + * mpn/x86/k7/mod_34lsub1.asm: Use movzb for masking low 8 bits. + +2008-10-31 Niels Möller + + * mpn/generic/hgcd2.c (div1): New function (taken from old gcdext + implementation) + (mpn_hgcd2): Use single precision for the second half of the work. + +2008-10-30 Torbjorn Granlund + + * mpn/x86/p6/sse2/gmp-mparam.h: New file. + +2008-10-29 Torbjorn Granlund + + * configure.in (x86 fat_path): Add "x86/p6/sse2". + + * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Recognize sse2 capable p6 + (pentiumm, core2). + + * mpn/x86/p6/sse2/mul_1.asm: New file. + * mpn/x86/p6/sse2/addmul_1.asm: New file. + * mpn/x86/p6/sse2/submul_1.asm: New file. + * mpn/x86/p6/sse2/mul_basecase.asm: New file. + * mpn/x86/p6/sse2/sqr_basecase.asm: New file. + * mpn/x86/p6/sse2/popcount.asm: New file. + + * mpn/x86/fat/fat.c (__gmpn_cpuvec_init): Handle "extended" fields for + model and family. + +2008-10-28 Torbjorn Granlund + + From Mickael Gastineau: + * gmp-h.in (gmp_urandomm_ui, gmp_urandomb_ui): Add __GMP_DECLSPEC. + +2008-10-27 Torbjorn Granlund + + * gmp-h.in (mpn_gcdext_1): Remove bogus __GMP_ATTRIBUTE_PURE. + +2008-10-27 Niels Möller + + * tune/common.c (speed_mpn_hgcd): Call mpn_hgcd_matrix_init once + for each call to mpn_hgcd. + (speed_mpn_hgcd_lehmer): Likewise. + +2008-10-26 Torbjorn Granlund + + * configure.in: Point to p6/sse2 for pentiumm and core2. + + * gmp-impl.h (mpn_add_nc, mpn_sub_nc): Move these macros to after fat + definitions. + + * tune/common.c, tune/speed.c, tune/speed.h: + Add speed measurement of mpn_bdiv_dbm1c. + +2008-10-24 Torbjorn Granlund + + * mpn/x86_64/gmp-mparam.h (MUL_FFT_TABLE2, SQR_FFT_TABLE2): Extend. + + * mpz/nextprime.c: Move declarations to function beginning. + +2008-10-23 Niels Möller + + * gmp-impl.h (DECL_gcdext_1): Deleted. + +2008-10-22 Torbjorn Granlund + + * mpn/x86_64/atom/aors_n.asm: New file. + * mpn/x86_64/atom/gmp-mparam.h: New file. + +2008-10-21 Torbjorn Granlund + + With Neils Möller: + * mpz/nextprime.c: Rewrite. + + * tests/devel/try.c (main): Use strtol for 's' and 'S' optargs. + + * mpn/x86_64/pentium4/rshift.asm: Misc cleanups. + * mpn/x86_64/pentium4/lshift.asm: Likewise. + + * mpn/x86_64/pentium4/aors_n.asm: Use fewer registers. + + * configure.in: Set up specific path for x86_64/atom. + +2008-10-21 Niels Möller + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Removed + qstack.c. + * mpn/generic/qstack.c: Deleted obsolete file. + +2008-10-20 Torbjorn Granlund + + * mpn/x86_64/core2/aorsmul_1.asm: New file. + +2008-10-19 Torbjorn Granlund + + * mpn/x86_64/aors_n.asm: Remove redundant MULFUNC_PROLOGUE. + + * gmp-impl.h (popc_limb): Remove redundant checks of GMP_LIMB_BITS + inside several of these macros. + +2008-10-17 Torbjorn Granlund + + * tests/mpz/t-mul.c: Use slower geometric progression for operand + sizes. Do every other tests for same size operands. + +2008-10-15 Torbjorn Granlund + + * mpn/x86_64/mul_basecase.asm: Simplify addressing in epilogue. + + * mpn/mips64/divrem_1.asm: Remove file, it is n32-only, and uses an old + algorithm. + + * config.guess, config.sub, configure.in: Support Intel Atom processor. + +2008-10-10 Torbjorn Granlund + + * mpq/mul.c: Fix typo in last change. + +2008-10-09 Torbjorn Granlund + + * tests/refmpn.c (refmpn_sb_divrem_mn): Work around a gcc bug. + +2008-10-08 Torbjorn Granlund + + * mpq/mul.c: Use TMP_ALLOC. Cleanup. + * mpq/div.c: Likewise. + + * mpn/x86_64/mul_basecase.asm: Use lea directly for loading entry point + addresses. + +2008-10-09 Niels Möller + + * mpn/x86/k7/gmp-mparam.h: Updated GCD-related values. + +2008-10-05 Torbjorn Granlund + + * mpn/generic/mul_fft.c (mpn_mul_fft_internal): Do store + mpn_fft_norm_modF return value, if (rec). + +2008-10-04 Torbjorn Granlund + + * mpn/x86_64/aorsmul_1.asm: Replace with faster code. + * mpn/x86_64/mul_1.asm: Likewise. + * mpn/x86_64/addmul_2.asm: Likewise. + * mpn/x86_64/mul_2.asm: Likewise. + * mpn/x86_64/mul_basecase.asm: Likewise. + +2008-10-02 Torbjorn Granlund + + * mpn/minithres/gmp-mparam.h: Update FFT values. + +2008-10-02 Niels Möller + + * hgcd.c (mpn_hgcd_matrix_mul): Fixed normalization bug. + +2008-09-24 Torbjorn Granlund + + * configure.in: Handle --enable-minithres. + * mpn/minithres/gmp-mparam.h: Update all values. + +2008-09-22 Torbjorn Granlund + + * tune/speed.c (routine): New entry for mpn_mul. + * tune/speed.h (SPEED_ROUTINE_MPN_MUL): Renamed from + SPEED_ROUTINE_MPN_MUL_BASECASE. + (speed_mpn_mul): Renamed from speed_mpn_mul_basecase. + (SPEED_ROUTINE_MPN_MUL): Allocate our own memory of xp operand. + + * tune/common.c: Corresponding changes. + +2008-09-22 Niels Möller + + * mpn/generic/gcdext.c (hgcd_mul_matrix_vector): New function, + replaces addmul2_n. Needs less copying. + (mpn_gcdext): Use hgcd_mul_matrix_vector. Updated for interface + change in mpn_gcdext_subdiv_step + + * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Rewritten to use + mpn_hgcd_mul_matrix1_vector. + (hgcd_step): Updated for interface change in + mpn_hgcd_mul_matrix1_inverse_vector. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_n): Updated for + interface changes in mpn_hgcd_mul_matrix1_vector, + mpn_hgcd_mul_matrix1_inverse_vector and mpn_gcdext_subdiv_step. + + * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Updated for + interface change in mpn_hgcd_mul_matrix1_inverse_vector. + + * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): Use + separate scratch arguments for the quotient and for the cofactor + update. + + * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Interface + change. Store first element in rp and leave ap unmodified. No + additional scratch space or copying needed. Callers that require + modification in place still need to copy one of the inputs. + (mpn_hgcd_mul_matrix1_inverse_vector): Likewise. + +2008-09-22 Niels Möller + + * mpn/generic/hgcd.c (hgcd_matrix_mul_1): Use mpn_addaddmul_1msb0. + * mpn/generic/hgcd2.c (mpn_hgcd_mul_matrix1_vector): Likewise. + + * mpn/generic/gcd.c: Use libspeed for timing measurements. + + * gmp-impl.h: Declare mpn_addaddmul_1msb0. + * mpn/asm-defs.m4: Added addaddmul_1msb0. + * mpn/x86_64/addaddmul_1msb0.asm: New file. + * configure.in (gmp_mpn_functions_optional): Added + addaddmul_1msb0. + (HAVE_NATIVE): List addaddmul_1msb0. + +2008-09-21 Torbjorn Granlund + + * mpn/generic/get_str.c (GET_STR_DC_THRESHOLD): Remove default. + (GET_STR_PRECOMPUTE_THRESHOLD): Likewise. + Misc code cleanups. + + * gmp-impl.h (mpn_dc_set_str_itch): Allocate GMP_LIMB_BITS more limbs. + + Revert: + * mpn/generic/set_str.c: + (mpn_dc_set_str): Remove impossible case, replace by an ASSERT. + +2008-09-18 Torbjorn Granlund + + * mpn/alpha/ev6/gmp-mparam.h (DIVEXACT_BY3_METHOD): Define. + + * mpn/ia64/diveby3.asm: Remove. + * mpn/x86/diveby3.asm: Remove. + * mpn/x86/k6/diveby3.asm: Remove. + * mpn/x86/k7/diveby3.asm: Remove. + * mpn/x86/p6/diveby3.asm: Remove. + * mpn/x86/pentium/diveby3.asm: Remove. + * mpn/x86_64/diveby3.asm: Remove. + * mpn/x86/pentium4/sse2/diveby3.asm: Remove. + + * configure.in (HAVE_NATIVE): List divexact_by3c. + + * gmp-impl.h (mpn_divexact_by3c): Override gmp-h.in's definition. + (DIVEXACT_BY3_METHOD): Don't default to 0 if + HAVE_NATIVE_mpn_divexact_by3c. + +2008-09-18 Niels Möller + + * mpn/generic/gcd.c (main): Added code for tuning of CHOOSE_P. + + * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Assert that inputs are + normalized. + +2008-09-17 Niels Möller + + * mpn/generic/gcdext.c (mpn_gcdext): p = n/5 caused a + slowdown for large inputs. As a compromise, use p = n/2 for the + first iteration, and p = n/3 for the rest. Handle the first + iteration specially, since the initial u0 and u1 are trivial. + + * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold + from 409 to 390. + + * mpn/generic/gcdext.c (CHOOSE_P): New macro. Use p = n/5. + (mpn_gcdext): Use CHOOSE_P, and generalized the calculation of + scratch space. + + * tune/tuneup.c (tune_hgcd): Use default step factor. + + * mpn/x86_64/gmp-mparam.h: (GCD_DC_THRESHOLD): Reduced from 493 to + 412. + + * mpn/generic/gcd.c (CHOOSE_P): New macro, to determine the + split when calling hgcd. Use p = 2n/3, as that seems better than + the more obvious split p = n/2. + (mpn_gcd): Use CHOOSE_P, and generalized the calculation of + scratch space. + +2008-09-16 Torbjorn Granlund + + * mpn/generic/toom_interpolate_7pts.c: Use new mpn_divexact_byN + functions. + + * gmp-impl.h (mpn_divexact_by3, mpn_divexact_by5, mpn_divexact_by7, + mpn_divexact_by9, mpn_divexact_by11, mpn_divexact_by13, + mpn_divexact_by15): New macros, defined in terms of mpn_bdiv_dbm1. + + * configure.in (gmp_mpn_functions): List bdiv_dbm1c. + (HAVE_NATIVE): Likewise. + * mpn/asm-defs.m4: Define bdiv_dbm1c. + * gmp-impl.h (mpn_bdiv_dbm1c): Declare. + (mpn_bdiv_dbm1): New macro. + * mpn/generic/bdiv_dbm1c.c: New file. + * mpn/alpha/bdiv_dbm1c.asm: New file. + * mpn/ia64/bdiv_dbm1c.asm: New file. + * mpn/powerpc32/bdiv_dbm1c.asm: New file. + * mpn/powerpc64/mode64/bdiv_dbm1c.asm: New file. + * mpn/x86/bdiv_dbm1c.asm: New file. + * mpn/x86_64/bdiv_dbm1c.asm: New file. + + * mpn/generic/diveby3.c: Add mpn_bdiv_dbm1c based function. + Choose function depending on DIVEXACT_BY3_METHOD. + * gmp-impl.h (DIVEXACT_BY3_METHOD): Provide default. + +2008-09-16 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Moved function to + gcdext.c, where it is used. + * mpn/generic/gcdext.c (addmul2_n): Moved and renamed, was + mpn_hgcd_addmul2_n. Made static. Deleted input normalization. + Deleted rn argument. + (mpn_gcdext): Updated calls to addmul2_n, and added assertions. + + * gmp-impl.h (MPN_HGCD_MATRIX_INIT_ITCH): Increased storage by 4 limbs. + (MPN_HGCD_LEHMER_ITCH): Reduced storage by one limb. + (MPN_GCD_SUBDIV_STEP_ITCH): Likewise. + (MPN_GCD_LEHMER_N_ITCH): Likewise. + + * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Use two extra limbs. + (hgcd_step): Use overlapping arguments to mpn_tdiv_qr. + (mpn_hgcd_matrix_mul): Deleted normalization code. Tighter bounds + for the element size of the product. Needs two extra limbs of + storage for the elements. + (mpn_hgcd_itch): Updated storage calculation. + + * mpn/generic/gcd_subdiv_step.c (mpn_gcd_subdiv_step): Use + overlapping arguments to mpn_tdiv_qr. Use mpn_zero_p. + + * mpn/generic/gcd.c (mpn_gcd): Use mpn_zero_p. + +2008-09-15 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd_matrix_init): Updated for deleted + tp pointer. + (hgcd_matrix_update_q): Likewise. + (mpn_hgcd_matrix_mul): Likewise. + (mpn_hgcd_itch): Updated calculation of scratch space. + + * gmp-impl.h (struct hgcd_matrix): Deleted tp pointer. + (MPN_HGCD_MATRIX_INIT_ITCH): Reduced storage. + (mpn_hgcd_step, MPN_HGCD_STEP_ITCH): Deleted declarations. + +2008-09-15 Niels Möller + + * mpn/x86_64/gmp-mparam.h (MATRIX22_STRASSEN_THRESHOLD): New + threshold. + + * mpn/generic/hgcd.c (mpn_hgcd_matrix_mul): Use mpn_matrix22_mul. + (mpn_hgcd_itch): Updated calculation of scratch space. Use + count_leading_zeros to get the recursion depth. + + * mpn/generic/gcd.c (mpn_gcd): Fixed calculation of scratch space, + and use mpn_hgcd_itch. + +2008-09-15 Niels Möller + + * tune/tuneup.c (tune_matrix22_mul): New function. + (all): Use it. + + * tune/common.c (speed_mpn_matrix22_mul): New function. + + * tune/Makefile.am (TUNE_MPN_SRCS_BASIC): Added matrix22_mul.c. + + * tests/mpn/t-matrix22.c: Use MATRIX22_STRASSEN_THRESHOLD to + select sizes for tests. + + * gmp-impl.h (MATRIX22_STRASSEN_THRESHOLD): New threshold + + * configure.in (gmp_mpn_functions): Added matrix22_mul. + * gmp-impl.h: Added declarations for mpn_matrix22_mul and related + functions. + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added + matrix22_mul.c. + * tests/mpn/Makefile.am (check_PROGRAMS): Added t-matrix22. + + * tests/mpn/t-matrix22.c: New file. + * mpn/generic/matrix22_mul.c: New file. + +2008-09-11 Niels Möller + + * tune/tuneup.c: Updated tuning of gcdext. + + * mpn/x86_64/gmp-mparam.h (GCDEXT_DC_THRESHOLD): Reduced threshold + from 713 to 409. + +2008-09-11 Niels Möller + + * gmp-impl.h: Updated for gcdext changes. + (GCDEXT_DC_THRESHOLD): New constant, renamed from + GCDEXT_SCHOENHAGE_THRESHOLD. + + * mpn/generic/gcdext.c (compute_v): Accept non-normalized a and b + as inputs. + (mpn_gcdext): Rewrote and simplified. Now uses the new mpn_hgcd + interface. + + * mpn/generic/hgcd.c (mpn_hgcd_addmul2_n): Renamed from addmul2_n + and made non-static. Changed interface to take non-normalized + inputs, and only two size arguments. + (mpn_hgcd_matrix_mul): Simplified using new mpn_hgcd_addmul2_n. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): Deleted + function. + (mpn_gcdext_lehmer_n): Renamed from mpn_gcd_lehmer. Now takes + inputs of equal size. Moved the code for the division step to a + separate function... + * mpn/generic/gcdext_subdiv_step.c (mpn_gcdext_subdiv_step): New + file, new function. + + * configure.in (gmp_mpn_functions): Added gcdext_subdiv_step. + +2008-09-10 Torbjorn Granlund + + * tests/devel/anymul_1.c: Include . + + * gmp-h.in: Unconditionally include . + +2008-09-10 Niels Möller + + * tune/common.c: #if:ed out speed_mpn_gcd_binary and + speed_mpn_gcd_accel. + * tune/speed.c (routine): #if:ed out mpn_gcd_binary, mpn_gcd_accel + and find_a. + * tune/Makefile.am (libspeed_la_SOURCES): Removed gcd_bin.c + gcd_accel.c gcd_finda_gen.c. + * tune/tuneup.c: Enable tuning of GCD_DC_THRESHOLD. + + * mpn/generic/gcd.c (mpn_gcd): Rewrote and simplified. Now uses + the new mpn_hgcd interface. + + * */gmp-mparam.h: Renamed GCD_SCHOENHAGE_THRESHOLD to + GCD_DC_THRESHOLD. + + * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer_n): Renamed (was + mpn_gcd_lehmer). Now takes inputs of equal size. + + * mpn/generic/gcd_lehmer.c (mpn_gcd_lehmer): Reintroduced gcd_2, + to get better performance for small inputs. + + * mpn/generic/hgcd.c: Don't hardcode small HGCD_THRESHOLD. + * mpn/x86_64/gmp-mparam.h (HGCD_THRESHOLD): Reduced from 145 to + 120. + * */gmp-mparam.h: Renamed HGCD_SCHOENHAGE_THRESHOLD to + HGCD_THRESHOLD. + +2008-09-09 Torbjorn Granlund + + * doc/gmp.texi: Fix a typo and clarify mpn_gcdext docs. + +2008-09-09 Niels Möller + + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Adapted + to new hgcd interface. + + * gmp-impl.h (MPN_HGCD_LEHMER_ITCH): New macro. + + * hgcd.c (mpn_hgcd_lehmer): Renamed function, from hgcd_base. Made + non-static. + + * gcd_lehmer.c (mpn_gcd_lehmer): Use hgcd2 also for n == 2. + + * gcdext_lehmer.c (mpn_gcdext_lehmer): Simplified code for + division step. Added proper book-keeping of swaps, which affect + the sign of the returned cofactor. + + * tests/mpz/t-gcd.c (one_test): Display co-factor when mpn_gcdext + fails. + + * gcd_lehmer.c (mpn_gcd_lehmer): At end of loop, need to handle + the special case n == 1 correctly. + + * gcd_subdiv_step.c (mpn_gcd_subdiv_step): Simplified function. + The special cancellation logic is not needed here. + +2008-09-08 Torbjorn Granlund + + * mpn/generic/invert.c: Add working but slow code. + + * mpn/x86_64/x86_64-defs.m4 (R32, R8): New macros. + + * mpn/ia64/submul_1.asm: Move some labels for broader assembler + compatibility. + + * gmp-impl.h (mpn_mul_3, mpn_mul_4): Declare. + * tests/tests.h (refmpn_mul_3, refmpn_mul_4): Declare. + * tests/try.c (param_init): Set things up for mpn_mul_3 and mpn_mul_4. + (choice_array): Likewise. + (call): Likewise. + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): + Add mul_3.c and mul_4. + * mpn/asm-defs.m4: Define mul_3 and mul_4. + * tests/refmpn.c (refmpn_mul_N): New function. + (refmpn_mul_2): Remove old definition, call refmpn_mul_N. + (refmpn_mul_3, refmpn_mul_4): New functions. + * tune/common.c (speed_mpn_mul_3, speed_mpn_mul_4): New functions. + * tune/speed.h (speed_mpn_mul_3, speed_mpn_mul_4): Declare. + * tune/speed.c (routine): New entries for mpn_mul_2 and mpn_mul_3. + + * ltmain.sh: Update to libtool 1.5.24. + + * mpn/generic/mul_toom22.c: Compute s and t more cleverly. + +2008-09-08 Niels Möller + + * tests/mpn/t-hgcd.c: Updated tests. Rewrite of hgcd_ref. + + * mpn/generic/gcdext_lehmer.c (mpn_gcdext_lehmer_itch): New function. + (mpn_gcdext_lehmer): Various bugfixes. + + * gcdext.c (mpn_gcdext): Allocate scratch space for gcdext_lehmer. + + * mpn/generic/gcd_lehmer.c (gcd_2): ASSERT that inputs are odd. + (mpn_gcd_lehmer): Added tp argument, for scratch space. Make both + arguments odd before calling gcd_2. + + * mpn/generic/hgcd.c (mpn_hgcd): Allow the trivial case n <= 2, + and return 0 immediately. + + * gmp-impl.h (MPN_EXTRACT_NUMB): New macro. + + * configure.in (gmp_mpn_functions): Added gcdext_lehmer. + +2008-09-05 Torbjorn Granlund + + * mpn/generic/toom_interpolate_7pts.c: Use mpn_divexact_by3c instead of + divexact_odd. + + * doc/texinfo.tex: Update to 2007-06-29.13. + + * doc/gmp.texi: Update GMP site URL. Fix some typos. + + * demos/pexpr.c (main): Allow bases up to 62. + + * gmp-impl.h: Remove formal parameter names from function prototypes. + + * config.guess: Recognize recent AMD and Itanium CPUs. + Default X86 CPU recognition to configfsf.guess' value. + + * configure.in: Handle core2 separately from athlon64. + +2008-09-05 Niels Möller + + * */Makefile.in, configure, aclocal.m4, config.in: Removed files + from repository. They're instead generated by automake and + autoconf before distribution. + +2008-08-25 Torbjorn Granlund + + * mpf/set_str.c: Allocate mantissa space based on mantissa size, + not on destination variable space. + * mpf/set_str.c: Accept unary plus before exponent. + +2008-08-06 Torbjorn Granlund + + * mpn/generic/mul_toom22.c: Add statistics gathering functionality, + triggered by cpp predef STAT. + + From David Harvey: + * mpn/generic/mul_toom22.c: Decrease scratch space usage. + +2008-08-02 Torbjorn Granlund + + * tests/misc/t-scanf.c: Avoid negative arguments to _ui functions. + * tests/misc/t-printf.c: Likewise. + + * acinclude.m4 (X86_PATTERN): Add geode. + + * acinclude.m4 (CL_AS_NOEXECSTACK): Avoid -q flag to grep. + +2008-08-01 Torbjorn Granlund + + * acinclude.m4 (CL_AS_NOEXECSTACK): New. + * configure.in: Use CL_AS_NOEXECSTACK. + * mpn/Makeasm.am: Use ASM_FLAGS (defined by CL_AS_NOEXECSTACK). + + * gmpxx.h (__GMP_DBL_LIMBS): Use DBL_MAX_EXP instead of + std::numeric_limits::max_exponent for better portability. + +2008-07-29 Torbjorn Granlund + + * gmpxx.h (__GMP_DBL_LIMBS): New #define. + (__GMP_ULI_LIMBS): New #define. + (__GMPXX_TMP_UI): New macro. + (__GMPXX_TMP_SI): New macro. + (__GMPXX_TMP_D): New macro. + (struct __gmp_binary_and): Rewrite, using the new macros. + (struct __gmp_binary_ior): Likewise. + (struct __gmp_binary_xor): Likewise. + +2008-07-28 Torbjorn Granlund + + * tests/cxx/t-binary.cc: Add some tests for logical operations. + +2008-07-24 Torbjorn Granlund + + * gmpxx.h: Use __GMPZ_* instead of __GMPZZ_* for bitwise ops, remove + __GMPZZ_*. + Remove repeated #undefs. + (__gmp_alloc_cstring): Declare freefunc as extern "C". + +2008-07-23 Torbjorn Granlund + + * gmp-h.in (__GMP_CC): New define, undocumented for now. + (__GMP_CFLAGS): Likewise. + +2008-07-21 Torbjorn Granlund + + * tests/amd64check.c: Fix a printf type clash. + + * mpz/realloc.c: Amend last fix. + + * gmp-h.in: Include for C++. + * gmp-h.in: Handle new gcc 4.3 inline semantics defaults. + + * configfsf.guess: Update to version of 2008-04-14. + * configfsf.sub: Update to version of 2008-06-16. + + * configure.in: Separate core2 and athlon64 flags handling. + +2008-06-19 Torbjorn Granlund + + * config.guess: Recognize pentiumm and AMD geode. + * config.sub: Likewise. + * configure.in: Likewise. + +2008-06-02 Torbjorn Granlund + + * configure.in: Disallow odd nails sizes. + * configure.in: Inherit default gcc_cflags/gcc_64_cflags everywhere. + +2008-05-23 Torbjorn Granlund + + * mpz/init2.c: Rewrite to avoid internal overflow and to detect mpz_t + overflow. + * mpz/realloc2.c: Likewise. + * mpz/realloc.c: Detect mpz_t overflow. + +2008-05-22 Torbjorn Granlund + + * configure.in (sparc): Remove -fast, it causes documented + miscompilation. + + * config.guess: Properly handle the "extended" variants of x86 cpuid. + +2008-05-09 Torbjorn Granlund + + * gmp-impl.h (mpn_mul_fft): Now void. + (udiv_qrnnd_preinv3): Special case for constant (nl). + +2008-05-08 Torbjorn Granlund + + * mpn/generic/mul_fft.c: Clean up types in TRACE (printf (...)). + (TRACE): Redefine to allow command line control. + (mpn_mul_fft_internal): Now void, remove return value. + (mpn_mul_fft): Likewise. + (MPN_FFT_TABLE2_SIZE): Up size fro 256 to 512. + (mpn_fft_fft): Call mpn_fft_mul_2exp_modF just once instead of twice, + then add/subtract result. Get rid of temp allocation as a result. + Remove some redundant CNST_LIMB. + (mpn_fft_fftinv): Analogous changes. + (mpn_fft_sub_modF): Re-enable, now needed by mpn_fft_fft and + mpn_fft_fftinv. + +2008-03-10 Torbjorn Granlund + + * tests/mpz/t-mul.c (main): Let GMP_CHECK_FFT mean largest allowed + power-of-2 of test operands. + +2008-02-28 Torbjorn Granlund + + * tests/cxx/t-binary.cc (check_mpz): Expect floor rounding for right + shift. + +2008-02-27 Torbjorn Granlund + + * mpz/mul_i.h: Check sml's size (not the signed small_mult). + + * longlong.h (umul_ppmm) [alpha]: Define using __builtin_alpha_umulh + when possible. + + * longlong.h (count_trailing_zeros): Force destination register mode. + + * gmpxx.h (struct __gmp_binary_rshift): Use floor rounding, not + truncation. + + * gmpxx.h (__gmp_binary_and, __gmp_binary_ior, __gmp_binary_xor): + Add variants with unsigned long int argument. + + * config.sub: Recog geode. + * config.guess: Likewise. + * acinclude.m4 (X86_PATTERN): Likewise. + +2008-02-10 Torbjorn Granlund + + * mpn/x86/p6/aors_n.asm: Use Zdisp to work around GNU as bug. + * mpn/x86/x86-defs.m4 (Zdisp): Add more instructions. + +2008-02-08 Torbjorn Granlund + + * mpn/x86_64/aors_n.asm: New file. + * mpn/x86_64/add_n.asm: Delete. + * mpn/x86_64/sub_n.asm: Delete. + +2008-02-07 Torbjorn Granlund + + * mpn/x86/k6/mmx/dive_1.asm: Fix typo in last change. + +2007-12-10 Torbjorn Granlund + + * mpf/set_str.c (mpf_set_str): Write own code for converting the + exponent, avoids strtol base < 36 limitation. + +2007-10-28 Torbjorn Granlund + + * gmp-impl.h (mpn_dc_get_str_itch): New macro. + (mpn_dc_get_str_powtab_alloc): New macro. + (struct powers): Add field "shift". + + * mpn/generic/get_str.c: Compute powers without low zero limbs; all + functions modified. Correct temporary allocation. Misc cleanups. + + * mpn/generic/set_str.c: Compute powers without low zero limbs; all + functions modified. + (mpn_dc_set_str): Remove impossible case, replace by an ASSERT. + +2007-10-26 Torbjorn Granlund + + * mpn/generic/set_str.c: Remove default thresholds, not in gmp-impl.h. + (mpn_dc_set_str): Insert ASSERT_ALWAYS in a presumably dead code arm. + +2007-10-22 Torbjorn Granlund + + * gmp-impl.h (mpn_add_nc): Define as inline function, unless NATIVE. + (mpn_sub_nc): Likewise. + +2007-10-17 Torbjorn Granlund + + * tests/misc/t-printf.c: Fix a printf type clash. + * tests/mpq/t-get_str.c: Likewise. + * tests/mpz/t-import.c: Likewise. + + * acinclude.m4: Conditionally disable some tests when compiled by a C++ + compiler. + + * gmp-impl.h (udiv_qrnnd_preinv3): Remove an unused variable. + + * mpn/generic/hgcd.c: Add some WANT_ASSERTs to shut up warnings. + +2007-10-08 Torbjorn Granlund + + * mpn/powerpc64/elf.m4 (LEAL): Define as an alias for LEA. + * mpn/powerpc32/darwin.m4 (LEAL): Likewise. + * mpn/powerpc64/aix.m4: Likewise. + + * mpn/powerpc64/vmx/popcount.asm: Use LEAL. + + * mpn/powerpc64/darwin.m4 (LEAL): New name for LEA, since it is only + usable for local symbols. + (LEA): Replace with code for external references. + + * mpn/powerpc32/vmx/mod_34lsub1.asm: Use LEAL. + +2007-10-07 Torbjorn Granlund + + * mpn/x86/dive_1.asm: Use LEA, remove explicit movl_eip_*. + * mpn/x86/k6/mode1o.asm: Likewise. + * mpn/x86/k6/mmx/dive_1.asm: Likewise. + * mpn/x86/k7/dive_1.asm: Likewise. + * mpn/x86/k7/mode1o.asm: Likewise. + * mpn/x86/p6/dive_1.asm: Likewise. + * mpn/x86/p6/mode1o.asm: Likewise. + * mpn/x86/pentium4/sse2/dive_1.asm: Likewise. + * mpn/x86/pentium4/sse2/mode1o.asm: Likewise. + * mpn/x86/pentium4/sse2/popcount.asm: Likewise. + + * mpn/x86/p6/aors_n.asm: Table cycle counts. + + * mpn/x86/k7/mod_34lsub1.asm: Fix over-optimistic cycle count claims. + + * mpn/x86/x86-defs.m4 (DEF_OBJECT, END_OBJECT): New define's. + + * mpn/x86/darwin.m4 (LEA): Put also movl_eip_XX into EPILOGUE_cpu. + Expect target register to have prepended %. + + * mpn/x86_64/add_n.asm: Use L() for labels. + * mpn/x86_64/addlsh1_n.asm: Likewise. + * mpn/x86_64/addmul_2.asm: Likewise. + * mpn/x86_64/aorrlsh_n.asm: Likewise. + * mpn/x86_64/aorsmul_1.asm: Likewise. + * mpn/x86_64/com_n.asm: Likewise. + * mpn/x86_64/copyd.asm: Likewise. + * mpn/x86_64/copyi.asm: Likewise. + * mpn/x86_64/diveby3.asm: Likewise. + * mpn/x86_64/logops_n.asm: Likewise. + * mpn/x86_64/lshsub_n.asm: Likewise. + * mpn/x86_64/mul_1.asm: Likewise. + * mpn/x86_64/mul_2.asm: Likewise. + * mpn/x86_64/mul_basecase.asm: Likewise. + * mpn/x86_64/popham.asm: Likewise. + * mpn/x86_64/redc_1.asm: Likewise. + * mpn/x86_64/rsh1add_n.asm: Likewise. + * mpn/x86_64/rsh1sub_n.asm: Likewise. + * mpn/x86_64/rshift.asm: Likewise. + * mpn/x86_64/sub_n.asm: Likewise. + * mpn/x86_64/sublsh1_n.asm Likewise. + * mpn/x86_64/pentium4/aors_n.asm: Likewise. + * mpn/x86_64/pentium4/lshift.asm: Likewise. + * mpn/x86_64/pentium4/rshift.asm: Likewise. + + * mpn/x86_64/x86_64-defs.m4: New file, defining LEA, DEF_OBJECT, and + END_OBJECT. + + * mpn/generic/mul.c: Put TMP_DECL as last decl. + +2007-10-06 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/popcount.asm: New file. + +2007-09-26 Torbjorn Granlund + + * mpz/get_str.c: Cast a char index to int to shut up compilers. + + * mpn/generic/dc_div_qr.c: Pass dummy scratch argument to mpn_invert. + * mpn/generic/dc_divappr_q.c: Likewise. + * mpn/generic/mu_div_qr.c: Likewise. + * mpn/generic/mu_divappr_q.c: Likewise. + * mpn/generic/mu_div_q.c: Likewise. + * mpn/generic/divexact.c: Likewise. + + * mpn/generic/invert.c: New file, placeholder for now. + +2007-09-24 Torbjorn Granlund + + * mpn/generic/toom_interpolate_5pts.c: New file, contents from + mpn/generic/mul_n.c + * mpn/generic/mul_n.c (mpn_toom3_interpolate): Function removed. + + * mpn/generic/toom_interpolate_7pts.c: New file. + + * mpn/x86/k7/mmx/popham.asm: Table cycle counts. + + * mpn/x86/k6/README: Update URLs. + + * mpn/powerpc32/README: Update URL's, company names. + + * mpn/generic/get_d.c: Complete rewrite. + + * mpn/generic/mul_toom33.c: New file. + + * mpn/generic/mul_toom22.c: Make orthogonal with other toomXY files. + * mpn/generic/mul_toom32.c: Likewise. + * mpn/generic/mul_toom42.c: Likewise. + + * mpn/alpha/invert_limb.asm: Update cycle counts. Fix a comment typo. + + * mpf/get_str.c: Include stdlib.h, not stdio.h for NULL. + + * doc/gmp.texi: Fix a typo. + + * memory.c (__gmp_default_allocate, __gmp_default_reallocate): + Cast size operands in error fprintf's. + + * longlong.h (sub_ddmmss) [powerpc 64]: Add more variants for constant + args. + + * gmp-impl.h (udiv_qrnnd_preinv3): New define. + * gmp-impl.h (ULONG_PARITY): Exclude masquerading __INTEL_COMPILER from + ia64 asm. + + * gmp-h.in (mpn_neg_n): New function. + +2007-09-18 Torbjorn Granlund + + * demos/pexpr.c (main): Add -v option. + (enum op_t): New tag TIMING. + (mpz_eval_expr): Execute TIMING. + (fns): Add TIMING entry. + + * gmp-impl.h: Add decls and THRESHOLDs for new toom multiplication + functions and division functions. + +2007-09-10 Torbjorn Granlund + + * mpn/powerpc32/addlsh1_n.asm: Use L() for labels. + * mpn/powerpc32/sublsh1_n.asm: Likewise. + +2007-09-09 Torbjorn Granlund + + * mpn/x86/x86-defs.m4 (LEA): New define. + * mpn/x86/darwin.m4: New file, for now just defining LEA. + * configure.in: Pick up x86/darwin.m4. + * mpn/x86/*: Use LEA for PIC references. + + * configure.in: For X86/32, treat core2 like pentium3. + +2007-09-06 Torbjorn Granlund + + * tests/amd64check.c (calling_conventions_values): Put constants, + dynamic values in this array (was in scalars). + (calling_conventions_check): Corresponding changes. + * tests/amd64call.asm: Rewrite to be PIC, smaller, using amd64check.c's + array. + +2007-09-04 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/mul_basecase.asm: Misc cleanups. + * mpn/x86/pentium4/sse2/sqr_basecase.asm: Likewise. + + * mpn/x86_64/mod_34lsub1.asm: Optimize loop, reduce code size. + + * tests/amd64call.asm: Remove bogus no-op moves. + +2007-09-03 Torbjorn Granlund + + From Richard Guenther: + * gmp-h.in (__GMP_EXTERN_INLINE): Declare conditionally on + __GNUC_STDC_INLINE__. + + * tests/cxx/t-locale.cc: #include , for abort. + + * mpn/x86_64/core2/popcount.asm: New file. + * mpn/x86_64/pentium4/popcount.asm: New file. + + * mpn/x86_64/addmul_2.asm: New file. + * mpn/x86_64/mul_2.asm: New file. + + * mpn/x86_64/aorsmul_1.asm: Use 32-bit mov for zeroing registers + (saves space). + +2007-09-01 Torbjorn Granlund + + * configure.in: Handle athlon64, core2, and pentium4 separately for + 64-bit ABI. + + * config.sub: Recog athlon64, core2, and opteron. + + * config.guess: Do two x86 variants, for 32-bit ABI and 64-bit ABI. + Return "athlon64" and "core2", not x86_64. + +2007-08-31 Torbjorn Granlund + + From Patrick Pelissier: + * gmp-h.in: Don't refer to FILE from C++ unless we've seen FILE. + +2007-08-30 Torbjorn Granlund + + * demos/isprime.c: Include string.h for strcmp. + + * demos/factorize.c (main): Declare to int. + +2007-06-22 Torbjorn Granlund + + * mpn/x86_64/pentium4/lshift.asm: Minor tuning. + * mpn/x86_64/pentium4/rshift.asm: Likewise. + +2007-05-30 Torbjorn Granlund + + * mpn/powerpc64/mode64/aors_n.asm: Add _nc entry points. + +2007-05-22 Torbjorn Granlund + + * tests/memory.c: Cast calls to new mem* calls to avoid unaligned ops. + +2007-05-16 Torbjorn Granlund + + * tests/mpz/convert.c: Tweak operand sizes for best coverage. + + * tests/memory.c: Add red zones around allocations. + +2007-05-15 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Make mul_1c entry point actually work. + + * mpn/generic/set_str.c (mpn_dc_set_str): Avoid calling mpn_add_n when + ln == 0. + + * tests/mpz/convert.c (string_urandomb): New function. + (main): Use it by enabling ifdef'ed out code. + +2007-04-30 Torbjorn Granlund + + * mpn/x86_64/mul_basecase.asm: Complete rewrite. + + * mpn/x86_64/copyi.asm: Use short shift-by-one form. Misc cleanups. + * mpn/x86_64/copyi.asm: Likewise. + * mpn/x86_64/popham.asm: Likewise. + + * mpn/x86_64/aorsmul_1.asm: Cleanup formatting. + +2007-04-25 Torbjorn Granlund + + * mpz/divexact.c: Handle undefined case of |N| < |D| to avoid segfaults. + +2007-02-24 Torbjorn Granlund + + * doc/gmp.texi (Toom 3-Way Multiplication): Fix typo. + (mpz_scan0, mpz_scan1): Fix typos. + (Float Internals): Rewrite paragraph about struct types. + +2007-02-12 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/sqr_basecase.asm: Complete rewrite (except + diagonal code). + +2007-02-05 Torbjorn Granlund + + * mpn/generic/mul_fft.c (mpn_fft_fft): New name for mpn_fft_fft_sqr, + old mpn_fft_fft removed. + (mpn_mul_fft_internal): Call mpn_fft_fft separately for each operand. + (mpn_fft_add_modF): Rewrite to avoid random branches. + (mpn_fft_sub_modF): Likewise. + + * mpn/x86/pentium4/sse2/addmul_1.asm: Complete rewrite. + * mpn/x86/pentium4/sse2/mul_1.asm: Complete rewrite. + * mpn/x86/pentium4/sse2/mul_basecase.asm: Complete rewrite, based on + new addmul and mul code. + +2007-01-31 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_sb_get_str): Get loop count for frac + development right. + + * mpn/powerpc32/vmx/mod_34lsub1.asm: New file. + + * mpn/powerpc32/aors_n.asm: New file, complete rewrite. + * mpn/powerpc32/add_n.asm: Remove. + * mpn/powerpc32/sub_n.asm: Remove. + +2007-01-25 Torbjorn Granlund + + * mpn/x86_64/core2/aors_n.asm: Add _nc entry points, minor cleanups. + + * mpn/x86_64/core2/lshift.asm: Rewrite. + * mpn/x86_64/core2/rshift.asm: Rewrite. + + * mpn/x86_64/pentium4/lshift.asm: Swap some loop insns for a small + speedup. + * mpn/x86_64/pentium4/rshift.asm: New file, based on lshift.asm. + + * mpn/x86_64/pentium4/gmp-mparam.h: New file. + + * mpn/x86_64/pentium4/aors_n.asm: Complete rewrite of add/subtract + code. + * mpn/x86_64/pentium4/add_n.asm: Remove. + * mpn/x86_64/pentium4/sub_n.asm: Remove. + +2007-01-20 Torbjorn Granlund + + * mpn/x86_64/lshift.asm: Add special case for cnt=1. + +2007-01-19 Torbjorn Granlund + + * mpn/x86_64/aorsmul_1.asm: New file, written from scratch, finally at + 3.0 c/l on K8 (addmul_1 was 3.3; submul_1 was 3.5). + * mpn/x86_64/addmul_1.asm: Remove. + * mpn/x86_64/submul_1.asm: Remove. + +2006-12-29 Torbjorn Granlund + + * randmt.c (__gmp_randclear_mt): Initialize ALLOC field, like in + __gmp_randinit_mt_noseed. + (__gmp_randclear_mt, __gmp_randinit_mt_noseed): Make similar functions + look similar. + (__gmp_randclear_mt): Pass actually allocated size. + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Add mul_toom22.c, + mul_toom32.c, mul_toom42.c. + + * configure.in: Recognize athlon64 and core2 as alternatives to x86_64. + Provide special settings for core2. + + * configure.in (gmp_mpn_functions): Add mul_toom22, mul_toom32, + mul_toom42. + + * mpn/generic/mul_toom22.c: New file. + * mpn/generic/mul.c: Use mpn_mul_toom22. Trim cutoff points between + the mpn_mul_toomN2 functions. Handle balanced operands at function + entry. + +2006-12-29 Marco Bodrato + + * mpn/generic/mul_n.c: Rewrite interpolation code. + +2006-12-28 Torbjorn Granlund + + * mpn/generic/mul_toom32.c: New file. + * mpn/generic/mul_toom42.c: New file. + * mpn/generic/mul.c: Use mpn_mul_toom32 and mpn_mul_toom42 for + unbalanced operands. + +2006-12-17 Torbjorn Granlund + + * mpn/x86_64/aorrlsh_n.asm: New file. + * mpn/x86_64/lshsub_n.asm: New file. + + * mpn/x86_64/core2/aors_n.asm: New file. + * mpn/x86_64/core2/lshift.asm: New file. + * mpn/x86_64/core2/rshift.asm: New file. + + * mpn/x86/p6/aors_n.asm: Replace K7 grabbing code with P6 specific + code. + + * mpn/x86/p6/lshsub_n.asm: New file. + +2006-11-23 Torbjorn Granlund + + * tune/speed.h (SPEED_ROUTINE_MPN_MUL_BASECASE): Allocate space for xp + locally, s->xp might be insufficient. + +2006-11-22 Torbjorn Granlund + + * randmt.c (__gmp_randinit_mt_noseed): Initialize ALLOC field of result + param. + +2006-11-06 Torbjorn Granlund + + * tune/set_strp.c: New file. + +2006-11-04 Torbjorn Granlund + + * extract-dbl.c: Rewrite to handle nails better, and for general + optimization. + + * mpz/bin_uiui.c: Simplify. + + * longlong.h (umul_ppmm) [mmix]: New. + + * tune/tuneup.c, tune/common.c, tune/speed.c, tune/speed.h, + tune/set_strb.c, tune/set_strs.c: Add tuning and speed measurements + of separate SET_STR_DC_THRESHOLD and SET_STR_PRECOMPUTE_THRESHOLD. + Add tuning and speed measurement of mpn_addsub_n. + +2006-10-31 Torbjorn Granlund + + * gmpxx.h: Remove ternary stuff, it is hardly an optimization and it + writes to destination before reading all source operands. + +2006-10-25 Torbjorn Granlund + + * mpn/generic/set_str.c: Complete rewrite. + * mpn/generic/get_str.c: Likewise. + + * gmp-impl.h (struct powers, powers_t): New types. + Restructure GET_STR_* and SET_STR_* thresholds. + +2006-09-21 Torbjorn Granlund + + * mpn/generic/rootrem.c: Remove some redundant casts. + +2006-07-12 Torbjorn Granlund + + * mpn/alpha/ev6/nails/addmul_2.asm: Make it run at claimed speed. + * mpn/alpha/ev6/nails/addmul_4.asm: Likewise. + + * mpf/get_str.c: Avoid copying result when not needed. Misc cleanups. + + * tests/amd64call.asm: Use jmp instead of jmpq to placate Solaris. + +2006-06-30 Torbjorn Granlund + + * configure.in (powerpc-*): Remove repeated path component. + +2006-06-15 Torbjorn Granlund + + * configure.in: (ia64-*-linux*): Don't use -O3. + +2006-06-14 Torbjorn Granlund + + * mpq/get_str.c: Fix upper base limit boundary in an ASSERT. + + * tests/refmpn.c (refmpn_sb_divrem_mn): Use ASSERT_CARRY for add-back. + +2006-05-31 Torbjorn Granlund + + * tests/mpz/t-set_d.c (check_data): Add more data points. + + * mpz/set_d.c: Handle negative return values from __gmp_extract_double. + +2006-05-17 Torbjorn Granlund + + * configure.in: Clear out gcc_cflags_cpu and gcc_cflags_arch for a fat + build. + +2006-05-16 Torbjorn Granlund + + * demos/primes.c (find_primes): Increase mpz_probab_prime_p cnt to 10. + + * mpn/generic/addsub_n.c: Fix criteria form when to call _nc functions. + +2006-05-12 Torbjorn Granlund + + * config.guess: Recognize more ppc processor types. + +2006-05-11 Torbjorn Granlund + + * tune/speed.c (usage): Update URL for gnuplot and quickplot. + +2006-05-10 Torbjorn Granlund + + * configure.in (powerpc-*-*): Pass -maltivec to assembler for + appropriate CPUs. + +2006-05-08 Torbjorn Granlund + + * mpn/powerpc32/aix.m4 (LEA): Remove [RW] attribute. + +2006-05-03 Torbjorn Granlund + + * mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n. + +2006-04-27 Torbjorn Granlund + + * mpz/divexact.c: Call mpz_tdiv_q for large operands. + + * configure.in (powerpc-*-darwin): Remove -fast, it affects PIC. + +2006-04-26 Torbjorn Granlund + + * config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1). + * config.sub: Handle ultrasparct1. + +2006-04-25 Torbjorn Granlund + + * mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and + non-GNUC data. + +2006-04-20 Torbjorn Granlund + + * tests/mpz/convert.c: Increase operands range. + +2006-04-19 Torbjorn Granlund + + * 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 + + * configure.in (gmp_mpn_functions_optional): Add lshiftc. + (HAVE_NATIVE): Add lshiftc. + + * mpn/powerpc64/mode64/invert_limb.asm: Use LEA, not LDSYM. + * mpn/powerpc64/mode64/mode1o.asm: Likewise. + * mpn/powerpc64/mode64/dive_1.asm: Likewise. + + * 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 + + * mpn/generic/mul_fft.c: Use new thresholds mechanism if MUL_FFT_TABLE2 + is defined. + (mpn_lshiftc): New name for mpn_lshift_com (for consistency with some + stuff already in 4.1.4. + (mpn_fft_mul_2exp_modF): Reorganize initial operand reductions to avoid + divisions. + + * tests/devel/try.c (choice_array): Add mpn_addsub_n[c]. + +2006-04-11 Torbjorn Granlund + + * aclocal.m4: Regenerate with patched libtool. + + * mpn/asm-defs.m4 (ASM_END): Provide (empty) default. + +2006-04-08 Torbjorn Granlund + + * configure.in (gmp_mpn_functions_optional): Add addsub. + + * gmpxx.h: Remove missed MPFR references. + + * gmp-impl.h (LIMBS_PER_DOUBLE): Adjust formula to not be pessimistic. + + * gmp-impl.h (TMP_*, WANT_TMP_DEBUG): Don't expect marker argument; + define TMP_SALLOC and TMP_BALLOC. + + * mpn/minithres/gmp-mparam.h: New file. + + * tests/mpz/t-io_raw.c: Fix printf type/arg mismatches. + * tests/mpz/t-export.c: Likewise. + * tests/mpz/io.c: Likewise. + * tests/t-constants.c: Likewise. + + * mpn/ia64/popcount.asm: Append "cond.dptk" to conditional branches to + placate icc. + * mpn/ia64/hamdist.asm: Likewise. + * mpn/ia64/lorrshift.asm: Likewise. + * mpn/ia64/dive_1.asm: Likewise. + +2006-04-05 Torbjorn Granlund + + * tal-notreent.c (__gmp_tmp_mark): Add "struct" tag for tmp_marker. + (__gmp_tmp_free): Likewise. + + * mpn/generic/mul_fft.c: Optimize many scalar divisions and mod + operations into masks and shifts. + (mpn_fft_mul_modF_K): Fix a spurious ASSERT_NOCARRY. + +2006-03-26 Torbjorn Granlund + + * 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 + + * 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 . + (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 + + * 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 + + * 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 + + * 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 + + * mpz/cmp_d.c: Declare `i'. + * mpz/cmpabs_d.c: Likewise. + +2006-02-23 Torbjorn Granlund + + * mpn/powerpc32/vmx/copyd.asm: Set right VRSAVE bits. + * mpn/powerpc32/vmx/copyi.asm: Likewise. + +2006-02-22 Torbjorn Granlund + + * mpn/powerpc32/vmx/logops_n.asm: New file. + + * mpn/powerpc32/diveby3.asm: Rewrite. + +2006-02-21 Torbjorn Granlund + + * mpn/powerpc32/vmx/copyi.asm: New file. + * mpn/powerpc32/vmx/copyd.asm: New file. + +2006-02-17 Torbjorn Granlund + + * mpn/alpha/ev6/nails/aors_n.asm (CYSH): Import proper setting from + deleted mpn_sub_n. + +2006-02-16 Torbjorn Granlund + + * mpn/alpha/ev6/addmul_1.asm: Correct slotting comments. + +2006-02-15 Torbjorn Granlund + + * 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 + + * mpn/powerpc32/diveby3.asm: Trivially reorder loop insns to save + 1 c/l. + + * mpn/x86_64/dive_1.asm: Use movabsq to support large model non-PIC. + + * mpn/x86_64/rsh1add_n.asm: Replace high register with rbx. + * mpn/x86_64/rsh1sub_n.asm: Likewise. + +2006-02-10 Torbjorn Granlund + + * mpn/powerpc64/sqr_diagonal.asm: Software pipeline. + + * mpn/powerpc64/vmx/popcount.asm: Add prefetching. + +2006-02-07 Torbjorn Granlund + + * mpn/powerpc64/mode64/diveby3.asm: Rewrite. + +2006-02-04 Torbjorn Granlund + + * 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 + + * mpn/powerpc32/linux.m4 (LEA): Add support for PIC. + + * configure.in (powerpc): New optional, gcc_cflags_subtype. + + * mpn/x86_64/pentium4/add_n.asm: New file. + * mpn/x86_64/pentium4/sub_n.asm: New file. + * mpn/x86_64/pentium4/lshift.asm: New file. + + * 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 + + * configure.in: Generalize OS-dependent patterns for powerpcs. + +2006-01-20 Torbjorn Granlund + + * mpn/x86_64/popham.asm: Optimize. + + * 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 processors masquerading as power + processors. + +2006-01-19 Torbjorn Granlund + + * mpn/x86_64/logops_n.asm: Rewrite for more stable speed and smaller + code. + * mpn/x86_64/com_n.asm: Likewise. + +2006-01-18 Torbjorn Granlund + + * mpn/x86_64/addlsh1_n.asm: Rewrite to use indexed addressing. + * mpn/x86_64/sublsh1_n.asm: Likewise. + +2006-01-17 Torbjorn Granlund + + * 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 + + * mpn/generic/get_str.c (mpn_sb_get_str): Fix digit count computation, + was inaccurate for nails. + +2006-01-15 Torbjorn Granlund + + * mpn/x86_64/mode1o.asm: Remove unneeded carry register zeroing. + +2006-01-08 Torbjorn Granlund + + * mpn/alpha/ev6/sqr_diagonal.asm: New file. + +2006-01-06 Torbjorn Granlund + + * mpn/powerpc64/mode64/mod_34lsub1.asm: Tune to 1.5 c/l. + + * mpn/generic/mullow_n.c (MUL_BASECASE_ALLOC): New #define. + (mpn_mullow_n): Use it. + + * mpn/powerpc64/mode64/dive_1.asm: Use EXTERN. + * mpn/powerpc64/mode64/mode1o.asm: Likewise. + + * 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 + + * mpn/powerpc64/mode64/mode1o.asm: New file. + + * mpn/powerpc64/mode64/dive_1.asm: Use L() for labels. Invoke ASM_END. + + * mpn/powerpc64/mode64/invert_limb.asm: Invoke ASM_END. + + * 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. + + * mpn/powerpc64/mode64/addmul_1.asm: Add POWER5 timings. + * mpn/powerpc64/mode64/mul_1.asm: Likewise. + + * mpn/powerpc64/mode64/submul_1.asm: Tweak to save 1.5 c/l for POWER5. + +2006-01-04 Torbjorn Granlund + + * mpn/powerpc64/mode64/dive_1.asm: New file. + + * mpn/powerpc64/mode64/invert_limb.asm: Add missing ASM_START. + + * mpn/powerpc64/mode64/addmul_1.asm: Fix a comment typo. + + * mpn/x86_64/diveby3.asm: Rewrite. + +2006-01-03 Torbjorn Granlund + + * configure.in: Update bugs reporting address. + + * mpn/powerpc64/mode64/diveby3.asm: Trim a cycle off of POWER4 timing. + Misc cleanup. + +2006-01-02 Torbjorn Granlund + + * mpn/powerpc64/linux64.m4 (CALL): New macro. + * mpn/powerpc64/aix.m4: Likewise. + * mpn/powerpc64/darwin.m4: Likewise, also define macro "DARWIN". + +2005-12-28 Torbjorn Granlund + + * mpn/powerpc64/mode64/mod_34lsub1.asm: New file. + +2005-12-26 Torbjorn Granlund + + * mpn/x86_64/mod_34lsub1.asm: New file. + +2005-12-20 Torbjorn Granlund + + * mpn/x86_64/submul_1.asm: Save a push/pop by not using register r12. + Use addq instead of leaq for pointer updates; schedule them. (These + changes shaves one cycle of overhead and 0.25 c/l.) + +2005-12-18 Torbjorn Granlund + + * mpf/ui_div.c: Implement workaround for GCC bug triggered on alpha. + * mpf/set_q.c: Likewise. + +2005-12-16 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Remove statement with no effect. + Rename dead variable to `dummy'. + +2005-12-15 Torbjorn Granlund + + * demos/pexpr.c (setup_error_handler): Add a missing ";". + +2005-11-27 Torbjorn Granlund + + * 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 + + * configure.in: Properly recognize all 32-bit Solaris releases. + +2005-11-10 Torbjorn Granlund + + * mpn/generic/mul_fft.c: Inline mpn_fft_mul_2exp_modF, + mpn_fft_add_modF and mpn_fft_normalize. + +2005-11-02 Torbjorn Granlund + + * tests/mpz/reuse.c: Increase operand size, decrease # of reps. + + * mpz/rootrem.c: Adapt to new mpn_rootrem. + * mpz/root.c: Likewise. + + * tests/mpz/reuse.c: Test mpz_rootrem. + + With Paul Zimmermann: + * mpn/generic/rootrem.c: Complete rewrite. + +2005-10-31 Torbjorn Granlund + + * 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_64/mul_basecase.asm: Remove an obsolete comment. + + * 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/ia64/divrem_2.asm: Add some comments. + + * mpn/ia64/divrem_1.asm: Reformat. + + * mpn/ia64/addmul_2.asm: Correct a comment on slotting. + * mpn/ia64/logops_n.asm: Likewise. + + * mpn/ia64/addmul_1.asm: Remove a redundant preg mutex decl. + + * 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 + + * 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 + + * 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 + + * demos/pexpr.c (fns): Add factorial keywords. + +2005-08-16 Torbjorn Granlund + + * tune/Makefile.am (EXTRA_DIST): Change "amd64" => "x86_64". + * mpn/Makefile.am (TARG_DIST): Change "amd64" => "x86_64". + +2005-08-15 Torbjorn Granlund + + * configure.in: Change "amd64" => "x86_64". + +2005-06-13 Torbjorn Granlund + + * mpn/generic/pre_mod_1.c: Canonicalize variable names. + + * mpn/generic/divrem.c: Rate qxn test as UNLIKELY. + + * mpn/generic/gcdext.c (sanity_check_row): Invoke TMP_MARK. + + * 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-13 Niels Möller + + * mpn/generic/gcdext.c (gcdext_schoenhage): Check for the + (unlikely) case that one of the hgcd/euclid steps results in two + remainders of one limb each. Then use gcdext_1. + +2005-06-12 Torbjorn Granlund + + * mpn/alpha/ev6/sub_n.asm: Analogous changes as to add_n.asm last. + +2005-06-11 Torbjorn Granlund + + * 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-09 Torbjorn Granlund + + * mpn/ia64/dive_1.asm: Fix issues with HP-UX. + +2005-06-08 Torbjorn Granlund + + * mpn/ia64/diveby3.asm: Update TODO list. + + * mpn/ia64/mode1o.asm: Fix comment typos. + + * mpn/ia64/dive_1.asm: New file. + +2005-06-07 Torbjorn Granlund + + * mpn/ia64/mode1o.asm: Add prefetching. + + * mpn/generic/dive_1.c: Use variable h for upper umul_ppmm result. + +2005-06-06 Torbjorn Granlund + + * mpn/ia64/hamdist.asm: Complete rewrite. + * mpn/ia64/popcount.asm: Rewrite to use multi-pronged feed-in. + + * mpn/ia64/aors_n.asm: Rewrite feed-in code. + * mpn/ia64/rsh1aors_n.asm: Likewise. + * mpn/ia64/aorslsh1_n.asm: Likewise. + * mpn/ia64/lorrshift.asm: Likewise. + +2005-06-04 Torbjorn Granlund + + * 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 + + * mpn/alpha/ev6/addmul_1.asm: Prefix all labels with "$". + * mpn/alpha/ev6/mul_1.asm: Likewise. + +2005-06-02 Torbjorn Granlund + + * 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 + + * tests/devel/try.c (main): Fix a typo. + +2005-05-31 Torbjorn Granlund + + * mpn/alpha/ev6/addmul_1.asm: Rewrite for L1 cache, add prefetch. + +2005-05-30 Torbjorn Granlund + + * tests/misc.c (tests_rand_start): Mask random seed to 32 bits. + +2005-05-29 Torbjorn Granlund + + * 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 + + * 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. + + * mpn/ia64/lorrshift.asm: Cleanup code layout. + * mpn/ia64/popcount.asm: Likewise. + +2005-05-24 Torbjorn Granlund + + * 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 + + * mpn/amd64/add_n.asm: Add mpn_add_nc entry point. + * mpn/amd64/sub_n.asm: Add mpn_sub_nc entry point. + + * 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. + + * mpn/ia64/aors_n.asm: Prefetch using lfetch. + * mpn/ia64/lorrshift.asm: Likewise. + * mpn/ia64/popcount.asm: Likewise. + * mpn/ia64/diveby3.asm: Likewise. + +2005-05-22 Torbjorn Granlund + + * 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 + + * 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 + + * 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 + + * 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 + + * 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-16 Torbjorn Granlund + + * mpn/ia64/gmp-mparam.h: Further extend FFT tables. + +2005-05-15 Torbjorn Granlund + + * gmp-impl.h (udiv_qrnnd_preinv2): Pull an add into add_ssaaaa. + (udiv_qrnnd_preinv2gen): Likewise. + +2005-05-14 Torbjorn Granlund + + * longlong.h (add_ssaaaa) [x86_64]: Restrict allowed immediate + operands. + * (sub_ddmmss) [x86_64]: Likewise. + +2005-05-02 Torbjorn Granlund + + * 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. + + * mpn/powerpc64/mode64/aors_n.asm: Add a 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/powerpc64: Use L() for all asm files. + + * 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. + + * mpn/powerpc64/mode64/invert_limb.asm: Load approx_tab address with + LDSYM. Optimize somewhat. Remove 2nd DEF_OBJECT operand. + +2005-05-01 Torbjorn Granlund + + * 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-28 Torbjorn Granlund + + * mpn/amd64/add_n.asm: Use r9 instead of rbx to save push/pop. + * mpn/amd64/sub_n.asm: Likewise. + +2005-04-09 Torbjorn Granlund + + * 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. + * mpn/powerpc64/logops_n.asm: Likewise. + * mpn/powerpc64/com_n.asm: Likewise. + +2005-04-08 Torbjorn Granlund + + * mpn/generic/rootrem.c: Allocate PP_ALLOC limbs also for qp. + +2005-04-07 Torbjorn Granlund + + * mpn/powerpc32/add_n.asm: Add nc entry point. + * mpn/powerpc32/sub_n.asm: Likewise. + + * mpn/amd64/*.asm: Add Prescott/Nocona cycle/limb numbers. + + * 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 + + * mpn/x86/k7/gmp-mparam.h: Fix typo in last change. + +2005-03-19 Torbjorn Granlund + + * mpn/amd64/gmp-mparam.h: Update. + + * mpn/alpha/gmp-mparam.h: Update. + * mpn/alpha/ev5/gmp-mparam.h: Update. + * mpn/alpha/ev6/gmp-mparam.h: Update. + + * mpn/ia64/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-03-17 Niels Möller + + * mpn/generic/hgcd.c (qstack_adjust): New argument d, saying how much + to adjust the top quotient. + (hgcd_adjust): The quotient can be off by either 1 or 2. + +2005-03-16 Torbjorn Granlund + + * tests/mpz/t-gcd.c (MAX_SCHOENHAGE_THRESHOLD): Set to largest of + gcd,gcdext thresholds. + +2005-03-15 Niels Möller + + * mpn/generic/gcdext.c (gcdext_schoenhage): When calling gcdext_lehmer, + reuse all temporary limb storage, including the storage used for the + qstack. + +2005-03-09 Torbjorn Granlund + + * mpn/amd64/logops_n.asm: Add MULFUNC_PROLOGUE. + +2005-03-05 Torbjorn Granlund + + * mpn/amd64/gmp-mparam.h: Extend MUL_FFT_TABLE and SQR_FFT_TABLE. + * mpn/ia64/gmp-mparam.h: Likewise. + +2005-02-17 Torbjorn Granlund + + * mpn/ia64/divrem_1.asm: Add preinv entry point. + +2005-01-13 Torbjorn Granlund + + * gmp-impl.h (MPN_SIZEINBASE): Count bits in type size_t. + (MPN_SIZEINBASE_16): Likewise. + +2004-12-17 Torbjorn Granlund + + * tune/speed.c (run_gnuplot): Use lines, not linespoints. + Output a reset gnuplot command initially. + +2004-12-04 Torbjorn Granlund + + * mpn/generic/random2.c (gmp_rrandomb): Rework again. + * mpz/rrandomb.c (gmp_rrandomb): Likewise. + + * mpn/amd64/redc_1.asm: Call via PLT when PIC. + +2004-11-29 Torbjorn Granlund + + * mpn/amd64/divrem_1.asm: Add preinv entry point. + * mpn/amd64/gmp-mparam.h: Set USE_PREINV_DIVREM_1 to 1. + +2004-11-24 Torbjorn Granlund + + * mpn/alpha/diveby3.asm: Use correct prefetch instruction. + +2004-11-19 Torbjorn Granlund + + * mpn/alpha/diveby3.asm: Add ",gp" glue in PROLOGUE. + Add r31 dummy operand to `br' instruction. + +2004-11-17 Torbjorn Granlund + + * mpn/powerpc64/mode64/addmul_1.asm: Rewrite. + * mpn/powerpc64/mode64/mul_1.asm: Rewrite. + + * configure.in: Invoke AC_C_RESTRICT. + +2004-11-16 Torbjorn Granlund + + * mpn/alpha/diveby3.asm: New file. + +2004-11-13 Torbjorn Granlund + + * mpn/amd64/popham.asm: New file. + +2004-11-12 Torbjorn Granlund + + * mpn/amd64/add_n.asm: Correct cycle count. + * mpn/amd64/sub_n.asm: Likewise. + + * mpn/amd64/dive_1.asm: Speed divisors with many factors of 2. + +2004-11-11 Torbjorn Granlund + + * mpn/amd64/dive_1.asm: New file. + +2004-11-10 Torbjorn Granlund + + * mpn/generic/popham.c: Add comment. + +2004-11-09 Torbjorn Granlund + + * mpn/amd64/com_n.asm: New file. + + * mpn/amd64/logops_n.asm: New file. + +2004-11-08 Torbjorn Granlund + + * mpn/powerpc64/com_n.asm: New file. + +2004-11-05 Torbjorn Granlund + + * mpn/amd64/diveby3.asm: New file. + + * config.guess: Strip any PPC string in /proc/cpuinfo. + Recognize 970 in that code. + +2004-11-01 Torbjorn Granlund + + * mpn/amd64/mul_basecase.asm: New file. + + * mpn/amd64/redc_1.asm: New file. + +2004-10-25 Torbjorn Granlund + + * mpn/powerpc64/mode64/addlsh1_n.asm: Correct cycle counts. + + * 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-18 Torbjorn Granlund + + * mpn/powerpc64/mode64/submul_1.asm: Shave 2 cycles/limb with new carry + inversion trick. + +2004-10-16 Torbjorn Granlund + + * configure.in: Support icc under x86. + (ia64-*-linux*): Pass -no-gcc to icc. + +2004-10-15 Torbjorn Granlund + + * 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 + + * mpn/generic/gcdext.c: Add a few missing TMP_MARK. + +2004-10-14 Torbjorn Granlund + + * acinclude.m4 (GMP_ASM_W32): Try also "data4". + + * mpn/ia64/logops_n.asm: Don't use naked "br", rejected by Intel + assembler. + * mpn/ia64/aors_n.asm: Likewise. + + * mpn/ia64/divrem_2.asm: Add ".prologue". + + * mpn/ia64/hamdist.asm: Put alloc first in bundle, enforced by the + Intel assembler. + + * longlong.h: Exclude masquerading __INTEL_COMPILER from ia64 asm. + * gmp-impl.h: Likewise. + +2004-10-12 Torbjorn Granlund + + * mpn/ia64/mul_2.asm: Rewrite function entry code, write new code for + n=2. + * mpn/ia64/addmul_2.asm: Likewise. + + * 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 + + * 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. + + * mpn/ia64/submul_1.asm: Add TODO item. + + * mpn/ia64/aors_n.asm: Rewrite function entry code (again). + * mpn/ia64/aorslsh1_n.asm: Likewise. + * mpn/ia64/logops_n.asm: Likewise. + + * mpn/ia64/rsh1aors_n.asm: Tune function entry and feed-in code. + * mpn/ia64/lorrshift.asm: Likewise. Remove several spurious loads. + + * tests/devel/Makefile.am (EXTRA_PROGRAMS): Updates for yesterday's + file removals and additions. + +2004-10-10 Torbjorn Granlund + + * mpn/ia64/copyi.asm: Tune function entry code. + * mpn/ia64/copyd.asm: Likewise. + + * mpn/ia64/logops_n.asm: Tune function entry and feed-in code for speed + and size. + * mpn/ia64/aors_n.asm: Likewise. + + * mpn/powerpc64/logops_n.asm: Correct cycles counts. + * mpn/powerpc64/mode64/aors_n.asm: Likewise. + + * 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 + + * mpn/powerpc64/linux64.m4: Define DEF_OBJECT, END_OBJECT, and TOCREF. + * mpn/powerpc64/aix.m4: Likewise. + * mpn/powerpc64/mode64/invert_limb.asm: Use DEF_OBJECT, END_OBJECT, and + TOCREF for approx_tab. + + * mpn/amd64/mul_1.asm: Add mpn_mul_1c entry point. + +2004-10-08 Torbjorn Granlund + + * mpn/powerpc64/copyi.asm: New file. + * mpn/powerpc64/copyd.asm: New file. + * gmp-h.in: Remove PPC MPN_COPY variants. + * gmp-impl.h: Likewise. + + * mpn/powerpc64/logops_n.asm: New file. + + * mpn/powerpc64/mode64/invert_limb.asm: New file. + +2004-10-07 Torbjorn Granlund + + * mpn/powerpc64/mode64/aors_n.asm: New file, optimized for POWER4 and + its derivatives. + * mpn/powerpc64/mode64/add_n.asm: Delete. + * mpn/powerpc64/mode64/sub_n.asm: Delete. + + * configfsf.guess: Patch HP-UX code to accommodate HP compiler's new + inability to read from stdin. + + * mpn/powerpc64/mode64/addsub_n.asm: Remove accidentally added file. + +2004-10-02 Torbjorn Granlund + + * mpn/amd64/README: Update for new developments, fix typos. + + * mpn/amd64/mul_1.asm: Tweak addressing (3.25 => 3.0 cycles/limb). + + * mpn/amd64/addmul_1.asm: Remove unreachable code block. + +2004-09-30 Torbjorn Granlund + + * mpn/amd64/addmul_1.asm: Rewrite, now 3.25 cycles/limb. + + * mpn/ia64/addmul_1.asm: Slightly enhance cross-jumping for code + density. + * mpn/ia64/mul_1.asm: Analogous changes. + +2004-09-29 Torbjorn Granlund + + * gmp-impl.h (x86 ULONG_PARITY): Work around GCC change of "q" register + flag. + +2004-09-28 Torbjorn Granlund + + * mpn/ia64/divrem_1.asm: Add cycle counts to loop. + + * mpn/ia64/divrem_2.asm: New file. + +2004-09-28 Paul Zimmermann + + * mpn/generic/mul_fft.c (mpn_mul_fft): Fix a bug in the choice of the + recursive fft parameters. + +2004-09-20 Torbjorn Granlund + + * 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 + + * tests/misc.c (tests_rand_start): Shift tv_usec for better seeding. + +2004-09-18 Torbjorn Granlund + + * 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-15 Torbjorn Granlund + + * mpn/ia64/mul_2.asm: For HAVE_ABI_32, convert vp. + * mpn/ia64/addmul_2.asm: Likewise. + +2004-09-13 Torbjorn Granlund + + * mpn/ia64/invert_limb.asm: Rewrite. + + * mpn/ia64/logops_n.asm: Insert some more stops. + +2004-09-12 Torbjorn Granlund + + * mpn/ia64/gmp-mparam.h: Update. + * mpn/amd64/gmp-mparam.h: Update. + + * mpn/ia64/sqr_diagonal.asm: Shave off a few cycles. + +2004-09-11 Torbjorn Granlund + + * mpn/ia64/mul_2.asm: New file. + * mpn/ia64/addmul_2.asm: New file. + + * mpn/ia64/addmul_1.asm: Tune a cycle from prologue. + + * mpn/ia64/lorrshift.asm: Insert stops after several branches. + * mpn/ia64/aorslsh1_n.asm: Likewise. + * mpn/ia64/rsh1aors_n.asm: Likewise. + + * mpn/generic/sqr_basecase.c: In variant for HAVE_NATIVE_mpn_addmul_2, + accumulate carry also for when HAVE_NATIVE_mpn_addlsh1_n. + +2004-09-07 Torbjorn Granlund + + * mpn/ia64/submul_1.asm: Rewrite. + + * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler. + * mpn/ia64/mul_1.asm: Likewise. + +2004-09-02 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Optimize feed-in code. + * mpn/ia64/addmul_1.asm: Rewrite feed-in code. + +2004-08-29 Torbjorn Granlund + + * tests/mpz/t-sizeinbase.c: Disable mpz_fake_bits and check_sample. + +2004-07-16 Torbjorn Granlund + + * mpn/ia64/addmul_1.asm: Format to placate HP-UX assembler. + +2004-06-17 Kevin Ryde + + * 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 + + * configure.in: Handle --enable-fat. Use that to enable x86 fat + builds, remove magic meaning of i386-*-*. + +2004-06-03 Kevin Ryde + + * 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 + + * config.guess (i?86-*-*): Avoid "Illegal instruction" message which + goes to stdout on 80386 freebsd4.9. + +2004-05-23 Niels Möller + + * mpn/generic/gcdext.c (gcdext_1_u): New function. + (mpn_gcdext): Use it. + +2004-05-23 Torbjorn Granlund + + * mpn/generic/gcdext.c (gcdext_1_odd): Use masking to avoid jumps. + +2004-05-22 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/addmul_1.asm: Add Prescott cycle numbers. + + * mpn/amd64/divrem_1.asm: Shave a cycle from fraction development code. + + * mpn/powerpc32/lshift.asm: Add more cycle numbers. + * mpn/powerpc32/rshift.asm: Likewise. + + * mpn/ia64/addmul_1.asm: Reformat. + +2004-05-21 Torbjorn Granlund + + * 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. + (GCDEXT_SCHOENHAGE_THRESHOLD): Set reasonable default. Override when + TUNE_PROGRAM_BUILD. + (GCDEXT_THRESHOLD): Remove. + + * tune/tuneup.c (gcdext_schoenhage_threshold): New variable. + (gcdext_threshold): Remove variable. + (tune_gcd_schoenhage): Lower step_factor to 0.1. + (tune_gcdext_schoenhage): New function, based on tune_gcd_schoenhage. + (tune_gcdext): Remove function. + (all): Corresponding changes. + +2004-05-21 Niels Möller + + * mpn/generic/gcdext.c: Complete rewrite. Uses fast Lehmer code for + small operands, and Schoenhage code for large operands. + + * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Ensure first operand is + not smaller than 2nd operand. + +2004-05-17 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * */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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * configfsf.guess: Update to 2004-03-12. + * configfsf.sub: Likewise. + +2004-04-27 Torbjorn Granlund + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 substitute + register name "define()"s. + * macos/Makefile.in (CmnObjs): Add tal-notreent.o. + +2004-04-19 Torbjorn Granlund + + * 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 + + * 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 + + * 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 + + * 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 for abort. + +2004-04-07 Torbjorn Granlund + + * tests/refmpf.c (refmpf_add_ulp): Adjust exponent when needed. + + * mpn/generic/random2.c: Rewrite (clone mpz/rrandomb.c). + +2004-04-07 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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-28 Torbjorn Granlund + + * mpn/amd64/divrem_1.asm: Trim a few cycles. + +2004-03-27 Torbjorn Granlund + + * mpn/amd64/sublsh1_n.asm: Fix typo. + + * mpn/generic/divrem_1.c: Fix typo. + + * mpn/generic/sqr_basecase.c: Fix typo. + + * mpn/amd64/divrem_1.asm: New file. + +2004-03-20 Kevin Ryde + + * 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 + + * 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 + + * mpn/generic/sqr_basecase.c: Add versions using mpn_addmul_2 and + mpn_addmul_2s. + +2004-03-14 Kevin Ryde + + * 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 + + * mpn/generic/sb_divrem_mn.c: Correct header comment. + +2004-03-11 Kevin Ryde + + * 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 + + * 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 + + * 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 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-02 Kevin Ryde + + * tests/mpn/t-hgcd.c: Use __GMP_PROTO on prototypes. + +2004-03-01 Torbjorn Granlund + + 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 + + * 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 + + * 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 + + * 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 + + From Kevin: + * mpn/generic/mul_fft.c (mpn_fft_add_modF): Loop until normalization + criterion met. + +2004-02-22 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * tests/mpz/t-jac.c (check_data): Remove unnecessary variable + "answer". + +2004-02-14 Torbjorn Granlund + + * mpn/ia64/aors_n.asm: Break a group with a RAW conflict. + +2004-02-14 Kevin Ryde + + * 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-12 Torbjorn Granlund + + * tests/mpn/t-hgcd.c: Remove unused variables. + + * mpn/ia64/hamdist.asm: Remove bundling incompatible with HP-UX + assembler. Misc HP-UX changes. + * mpn/ia64/gcd_1.asm: Add some syntax to placid the HP-UX assembler. + +2004-02-11 Kevin Ryde + + * 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. + + * mpn/ia64/mul_1.asm: Don't put .pred directives on labelled lines, + hpux 11.23 assembler doesn't like that. + * mpn/ia64/README: Add a note on this. + + * 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 + + * tests/mpz/t-gcd.c: Decrease # of tests run. + + * mpn/*/gmp-mparam.h: Add HGCD values, update TOOM values. + +2004-02-01 Torbjorn Granlund + + From Kevin: + * config.guess: Recognize AMD's hammer processors, return x86_64. + +2004-01-31 Niels Möller + + * mpn/generic/hgcd.c (mpn_cmp_sum3): Declare static. + +2004-01-25 Niels Möller + + * tests/mpn/Makefile.am (check_PROGRAMS): Add t-hgcd. + + * mpn/generic/hgcd.c (hgcd_jebelean): Simplify, use mpn_cmp_sum3. + (mpn_cmp_sum3): New function. + (mpn_diff_smaller_p): Remove. + (hgcd_final, hgcd_jebelean, hgcd_small_1, hgcd_small_2, euclid_step): + Remove tp,talloc arguments. Callers changed. + +2004-01-25 Torbjorn Granlund + + * tune/tuneup.c (all): Reenable calls of tune_gcd_schoenhage and + tune_hgcd. + + * mpn/generic/gcd.c: Reenable Schoenhage code. + + With Niels Möller: + * mpn/generic/hgcd.c: Add const and inline to several functions. + (qstack_push_start qstack_push_end qstack_push_quotient): Remove. + (euclid_step): Insert removed functions here. + (hgcd_adjust): Simplify, don't handle d != 1. + (qstack_adjust): Corresponding changes. + (mpn_hgcd2_lehmer_step): Remove redundant tests for bh against zero. + (hgcd_start_row_p): Tweak. + (hgcd_final): Shorten life of ralloc. + +2004-01-24 Kevin Ryde + + * 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. + + * mpn/ia64/README: Add remark about concentrating on itanium-2. + +2004-01-22 Kevin Ryde + + * 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 Niels Möller + + * mpn/generic/hgcd.c (hgcd_adjust): Backed out mpn_addlsh1_n + change for now. + + * mpn/generic/hgcd.c (hgcd_adjust): Fixed calls of mpn_addlsh1_n. + +2004-01-17 Kevin Ryde + + * 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 + + * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use MPN_DECR_U. + (hgcd_adjust): Use mpn_addlsh1_n when available. + +2004-01-16 Kevin Ryde + + * 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 + + * configure.in (--with-readline=detect): Check for readline/readline.h + and readline/history.h. Report result of detection. + +2004-01-14 Niels Möller + + * tune/speed.c (routine): Disabled speed_mpn_hgcd_lehmer. + * tune/common.c (speed_mpn_hgcd_lehmer): Disabled function. + + * mpn/generic/hgcd.c (mpn_hgcd_lehmer_itch, mpn_hgcd_lehmer) + (mpn_hgcd_equal): Deleted functions. + + * mpn/generic/gcd.c (hgcd_start_row_p): Deleted function. + (gcd_schoenhage): Deleted assertion code using mpn_hgcd_lehmer. + + * mpn/generic/hgcd.c (hgcd_final): Fixed ASSERT typos. + (mpn_hgcd): To use Lehmer's algorithm, call hgcd_final directly, + not mpn_hgcd_lehmer. + + * mpn/generic/gcd.c (gcd_schoenhage): Updated for changes to + mpn_hgcd and mpn_hgcd_fix. (Schoenhage code is still disabled). + + * gmp-impl.h (mpn_hgcd_fix): Updated prototype. + + * mpn/generic/hgcd.c (mpn_hgcd_fix): Replaced a bunch of arguments + by a pointer const struct hgcd_row *s. Updated callers. + + * mpn/generic/hgcd.c (hgcd_start_row_p): Use const for the input. + Moved function definition before hgcd_jebelean. + (hgcd_jebelean): Interface change, analogous to hgcd2. + (mpn_hgcd_fix): Normalize v. Require that v > 0. + (hgcd_adjust): Fix bug in carry update. + (mpn_hgcd): Reorganized again, to adapt to mpn_hgcd/hgcd_jebelean + now sometimes returning 1. Reintroduced hgcd_adjust. + + * mpn/generic/hgcd.c (hgcd_final): Streamlined logic for the first + hgcd2 call. + + * mpn/generic/hgcd2.c (mpn_hgcd2): Interface change. Return 1 + instead of 2, in the no progress case r0=A, r1=B. + + * mpn/generic/hgcd.c (hgcd_adjust): Changed arguments and return + value. Now takes a struct hgcd_row * and the uv size, and returns + updated uvsize. + (hgcd_final): Special handling of the case hgcd2 returning 1. Now + uses hgcd_adjust, instead of a full Euclid division. + +2004-01-13 Niels Möller + + * mpn/generic/hgcd.c (euclid_step, hgcd_case0): Merged into a + single function euclid_step. + (mpn_hgcd): Reorganized the logic for the second recursive call. + Avoid unnecessary Euclid steps. + + * tests/mpn/t-hgcd.c (hgcd_values): One more test value. + + * tests/mpn/t-hgcd.c (hgcd_values): Added values that trigged the + hgcd_jebelean bug. + + * mpn/generic/hgcd.c (hgcd_jebelean): Fixed off by one error. + (mpn_hgcd): Simplified the logic for the first recursive call. Now + it uses only the correct values from the recursive call, and + doesn't do tricks with hgcd_adjust (hgcd_adjust will probably be + reintroduced later, though). + + * tests/mpn/t-hgcd.c (mpz_mpn_equal, hgcd_ref_equal) + (hgcd_ref_init, hgcd_ref_clear): New functions. + (hgcd_ref): Reference implementation of hgcd, using mpz. + (one_test): Use hgcd_ref. Don't use mpn_hgcd_lehmer. + (main): Skip one_step if both input values are zero. + +2004-01-12 Niels Möller + + * mpn/generic/hgcd.c (hgcd_final): Rewritten, now uses Lehmer + steps instead of a division loop. + (mpn_hgcd_lehmer): Deleted old Lehmer code, instead just + initialize and then call hgcd_final. + + * tests/tests.h: Added refmpn_free_limbs prototype. + * tests/refmpn.c (refmpn_free_limbs): New function. + + * tests/mpn/t-hgcd.c: Try the same kind of random inputs as for + mpz/t-gcd. + +2004-01-11 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd_lehmer): Rewritten, after some more + analysis of the size reduction for one Lehmer step. + + * tests/mpn/t-hgcd.c: New file. + +2004-01-11 Torbjorn Granlund + + With Niels Möller: + * mpn/generic/hgcd.c (hgcd_normalize): Fix ASSERTs. + (hgcd_mul): Normalize R[1].uvp[1]. Add some more ASSERTs. + (hgcd_update_uv): Streamline. ASSERT that input and output is + normalized. + +2004-01-11 Kevin Ryde + + * 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 alal, 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 + + * 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 + + * 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 + + * 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 + + * mpn/alpha/README (REFERENCES): Add tru64 assembly manuals. + (ASSEMBLY RULES): Note what gcc says about !literal! etc. + +2004-01-03 Kevin Ryde + + * 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/ia64/hamdist.asm: Correction to inputs vs locals in alloc (makes + no difference to the generated code). Corrections to a couple of + comments. + + * mpn/x86/pentium4/sse2/addlsh1_n.asm (PARAM_CARRY): Remove macro, not + used, no such parameter. + + * mpn/generic/gcd.c: Use 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 + + * 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-30 Torbjorn Granlund + + * tune/tuneup.c (all): Disable calls of tune_gcd_schoenhage and + tune_hgcd for now. + +2003-12-29 Torbjorn Granlund + + * tests/mpz/t-gcd.c: Rewrite, based on suggestions by Kevin. + + * mpn/ia64/mul_1.asm: Amend TODO list. + + * mpn/sparc64/README: Remove mpn_Xmul_2, done. + Add blurb about L1 cache conflicts. + + * mpn/generic/gcd.c: Disable Schoenhage code for now. + +2003-12-29 Kevin Ryde + + * mpn/generic/mul_fft.c, mpz/root.c, mpq/cmp_ui.c: Add casts for K&R. + +2003-12-27 Kevin Ryde + + * tests/mpz/t-mul.c (mul_kara, mul_basecase): Use __GMP_PROTO. + + * mpn/generic/gcd.c (NHGCD_SWAP4_2, NHGCD_SWAP3_LEFT), + mpn/generic/hgcd.c (HGCD_SWAP4_LEFT, HGCD_SWAP4_RIGHT, HGCD_SWAP4_2, + HGCD_SWAP3_LEFT): Aggregate initializers for automatics is an + ANSI-ism, avoid. + + * 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-24 Torbjorn Granlund + + * mpn/generic/gcd.c (gcd_schoenhage_itch): Avoid unary "+". + (mpn_gcd): Allocate scratch space on heap for gcd_schoenhage. + (mpn_gcd): Don't invoke MPN_NORMALIZE on input operands. + +2003-12-23 Kevin Ryde + + * 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__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 + + * 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 + + * 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 Torbjorn Granlund + + * mpn/generic/hgcd.c (mpn_diff_smaller_p): Use mpn_cmp instead of + mpn_sub_n where possible. Use mp_size_t for relevant variables. + +2003-12-20 Kevin Ryde + + * 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 Niels Möller + + * mpn/generic/hgcd.c (mpn_diff_smaller_p): Rewrote function. Tried + to explain how it works. + (slow_diff_smaller_p, wrap_mpn_diff_smaller_p) [WANT_ASSERT]: Use + CPP to wrap assertion checks around all calls to + mpn_diff_smaller_p. + + * mpn/generic/hgcd.c (mpn_addmul2_n_1) [nails]: Fixed carry handling. + + * mpn/generic/hgcd.c (mpn_diff_smaller_p) [nails]: Use + GMP_NUMB_MAX, not MP_LIMB_T_MAX. + (mpn_hgcd_itch): Improved size calculation. + (mpn_hgcd_max_recursion): Moved function from qstack.c. Should to + be recompiled when HGCD_SCHOENHAGE_THRESHOLD is tuned. + + * mpn/generic/qstack.c (mpn_hgcd_max_recursion): ... moved from + here. + +2003-12-19 Torbjorn Granlund + + * tests/mpf/t-get_d.c: Print message before aborting. + + * mpn/generic/hgcd2.c (mpn_hgcd2): Substitute always-zero variable + with 0. Remove bogus comment. + + * mpn/generic/get_d.c: Make ONE_LIMB case actually work for nails. + +2003-12-18 Niels Möller + + * mpn/generic/hgcd.c (hgcd_update_r): Assert that the output r2 is + smaller than the input r1. + +2003-12-18 Torbjorn Granlund + + * 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 + + * 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-17 Niels Möller + + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) [nails]: + Enabled code also for GMP_NAIL_BITS > 0. + * tune/speed.c [nails]: Enable speed_mpn_hgcd and + speed_mpn_hgcd_lehmer. + * tune/tuneup.c (tune_hgcd) [nails]: Likewise. + + * mpn/generic/gcd.c [nails]: Use Schönhage's algorithm also for + GMP_NAIL_BITS > 0. + + * mpn/generic/hgcd.c [nails]: Enable the code for GMP_NAIL_BITS > 0. + (MPN_EXTRACT_LIMB) [nails]: Handle nails. + (__gmpn_hgcd_sanity): Allocate temporaries on the heap, not on the + stack. Also check that r[i] >= r[i+1]. + (mpn_hgcd2_lehmer_step) [nails]: Handle nails. + (mpn_hgcd_lehmer): When we temporarily have r3 > r2, avoid + trigging that assert in __gmpn_hgcd_sanity. + (mpn_hgcd): Likewise. + + * mpn/generic/hgcd2.c (div2) [nails]: Alternative nail-aware + version. + (SUB_2): New macro of Kevin's, which reduces do sub_ddmmss in the + non-nail case. + (HGCD2_STEP): Use SUB_2, not sub_ddmmss. Added alternative version + for K&R compilers. + (mpn_hgcd2) [nails]: Use SUB_2, not sub_ddmmss. New nail-aware + code for checking Jebelean's condition. + +2003-12-13 Kevin Ryde + + * 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 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-12 Niels Möller + + * mpn/generic/hgcd.c (__gmpn_hgcd_sanity): Fixed stack buffer + overrun. + * mpn/generic/hgcd.c: Improved comments. + +2003-12-11 Torbjorn Granlund + + * 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 + + * tests/mpz/t-gcd.c: Generate operands with sizes as a geometric + progression, to allow for larger operands and less varying timing. + + * tune/tuneup.c (tune_gcd_schoenhage): Set param.step_factor. + (tune_hgcd): Likewise. + +2003-12-10 Kevin Ryde + + * 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/tuneup.c (tune_gcd_schoenhage): Increase max_size to 3000, side + default 1000 is approx the crossover point on athlon. + + * 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 + + * 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 + + * mpn/generic/hgcd.c (mpn_hgcd): Use BELOW_THRESHOLD, to follow the + convention of N 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 + + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): + Move SPEED_TMP_ALLOC_LIMBS invocations out from calls. + + * mpn/generic/get_str.c (mpn_get_str, POW2_P case): + Don't append extra '\0' byte. + +2003-12-05 Niels Möller + + * tune/common.c (speed_mpn_hgcd_lehmer, speed_mpn_hgcd): + Updated for the renaming hgcd_sanity -> ASSERT_HGCD. + + * mpn/generic/gcd.c (gcd_schoenhage): TMP_DECL must be the final + declaration in the declaration section of a block. + + * tune/speed.h (mpn_gcd_accel): Added prototype. + +2003-12-05 Torbjorn Granlund + + * randmt.c (__gmp_mt_recalc_buffer): Put parens around "&" expressions + inside "!=". + + * mpf/get_str.c: Remove unused variable "fracn". + +2003-12-03 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * tune/tuneup.c (tune_hgcd): Disable if GMP_NAIL_BITS > 0. + * tune/speed.c (routine): Likewise. + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer): Likewise. + + * mpn/generic/gcd.c, mpn/generic/hgcd.c, mpn/generic/hgcd2.c + [GMP_NAIL_BITS]: Disabled new code if we have nails. + + * mpn/generic/gcd.c (MPN_LEQ_P): Copied macro definition (needed + for compilation with --enable-assert). + + * tune/tuneup.c (hgcd_schoenhage_threshold, + gcd_schoenhage_threshold): New variables. + (tune_hgcd, tune_gcd_schoenhage): New functions. + (all): Call tune_hgcd and tune_gcd_schoenhage. + + * tune/common.c (speed_mpn_hgcd, speed_mpn_hgcd_lehmer) + (speed_mpn_gcd_accel): New functions. + * tune/speed.c (routine): Added mpn_hgcd, mpn_hgcd_lehmer and + mpn_gcd _accel. + * tune/speed.h: Added corresponding prototypes. + + * tune/gcd_accel.c: New file. + + * tune/gcd_bin.c (GCD_SCHOENHAGE_THRESHOLD): Set to MP_SIZE_T_MAX. + + * tune/Makefile.am (libspeed_la_SOURCES): Added gcd_accel.c. + (TUNE_MPN_SRCS_BASIC): Added hgcd.c. + + * mpn/x86/k7/gmp-mparam.h (HGCD_SCHOENHAGE_THRESHOLD) + (GCD_SCHOENHAGE_THRESHOLD): Tuned values. + + * mpn/generic/gcd.c (mpn_gcd, gcd_binary_odd): Renamed the + old mpn_gcd function (which implements accelerated binary gcd) to + gcd_binary_odd. + (gcd_binary): New function, with the additional book keeping + needed when using gcd_binary_odd to compute the gcd of non-odd + numbers. + (hgcd_tdiv): New function. + (gcd_lehmer): New function, currently #if:ed out. + (hgcd_start_row_p): New function, duplicated from hgcd.c. + (gcd_schoenhage_itch): New function. + (gcd_schoenhage): New function. + (mpn_gcd): New advertised gcd function, which calls + mpn_gcd_binary_odd or mpn_gcd_schoenhage, depending on the size of + the input. + + * mpn/generic/hgcd.c (mpn_hgcd2_lehmer_step): Renamed function + (was lehmer_step), and made non-static. Updated callers. + + * gmp-impl.h (GCD_LEHMER_THRESHOLD): #if:ed out this macro. + (mpn_hgcd2_lehmer_step): Added prototype. + +2003-11-27 Niels Möller + + * tests/mpz/t-gcd.c (gcd_values): Moved definition, so that we + don't need to forward declare the array. + +2003-11-26 Niels Möller + + * mpn/generic/hgcd.c (mpn_hgcd2_fix): Deleted duplicate definition + (the function belongs to hgcd2.c). + +2003-11-26 Torbjorn Granlund + + * 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 + + * gmp-impl.h: Added name mangling for hgcd-related functions. Also + use __GMP_PROTO. + (MPN_LEQ_P, MPN_EXTRACT_LIMB): Moved macros to hgcd.c. + * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c: + Adapted to name changes. + + * tests/mpz/t-gcd.c (main): Added some tests with non-random + input. + +2003-11-25 Niels Möller + + * gmp-impl.h (MPN_LEQ_P, MPN_EXTRACT_LIMB): New macros. + (struct qstack, struct hgcd2_row, struct hgcd2, struct hgcd_row) + (struct hgcd): New structs. Also added prototypes for new hgcd, + hgcd2, qstack and gcd functions. + + * configure.in (gmp_mpn_functions): Added hgcd2, hgcd and qstack. + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Added hgcd2.c, + hgcd.c and qstack.c. + + * mpn/generic/hgcd.c, mpn/generic/hgcd2.c, mpn/generic/qstack.c: + New files, needed for the sub-quadratic gcd. + +2003-11-25 Kevin Ryde + + * doc/gmp.texi (Language Bindings): Add Axiom. + +2003-11-22 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * mpn/powerpc32: Add power4/powerpc970 cycle counts. + Use cmpwi instead of cmpi to placate darwin. + +2003-11-15 Kevin Ryde + + * 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 + + * mpn/alpha/aorslsh1_n.asm: Use Cray-friendly syntax for "br". + +2003-11-13 Torbjorn Granlund + + * mpn/alpha/aorslsh1_n.asm: New file. + +2003-11-12 Kevin Ryde + + * 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 + + * 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. + * mpn/ia64/hamdist.asm: Use ALIGN instead of .align. + + * 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-10 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Rewrite. + +2003-11-08 Torbjorn Granlund + + * 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 + + * 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 + + * mpn/powerpc64/linux64.m4: New file. + * configure.in (POWERPC64_PATTERN): Handle *-*-linux*. + Use linux64.m4. + + * mpn/ia64/logops_n.asm: New file. + +2003-11-05 Kevin Ryde + + * 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 + + * tune/speed.c: Fix typo in testing HAVE_NATIVE_mpn_modexact_1_odd. + +2003-11-03 Kevin Ryde + + * mpn/ia64/hamdist.asm: New file. + * 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 + + * 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 Torbjorn Granlund + + * mpn/powerpc64/mode64/submul_1.asm: Move an instruction to save a + cycle on POWER4. + + * mpn/powerpc64/mode64/divrem_1.asm: Fix several syntax problems + revealed on Mac OS X. + + * mpn/powerpc64/mode64/*.asm: Add cycle counts for POWER4. + + * mpn/powerpc64/sqr_diagonal.asm: Rewrite to save a cycle on POWER4. + +2003-10-31 Kevin Ryde + + * 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/divrem_1.asm, 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 + + * 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 + + * 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 + + * tests/cxx/t-misc.cc: Don't use , 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 + + * 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 + + * 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 Torbjorn Granlund + + * mpn/ia64/submul_1.asm: Slightly reschedule loop to accommodate + Itanium 2 getf.sig latency. + +2003-10-21 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * config.sub: Recognize powerpc970. + +2003-10-15 Torbjorn Granlund + + * config.guess: Recognize powerpc970 under MacOS. + +2003-10-15 Kevin Ryde + + * 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. + * mpn/amd64/addlsh1_n.asm: Add ALIGN(16). + + * 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-14 Torbjorn Granlund + + * mpn/ia64/lorrshift.asm: Rewrite. + + * mpn/ia64/diveby3.asm: Remove explicit bundling; add branch hints. + +2003-10-13 Torbjorn Granlund + + * mpn/ia64/diveby3.asm: New file. + +2003-10-13 Kevin Ryde + + * 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 + + * 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/ia64/aorslsh1_n.asm: Avoid shrp when shl/shr works just as well. + + * mpn/powerpc32/addlsh1_n.asm: New file. + * mpn/powerpc32/sublsh1_n.asm: New file. + +2003-10-12 Kevin Ryde + + * 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 + + * mpn/ia64/rsh1aors_n.asm: New file. + + * mpn/asm-defs.m4: Handle rsh1aors_n. + + * configure.in (tmp_mulfunc): Handle rsh1aors_n. + +2003-10-11 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * tests/refmpn.c (refmpn_addlsh1_n, refmpn_sublsh1_n, refmpn_rsh1add_n, + refmpn_rsh1sub_n): New functions. + +2003-10-03 Paul Zimmermann + + * 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 + + * configure.in (ia64*-*-hpux*): Fall back to +O1, not +O. + +2003-10-02 Kevin Ryde + + * 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 + + * mpn/ia64/gmp-mparam.h: Retune. + + * mpn/asm-defs.m4: Handle aorslsh1_n. + + * configure.in (tmp_mulfunc): Handle aorslsh1_n. + + * mpn/ia64/aorslsh1_n.asm: New file. + + * mpn/ia64/aors_n.asm: New file, complete rewrite of mpn_add_n and + mpn_sub_n. + * mpn/ia64/add_n.asm: Replace by aors_n.asm. + * mpn/ia64/sub_n.asm: Replace by aors_n.asm. + +2003-10-01 Kevin Ryde + + * 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 + + * 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 + + * 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/ia64/lorrshift.asm: Amend comments about performance. + + * mpn/pa64/mul_1.asm: Fix comment typo. + * mpn/pa64/addmul_1.asm: Likewise. + * mpn/pa64/submul_1.asm: Likewise. + + * mpn/amd64/addlsh1_n.asm: Save/restore carry using two insn to break + recurrency. Add remarks about possible further speedup. + * mpn/amd64/sublsh1_n.asm: Likewise. + + * mpn/amd64/rsh1add_n.asm: Add remarks about possible further speedup. + * mpn/amd64/rsh1sub_n.asm: Likewise. + +2003-09-27 Torbjorn Granlund + + * mpn/powerpc64/README: Update with POWER4/PPC970 pipeline info. + + * mpn/powerpc64/rsh1add_n.asm: New file. + * mpn/powerpc64/rsh1sub_n.asm: New file. + * mpn/powerpc64/rshift.asm: Rewrite. + * mpn/powerpc64/lshift.asm: Rewrite. + +2003-09-26 Torbjorn Granlund + + * mpn/powerpc64/addlsh1_n.asm: New file. + * mpn/powerpc64/sublsh1_n.asm: New file. + +2003-09-25 Torbjorn Granlund + + * 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 + + * 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 + + * tune/speed.c (routine): Add entries 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. + + * mpn/amd64/gmp-mparam.h: Retune. + + * 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. + + * mpn/amd64/addlsh1_n.asm: New file. + * mpn/amd64/sublsh1_n.asm: New file. + * mpn/amd64/rsh1add_n.asm: New file. + * mpn/amd64/rsh1sub_n.asm: New file. + +2003-09-24 Kevin Ryde + + * mpfr/*: Update to mpfr cvs 2003-09-24. + + * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Remove conftest* temporary files. + +2003-09-23 Torbjorn Granlund + + * gmp-impl.h (MUL_TOOM3_THRESHOLD, SQR_TOOM3_THRESHOLD): Now 128. + +2003-09-23 Kevin Ryde + + * gmp-h.in (gmp_randinit_set): Use __gmp_const rather than const. + +2003-09-22 Torbjorn Granlund + + * 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 . + + * 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/amd64/gmp-mparam.h: Retune. + + * mpn/Makefile.am (TARG_DIST): Add amd64. + + * 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 + + * mpfr/*: Update to mpfr cvs 2003-09-22. + +2003-09-21 Kevin Ryde + + * 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 + + * 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): Accommodate + latest toom3 code. + +2003-09-19 Kevin Ryde + + * mpn/x86/pentium4/sse2/divrem_1.asm, mpn/x86/pentium4/sse2/mod_1.asm: + New files. + +2003-09-16 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Rewrite. + +2003-09-12 Torbjorn Granlund + + * 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 + + * mpfr/*: Update to mpfr cvs 2003-08-31. + +2003-08-30 Kevin Ryde + + * mpfr/*: Update to mpfr cvs 2003-08-30. + +2003-08-29 Torbjorn Granlund + + * mpn/amd64/copyi.asm: New file. + * mpn/amd64/copyd.asm: New file. + * mpn/amd64/README: New file. + +2003-08-28 Torbjorn Granlund + + * mpn/amd64/lshift.asm: New file. + * mpn/amd64/rshift.asm: New file. + * mpn/amd64/gmp-mparam.h: Retune. + +2003-08-23 Kevin Ryde + + * 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-22 Torbjorn Granlund + + * mpn/amd64/add_n.asm: New file. + * mpn/amd64/sub_n.asm: New file. + * mpn/amd64/mul_1.asm: New file. + * mpn/amd64/addmul_1.asm: New file. + * mpn/amd64/submul_1.asm: New file. + +2003-08-19 Kevin Ryde + + * 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 + + * tune/Makefile.am (EXTRA_DIST): Add amd64.asm. + +2003-08-17 Kevin Ryde + + * gmpxx.h [__MPFR_H]: Include full 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 + + * 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 + + * 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 + + * 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 + + * tune/tuneup.c (tune_mul): Use MUL_KARATSUBA_THRESHOLD_LIMIT. + +2003-08-02 Kevin Ryde + + * 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 + + * 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 + + * longlong.h [ppc]: Remove nested test for vxworks. + +2003-07-24 Kevin Ryde + + * 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 + + * 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 + + * mpn/generic/get_d.c: Correction to infinity handling for large exp. + +2003-07-14 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mpfr/*: Update to mpfr cvs 2003-06-15. + + * mpn/x86/k6/mode1o.asm: Remove a bogus ASSERT. + +2003-06-12 Kevin Ryde + + * 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, + discard 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 + + * mpf/random2.c: Rewrite. Ignore sign of exp parameter. + +2003-06-10 Kevin Ryde + + * mpn/sparc64/mode1o.c: New file. + +2003-06-09 Torbjorn Granlund + + * mpn/powerpc32/lshift.asm: Add more cycle counts. + * mpn/powerpc32/rshift.asm: Add more cycle counts. + + * mpn/ia64/addmul_1.asm: Reformat comments for 80 columns. + + * 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 + + * 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 + + * 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 + + * 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-06 Torbjorn Granlund + + * mpn/ia64/submul_1.asm: Add branch over .align block. + +2003-06-05 Torbjorn Granlund + + * 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 + + * 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 + + * mpf/set_str.c (mpf_set_str): Work around gcc 2 bug triggered on + alpha. + +2003-06-03 Kevin Ryde + + * 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 + + * mpn/mips64/divrem_1.asm: New file. + +2003-06-01 Torbjorn Granlund + + * mpn/powerpc32/lshift.asm: Reformat code. + * mpn/powerpc32/rshift.asm: Reformat code. + +2003-05-30 Kevin Ryde + + * 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 + + * mpf/get_str.c: Move label `done' to match TMP_MARK and TMP_FREE. + Remove redundant variable prec. + +2003-05-26 Torbjorn Granlund + + * 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 + + * tests/mpn/t-divrem_1.c: New file. + * tests/mpn/Makefile.am: Add it. + +2003-05-22 Torbjorn Granlund + + * config.sub: Recognize viac3* processors. + +2003-05-20 Torbjorn Granlund + + * mpn/sparc64/addmul_2.asm: New file. + +2003-05-19 Torbjorn Granlund + + * 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 + + * 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 + + * 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 + + * gmp.texi (Notes for Particular Systems): Libtool directory is .libs + not _libs for mingw dll. Reported by Andreas Fabri. + +2003-05-07 Kevin Ryde + + * 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 + + * mpz/com.c: Rate size==0 as UNLIKELY, fix comment to mpn_add_1. + + * tune/freq.c (): Include only when needed for + getsysinfo(), to avoid a problem with this file on AIX 5.1. + +2003-05-03 Torbjorn Granlund + + * mpf/set_str.c: Do not ignore supposedly superfluous digits (in part + reverting last change). + +2003-05-03 Kevin Ryde + + * 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 + + * 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 + + * mpf/set_str.c: Major overhaul. + (mpn_pow_1_highpart): New helper function, meat extracted from + mpf_set_str. + +2003-04-24 Kevin Ryde + + * 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 + + * configure.in (*sparc*-*-* ABI=32): Add umul to extra_functions. + + * mpn/x86/p6/mul_basecase.asm: New file. + +2003-04-18 Kevin Ryde + + * 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 + + * 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 + + * configure.in: Match turbosparc. + * config.guess: Recognize turbosparc (just for *bsd for now). + +2003-04-09 Kevin Ryde + + * 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 + + * 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 + + * configure, aclocal.m4, ltmain.sh: Update to libtool cvs snapshot + 2003-04-02. + +2003-04-02 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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: Restructure 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 + + * mpfr/*: Update to mpfr cvs 2003-03-17. + +2003-03-15 Kevin Ryde + + * Makefile.am (EXTRA_libgmp_la_SOURCES): Use this for TMP_ALLOC + sources, instead of a libdummy.la. + +2003-03-16 Torbjorn Granlund + + * config.guess: Recognize supersparc and microsparc for *BSD systems. + Generalize some superscalar recognition patterns. + +2003-03-14 Torbjorn Granlund + + * mpn/sparc64/udiv.asm: New file. + +2003-03-13 Torbjorn Granlund + + * mpn/sparc64: Table cycle counts. Update some comments. + + * mpn/powerpc64/divrem_1.asm: New file. + +2003-03-10 Torbjorn Granlund + + * mpn/generic/mul.c (mpn_mul): Don't blindly expect + MUL_KARATSUBA_THRESHOLD to be a constant. + +2003-03-07 Torbjorn Granlund + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * mpn/arm/mul_1.asm: Fix typo introduced in last change. + +2003-02-17 Torbjorn Granlund + + * mpn/ia64/gmp-mparam.h: Retune. + + * 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 + + * mpn/arm/copyi.asm: New file. + * mpn/arm/copyd.asm: New file. + +2003-02-16 Kevin Ryde + + * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Tolerate incorrect last data + byte seen on an arm system. + +2003-02-15 Torbjorn Granlund + + * mpn/arm/gmp-mparam.h: Retune. + +2003-02-13 Torbjorn Granlund + + * mpn/powerpc32/750/com_n.asm: Add more cycle counts. + +2003-02-13 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * gmp-impl.h (MPN_NORMALIZE, MPN_NORMALIZE_NOT_ZERO): Add parens + around macro parameters. Reported by Jason Moxham. + +2003-02-01 Kevin Ryde + + * 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 + + * gmp-impl.h (mpn_mul_fft): Now returns int. + +2003-01-29 Paul Zimmermann + + * mpn/generic/mul_fft.c: Major rewrite. + +2003-01-25 Kevin Ryde + + * 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-24 Torbjorn Granlund + + * mpn/ia64/README: Update cycle counts to match current code. + +2003-01-18 Kevin Ryde + + * mpfr/*: Update to mpfr cvs 2003-01-18. + +2003-01-17 Torbjorn Granlund + + * gmp.texi: Canonicalize URLs. + +2003-01-15 Kevin Ryde + + * 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 + + * mpfr/*: Update to mpfr cvs 2003-01-11. + +2003-01-09 Kevin Ryde + + * mpfr/get_str.c: Update to mpfr cvs 2003-01-09. + + * doc/configuration: Various updates. + +2003-01-06 Torbjorn Granlund + + * mpn/alpha/copyi.asm: Avoid `nop' mnemonic, unsupported on Cray. + * mpn/alpha/copyd.asm: Likewise. + +2003-01-05 Kevin Ryde + + * 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 + + * 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 + + * mpn/alpha/copyi.asm: New file. + * mpn/alpha/copyd.asm: New file. + +2003-01-03 Kevin Ryde + + * 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 + + * mpn/generic/mul_fft.c (mpn_fft_next_size): Simplify. + +2002-12-28 Kevin Ryde + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * cxx/osdoprnti.cc: Use and rather than + and . No need for . + + * 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_reallocate_func, + __gmp_free_func): Move declarations to gmp-impl.h + + * mp_get_fns.c: New file. + * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it. + * gmp-h.in (mp_get_memory_functions): Add prototype. + * gmp.texi (Custom Allocation): Add mp_get_memory_functions, refer to + "free" not "deallocate" function. + * gmpxx.h (struct __gmp_alloc_cstring): Use mp_get_memory_functions, + not __gmp_free_func. + + * gmp-impl.h [__cplusplus]: Add for strlen. + (gmp_allocated_string): Hold length in a field. + * cxx/osdoprnti.cc, cxx/osmpf.cc: Use this. + +2002-12-20 Torbjorn Granlund + + * tests/mpz/t-perfsqr.c (check_sqrt): Print more variables upon + failure. + + * mpn/generic/rootrem.c: In Newton loop, pad qp with leading zero. + +2002-12-19 Torbjorn Granlund + + * mpn/generic/rootrem.c: Allocate 1.585 (log2(3)) times more space + for pp temporary to allow for worst case overestimate of root. + Add some asserts. + + * tests/mpz/t-root.c: Generalize and speed up. + +2002-12-19 Kevin Ryde + + * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt test. + + * gmp-h.in: Don't bother trying to support Compaq C++ in pre-standard + I/O mode. + * gmp.texi (Notes for Particular Systems): Compaq C++ must be used in + "standard" iostream mode. + +2002-12-18 Torbjorn Granlund + + * mpn/alpha/mod_34lsub1.asm: Add code for big-endian, using existing + little-endian code only if HAVE_LIMB_LITTLE_ENDIAN is defined. + +2002-12-18 Kevin Ryde + + * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): New + defines in config.m4. + +2002-12-17 Torbjorn Granlund + + * printf/printffuns.c (gmp_fprintf_reps): Make it actually work + for padding > 256. + +2002-12-17 Kevin Ryde + + * tune/freq.c: Add for memcmp. + + * mpz/pprime_p.c: Use MPN_MOD_OR_MODEXACT_1_ODD. + + * gmp.texi (Formatted Output Strings): %a and %A are C99 not glibc. + (Formatted Input Strings): Type "l" is for double too. Hex floats are + accepted for mpf_t. + (Formatted Input Functions): Describe tightened parse rule, clarify + return value a bit. + + * scanf/doscan.c: Add hex floats, tighten matching to follow C99, for + instance "0x" is no longer acceptable to "%Zi". + Rename "invalid" label to avoid "invalid" variable, SunOS cc doesn't + like them the same. + * tests/misc/t-scanf.c: Update tests. + * tests/misc/t-locale.c (check_input): Don't let "0x" appear from fake + decimal point. + + * config.guess (sparc*-*-*): Look at BSD sysctl hw.model to recognise + ultrasparcs. + + * mpfr/tests/dummy.c: New file. + * mpfr/tests/Makefile.am (libfrtests_a_SOURCES): Add it. + +2002-12-14 Kevin Ryde + + * mpbsd/Makefile.am (nodist_libmpbsd_la_SOURCES): Move these mpz + sources to libmpbsd_la_SOURCES directly, automake 1.7.2 now gets the + ansi2knr setups right for sources in other directories. + + * mpfr/tests/Makefile.am: Add libfrtests.a in preparation for new mpfr. + +2002-12-13 Kevin Ryde + + * mpfr/Makefile.am (mpfr_TEXINFOS, AM_MAKEINFOFLAGS): Allow for + fdl.texi in recent mpfr. + + * configure.in (AC_PROG_EGREP): Ensure this is run outside the Cray + conditional AC_EGREP_CPP. + + * configure.in (alpha*-*-*): Use gcc -Wa,-oldas if it works, to avoid + problems with new compaq "as" on OSF 5.1. + + * mpn/Makefile.am (EXTRA_DIST): Remove Makeasm.am, automake 1.7.2 does + it automatically. + + * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Remove this hack, fixed by + autoconf 2.57. + + * configure.in (AC_CONFIG_LIBOBJ_DIR): Set to mpfr, for the benefit of + new mpfr using LIBOBJ. + + * configure.in: (AM_INIT_AUTOMAKE): Use "gnu no-dependencies + $(top_builddir)/ansi2knr". + * */Makefile.am (AUTOMAKE_OPTIONS): Remove, now in configure.in. + + * configure, config.in, INSTALL.autoconf: Update to autoconf 2.57. + * */Makefile.in, configure, aclocal.m4, install-sh, mkinstalldirs: + Update to automake 1.7.2. + + * gmp.texi (Build Options): Add hppa64 to cpu types. + (ABI and ISA): Add gcc to hppa 2.0. + (Debugging): Add maximum debuggability config options. + (Language Bindings): Add Arithmos, reported by Johan Vervloet. + (Formatted Output Strings): 128 bits is about 40 digits, ll is only + for long long not long double. + (Formatted Input Strings): ll is only for long long not long double. + + * mpz/divis.c, mpz/divis_ui.c, mpz/cong.c, mpz/cong_ui.c: Allow d=0, + under the rule n==c mod d iff exists q satisfying n=c+q*d. + * gmp.texi (Integer Division): Describe this. + Suggested by Jason Moxham. + +2002-12-13 Pedro Gimeno + + * randlc2x.c (lc): Remove check for seedn < an, which is now + superfluous. Add ASSERT to ensure it's correct. Add ASSERT to check + precondition of __GMPN_ADD. + (gmp_randinit_lc_2exp): Avoid reallocation by allocating one extra bit + for both seed and a. Simplify seedn < p->_cn case. + + * tests/rand/t-lc2exp.c (check_bigs): Test negative seeds. + +2002-12-12 Torbjorn Granlund + + * mpn/pa32/pa-defs.m4 (PROLOGUE_cpu): Zap spurious argument to `.proc'. + Add empty `.callinfo'. + +2002-12-11 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/addmul_1.asm: Don't reuse `ret' symbol for a + label. + +2002-12-11 Kevin Ryde + + * configure.in (hppa*-*-*): Don't use gcc -mpa-risc-2-0 in ABI=1.0. + + * mpn/pa32/pa-defs.m4: New file, arranging for .proc/.procend. + * configure.in (hppa*-*-*): Use it. + + * printf/doprnt.c: Comments on "ll" versus "L". + + * tests/mpz/t-div_2exp.c: Reduce tests, especially the random ones. + +2002-12-11 Torbjorn Granlund + + * mpz/get_d.c (limb2dbl): New macro for conversion to `double'. + Define it to something non-trivial for 64-bit hppa. + * mpq/get_d.c: Likewise. + * mpf/get_d.c: Likewise. + + * mpn/x86/pentium4/sse2/addmul_1.asm: Unroll to save one c/l. + +2002-12-09 Kevin Ryde + + * tune/Makefile.am: Don't use -static under --disable-static, it tends + not to work. + * configure.in (ENABLE_STATIC): New AM_CONDITIONAL. + + * gmp-h.in: Use instead of with Compaq C++ in + pre-standard I/O mode. + + * tests/mpz/t-jac.c, tests/mpz/t-scan.c: Reduce tests. + +2002-12-08 Kevin Ryde + + * configure.in (*-*-ultrix*): Remove forcible --disable-shared, + believe this was a generic problem with libtool, now gone. + +2002-12-08 Torbjorn Granlund + + * gmp-impl.h (USE_LEADING_REGPARM): Disable for PIC code generation. + +2002-12-07 Torbjorn Granlund + + * tests/cxx/t-misc.cc (check_mpq): Use 0/1 for canonical 0 in + mpq_cmp_ui calls. + + * configure.in (hppa2.0*-*-*): Pass +O2 instead of +O3 to work around + compiler bug with mpfr/tests/tdiv. + +2002-12-07 Kevin Ryde + + * configure.in (hppa2.0*-*-* ABI=2.0n): Make -mpa-risc-2-0 optional. + New hppa-level-2.0 test using GMP_HPPA_LEVEL_20 to detect assembler + support for 2.0n. + * acinclude.m4 (GMP_PROG_CC_WORKS): Add code that provokes an error + from gcc -mpa-risc-2-0 if the assembler doesn't know 2.0 instructions. + (GMP_HPPA_LEVEL_20): New macro. + +2002-12-07 Pedro Gimeno + + * gmp-impl.h (gmp_randfnptr_t.randseed_fn) Return void. + (LIMBS_PER_ULONG, MPN_SET_UI): New macros. + (MPZ_FAKE_UI): Rename couple of parameters. + + * randlc2x.c (gmp_rand_lc_struct): _mp_c and _mp_c_limbs replaced + with mpn style _cp and _cn. All callers changed. + (randseed_lc): Fix limbs(seed) > bits_to_limbs(m2exp) case. + Remove return value. + (gmp_randinit_lc_2exp): Attempt to avoid redundant reallocation. + + * randmt.c (mangle_seed): New function by Kevin. + (randseed_mt): Use it instead of mpz_powm, for performance. Remove + return value. Remove commented out code (an inferior alternative to + mpz_export). + + * randsdui.c (gmp_randseed_ui): Use MPZ_FAKE_UI. + + * tests/rand/t-lc2exp.c (check_bigm, check_bigs): New tests. + * tests/rand/t-urndmm.c: Add L to constants in calls, for K&R. + +2002-12-06 Torbjorn Granlund + + * configure.in: Remove -g. + (hppa*-*-*): Pass -Wl,+vnocompatwarnings with +DA2.0. + +2002-12-05 Torbjorn Granlund + + * mpn/pa64/sqr_diagonal.asm: Remove .entry, .proc, .procend. + * mpn/pa64/udiv.asm: Likewise. + +2002-12-05 Kevin Ryde + + * mpn/pa64/sub_n.asm: Remove space in "sub, db" which gas objects to. + * mpn/pa64/*.asm, tune/hppa2.asm: Use ".level 2.0" for 2.0n, since gas + doesn't like ".level 2.0N". + + * configure.in (hppa*-*-*): Group path and flags choices, for clarity. + (hppa1.0*-*-*): Use gcc -mpa-risc-1-0 when available. + (hppa2.0*-*-*): Ditto -mpa-risc-2-0. + (*-*-hpux*): Exclude ABI=2.0w for hpux[1-9] and hpux10, rather than + the converse of allowing it for hpux1[1-9]; ie. list the bad systems + rather than try to guess the good systems. + (hppa2.0*-*-*) [ABI=2.0n ABI=2.0w]: Add gcc to likely compilers. + (hppa*-*-*) [gcc]: Test sizeof(long) to differentiate a 32-bit or + 64-bit build of the compiler. + (hppa64-*-*): Add this as equivalent to hppa2.0-*-*. + * acinclude.m4 (GMP_C_TEST_SIZEOF): New macro. + + * tests/tests.h (ostringstream::str): Must null-terminate + ostrstream::str() for the string constructor. + +2002-12-04 Torbjorn Granlund + + * mpn/pa32/hppa1_1/udiv.asm: Don't wrap symbol to INT64 in L() stuff. + + * longlong.h (mpn_udiv_qrnnd_r based udiv_qrnnd): Fix typo. + + * mpn/powerpc32/powerpc-defs.m4: Define float registers with `f' + prefix. + +2002-12-04 Kevin Ryde + + * gmp.texi (Floating-point Functions): Note the mantissa is binary and + decimal fractions cannot be represented exactly. Suggested by Serge + Winitzki. + (Known Build Problems): Note libtool stripping options when linking. + Reported by Vincent Lefevre. + + * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Don't make an empty result a + failure, that's a valid result. + (GMP_ASM_GLOBL): Establish this from the host cpu type. + (IA64_PATTERN): New macro. + (GMP_PROG_EXEEXT_FOR_BUILD, GMP_C_FOR_BUILD_ANSI, + GMP_CHECK_LIBM_FOR_BUILD): Remove temporary files created. + * configure.in: Use IA64_PATTERN. + +2002-12-03 Torbjorn Granlund + + * tune/hppa.asm: Use config.m4. + * tune/hppa2.asm: Likewise. + * tune/hppa2w.asm: Likewise. + + * mpn/pa64: Use LDEF. + +2002-12-03 Kevin Ryde + + * INSTALL: Use return rather than exit in the example programs. + Suggested by Richard Dawe. + + * gmp.texi (Build Options): Move non-unix notes to ... + (Notes for Particular Systems): ... here. Mention MS Interix, + reported by Paul Leyland. + (C++ Interface Random Numbers): Add gmp_randinit_mt to examples. + + * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Must test empty suffix first, + for the benefit of hppa hp-ux. + (GMP_ASM_UNDERSCORE): Grep the output of "nm" instead of trying to + construct an asm file, and in case of failure fallback on no + underscore and a warning. + + * longlong.h (count_leading_zeros, count_trailing_zeros) [ev67, ev68]: + Restrict __asm__ ctlz and cttz to __GNUC__. + + * gen-psqr.c (HAVE_CONST, const): New macros. + + * tests/cxx/t-rand.cc (check_randinit): Add gmp_randinit_mt. + +2002-12-02 Torbjorn Granlund + + * gmp-impl.h: Split popc_limb again, combined version gives too many + compiler warnings. + +2002-12-01 Torbjorn Granlund + + * mpn/generic/gcdext.c (div1): Disable unused function. + + * mpz/root.c: Don't include stdlib.h or longlong.h. + * mpz/rootrem.c: Likewise. + + * extract-dbl.c: abort => ASSERT_ALWAYS. + * mpz/set_d.c: Likewise. + * mpn/generic/tdiv_qr.c: Likewise. + + * gen-psqr.c (f_cmp_fraction, f_cmp_divisor): Change parameter to + `const void *', to match qsort spec. + +2002-12-01 Kevin Ryde + + * gmp.texi (Integer Division): Fix a couple of @math's for tex. + Use @dots in more places. + + * tests/cxx/t-locale.cc: Test non std::locale systems too. + * tests/cxx/clocale.c: New file, reinstating what was localeconv.c, + and subverting nl_langinfo too. + * tests/cxx/Makefile.am (t_locale_SOURCES): Add it. + + * tests/tests.h (ostringstream, istringstream): Provide fakes of these + if not available. + * tests/cxx/t-locale.cc, tests/cxx/t-ostream.cc: Remove . + * configure.in (AC_CHECK_HEADERS) [C++]: Add . + +2002-11-30 Torbjorn Granlund + + * printf/doprnt.c (__gmp_doprnt): Comment out a `break' to shut up + compiler warnings. + + * mpn/ia64/invert_limb.asm: Add `many' hints to return insns. + + * mpn/ia64/divrem_1.asm: Allocate more local registers; put b0 in + one of them. + + * mpn/ia64/popcount.asm: Properly restore register ar.lc. + + * longlong.h (umul_ppmm) [ia64]: Form both product parts in asm. + + * mpz/bin_uiui.c: Cast umul_ppmm operands. + + * scanf/doscan.c (gmpscan): Remove unused label store_get_digits. + + * gmp-impl.h: #undef MIN and MAX before #defining. + + * mpn/ia64/copyi.asm: Add `;' after bundle declarators. + * mpn/ia64/copyd.asm: Likewise. + + * mpn/ia64/divrem_1.asm: Add some syntax to placid the HP-UX assembler. + +2002-11-30 Kevin Ryde + + * configure.in (AC_CHECK_HEADERS): Add nl_types.h. + * tests/misc/t-locale.c: Use this, for nl_item on netbsd 1.4.1. + +2002-11-29 Torbjorn Granlund + + * tests/devel/addmul_1.c: Provide prototype for mpn_print. + (OPS): Account for function overhead. + * tests/devel/{submul_1.c,mul_1.c,add_n.c,sub_n.c}: Likewise. + + * mpn/ia64/addmul_1.asm: Rewrite. + +2002-11-28 Torbjorn Granlund + + * mpn/ia64/sqr_diagonal.asm: Don't allocate any registers. + + * mpn/ia64/submul_1.asm: Adapt to Itanium 2. + + * mpn/ia64/mul_1.asm: Fix typo in HAVE_ABI_32 code. + + * mpn/ia64/add_n.asm: Rewrite. + * mpn/ia64/sub_n.asm: Rewrite. + +2002-11-28 Kevin Ryde + + * mpn/Makefile.am (nodist_EXTRA_libmpn_la_SOURCES): Use this rather + than libdummy. + * tests/Makefile.am (EXTRA_libtests_la_SOURCES): Use this for + x86call.asm and x86check.c rather than libdummy. + +2002-11-27 Torbjorn Granlund + + * tests/mpz/t-mul.c: Implement reference Karatsuba multiplication. + Rewrite testing scheme to run fewer really huge tests. + +2002-11-26 Torbjorn Granlund + + * tests: Decrease repetition count for some of the slowest tests. + + * mpn/ia64/divrem_1.asm: New file. + +2002-11-25 Torbjorn Granlund + + * mpfr/tests/tdiv.c: Decrease number of performed tests. + +2002-11-23 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Rewrite. + +2002-11-23 Kevin Ryde + + * mpn/ia64/README: Add some references. + + * gmp.texi (Build Options): Add itanium and itanium2, mention DocBook + and XML from makeinfo, add texinfo top level cross reference. + (Integer Division): Try to clarify 2exp functions a bit. + (C++ Interface Floats): Giving bad string to constructor is undefined. + (C++ Interface Integers, C++ Interface Rationals): Ditto, and show + default base in prototype, not the description. + + * config.sub, config.guess, configure.in (itanium, itanium2): New cpu + types. + + * tests/misc/t-printf.c, tests/misc/t-scanf.c (check_misc): Suppress + %zd test on glibc prior to 2.1, it's not supported. + +2002-11-22 Torbjorn Granlund + + * mpn/ia64/copyi.asm: Optimize for Itanium 2. + * mpn/ia64/copyd.asm: Likewise. + +2002-11-20 Torbjorn Granlund + + * mpn/ia64/sqr_diagonal.asm: New file. + + * mpn/ia64/submul_1.asm: Handle vl == 0 specially. + +2002-11-20 Kevin Ryde + + * tests/cxx/t-locale.cc: Test with locales imbued into stream, use + , eliminated some C-isms. istream tests disabled, not yet + locale-ized. + * tests/cxx/Makefile.am (t_locale_SOURCES): Remove localeconv.c. + * tests/cxx/localeconv.c: Remove file. + + * configure.in (AC_CHECK_TYPES) [C++]: Add std::locale. + * printf/doprntf.c: Add decimal point parameter, remove localeconv use. + * gmp-impl.h (__gmp_doprnt_mpf): Update prototype, bump symbol to + __gmp_doprnt_mpf2 to protect old libgmpxx. + * cxx/osmpf.cc: Use this with ostream locale decimal_point facet. + * printf/doprnt.c: Ditto, with GMP_DECIMAL_POINT. + + * gmp-h.in: More comments on __declspec for windows DLLs. + + * mpf/set_str.c, scanf/doscan.c: Cast through "unsigned char" for + decimal point string, same as input chars. + + * configure.in (AC_CHECK_HEADERS): Add langinfo.h. + (AC_CHECK_FUNCS): Add nl_langinfo. + * gmp-impl.h (GMP_DECIMAL_POINT): New macro. + * mpf/out_str.c, mpf/set_str.c, scanf/doscan.c: Use it, and don't + bother with special code for non-locale systems. + * tests/misc/t-locale.c: Subvert nl_langinfo too. + + * configure.in, acinclude.m4 (GMP_ASM_X86_GOT_UNDERSCORE): New macro. + * mpn/x86/x86-defs.m4 (_GLOBAL_OFFSET_TABLE_): New macro, inserting + extra underscore for OpenBSD. + * mpn/x86/README (_GLOBAL_OFFSET_TABLE_): Update notes. + Reported by Christian Weisgerber. + + * tests/cxx/t-rand.cc (check_randinit): New function, collecting up + constructor tests. + + * tests/cxx/t-ostream.cc: Use instead of , use + compare instead of strcmp. + + * gmpxx.h (__gmp_randinit_lc_2exp_size_t): Return type is int. + +2002-11-18 Kevin Ryde + + * tune/speed.c (r_string): Use CNST_LIMB with bits, spotted by + Torbjorn. + +2002-11-19 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Remove redundant cmp from prologue code. + Streamline prologue. + * mpn/ia64/addmul_1.asm: Likewise. + * mpn/ia64/submul_1.asm: New file. + * mpn/ia64/submul_1.c: Remove. + +2002-11-17 Torbjorn Granlund + + * mpn/generic/popham.c: New file, using new faster algorithm. + * mpn/generic/popcount.c: Remove. + * mpn/generic/hamdist.c: Remove. + + * mpn/ia64/addmul_1.asm: Don't clobber callee-saves register f16. + * mpn/ia64/mul_1.asm: Likewise. + + * mpn/ia64/addmul_1.asm: Add pred.rel declarations. Resolve RAW + hazards for condition code registers, duplicating code as needed. Add + prediction to all branches. + * mpn/ia64/mul_1.asm: Likewise. + * mpn/ia64/add_n.asm: Likewise. + * mpn/ia64/sub_n.asm: Likewise. + * mpn/ia64/copyi.asm: Likewise. + * mpn/ia64/copyd.asm: Likewise. + + * mpn/generic/random2.c: Add a cast to silence some compilers. + +2002-11-16 Torbjorn Granlund + + * mpz/powm.c: Cap allocation by limiting k to 10 (512 precomputed + values). + +2002-11-16 Kevin Ryde + + * configure.in, gmp.texi: Remove powerpc64 ABI=32L, doesn't work and + is unlikely to ever do so. + * configure.in: Allow ABI=32 for powerpc64. + Reported by David Edelsohn. + +2002-11-14 Kevin Ryde + + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add addmul_2.c + addmul_3.c addmul_4.c addmul_5.c addmul_6.c addmul_7.c addmul_8.c. + + * gmp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT) [__GNUC__]: + Use __dllexport__ and __dllimport__ to keep out of application + namespace. + +2002-11-14 Gerardo Ballabio + + * gmpxx.h (__gmp_randinit_default_t, __gmp_randinit_lc_2exp_t, + __gmp_randinit_lc_2exp_size_t): Use extern "C" { typedef ... }, for + the benefit of g++ prior to 3.2. + +2002-11-12 Kevin Ryde + + * gmpxx.h (gmp_randclass constructors): Patch from Roberto Bagnara to + use extern "C" on C function pointer arguments. + +2002-11-09 Kevin Ryde + + * configure.in, Makefile.am, printf/Makefile.am, + printf/repl-vsnprintf.c: Handle vsnprintf replacement with C + conditionals. + + * acinclude.m4 (AC_LANG_FUNC_LINK_TRY(C)): Workaround troubles recent + HP cc +O3 causes for AC_CHECK_FUNCS. + + * gmp.texi (Notes for Particular Systems): Add Sparc app regs. + (Debugging): Note gcc -fstack options to detect overflow. + (Formatted Output Strings, Formatted Input Strings): Format strings + are not multibyte. + +2002-11-06 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Remove a bogus assert. + +2002-11-05 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Remove two dead mpn_divrem_2 calls. + +2002-11-04 Kevin Ryde + + * acinclude.m4 (GMP_C_INLINE): Don't define "inline" for C++. + + * demos/expr/expr-impl.h (stdarg.h): Test __DECC same as gmp.h. + + * mpbsd/mtox.c, printf/obprintf.c, printf/obvprintf.c, + scanf/vsscanf.c, demos/expr/expr.c, demos/expr/exprf.c, + demos/expr/exprfa.c, demos/expr/exprfr.c, demos/expr/exprq.c, + demos/expr/exprz.c, demos/expr/exprza.c: Add for strlen and + memcpy. + +2002-11-02 Kevin Ryde + + * longlong.h: Test __x86_64__ not __x86_64. Reported by Andreas + Jaeger. + + * mpz/import.c, mpz/export.c: Use char* subtract from NULL to get + pointer alignment, for the benefit of Cray vector systems. + + * cxx/ismpf.cc: Use . + * tests/cxx/t-locale.cc: No need to conditionalize . + + * scanf/doscan.c: Don't use isascii, rely on C99 ctype.h. + + * gmp.texi (Build Options): Describe CC_FOR_BUILD, cross reference + texinfo manual. + (ABI and ISA): Add powerpc620 and powerpc630 to powerpc64, add NetBSD + and OpenBSD sparc64. + (Notes for Package Builds): Cross reference libtool manual. + (Notes for Particular Systems): Add OpenBSD to non-MMX versions of gas. + (Known Build Problems): Add MacOS X C++ shared libraries. + +2002-10-31 Kevin Ryde + + * gmp-impl.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl, + tests/devel/try.c, tests/tests.h, tests/refmpn.c (mpn_addmul_5, + mpn_addmul_6, mpn_addmul_7, mpn_addmul_8): Add testing and measuring. + * configure.in (config.in): Add #undefs of HAVE_NATIVE_mpn_addmul_5, + HAVE_NATIVE_mpn_addmul_6, HAVE_NATIVE_mpn_addmul_7, + HAVE_NATIVE_mpn_addmul_8. + (gmp_mpn_functions_optional): Add addmul_5 addmul_6 addmul_7 addmul_8. + + * tests/devel/try.c (ASSERT_CARRY): Remove, now in gmp-impl.h + (try_one): Do dest setups after sources, for benefit of + dst0_from_src1. + +2002-11-01 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Avoid quadratic behaviour for + sub-division when numerator is more than twice the size of the + denominator. Simplify loop logic for the same case. Clean up a + few comments. + +2002-10-29 Torbjorn Granlund + + * configure.in (*-cray-unicos*): Pass -hnofastmd again. + +2002-10-25 Torbjorn Granlund + + * tests/tadd.c: Disable test of denorms. + +2002-10-23 Linus Nordberg + + * gmp.texi (Introduction to GMP): Update section about mailing + lists. + +2002-10-23 Kevin Ryde + + * gmp-h.in (__GMP_ATTRIBUTE_PURE): Suppress this when + __GMP_NO_ATTRIBUTE_CONST_PURE is defined. + * gmp-impl.h (ATTRIBUTE_CONST): Ditto. + * tune/common.c: Use __GMP_NO_ATTRIBUTE_CONST_PURE. + + * tune/speed.h, tune/many.pl: Remove ATTRIBUTEs from prototypes. + * tune/speed.h: Remove various "dummy" variables attempting to keep + "pure" calls live, no longer necessary. They weren't sufficient for + recent MacOS cc anyway. + +2002-10-21 Torbjorn Granlund + + * mpn/cray/ieee/addmul_1.c: Handle overlap as in mul_1.c. + * mpn/cray/ieee/submul_1.c: Likewise. + +2002-10-19 Kevin Ryde + + * configure.in (sparcv9 etc -*-*bsd*): Add support for NetBSD and + OpenBSD sparc64. Reported by Christian Weisgerber. + (AC_CHECK_HEADERS): Add sys/param.h for sys/sysctl.h on *BSD. + + * demos/calc/calc.y: Change ={ to {, needed for bison 1.50. + + * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: + Should be UDItype. + + * mpz/set_str.c, mpf/set_str.c, mpbsd/xtom.c, scanf/sscanffuns.c: Cast + chars through "unsigned char" to zero extend, required by C99 ctype.h. + +2002-10-18 Torbjorn Granlund + + * tests/mpz/t-root.c: Test also mpz_rootrem. + + * mpn/generic/rootrem.c: Avoid overflow problem when n is huge. + + * mpz/root.c: Avoid overflow problems in allocation computation; also + simplify it. Misc cleanups. + + * mpz/rootrem.c: New file. + * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them. + +2002-10-17 Torbjorn Granlund + + * gmp-impl.h (popc_limb): Combine variants. + +2002-10-14 Kevin Ryde + + * configure.in (AC_CHECK_HEADERS): Add sys/time.h for sys/resource.h + test, needed by SunOS, and next autoconf will insist headers actually + compile. + +2002-10-08 Kevin Ryde + + * tune/time.c (speed_time_init): Allow for Cray times() apparently + being a cycle counter. + + * dumbmp.c (mpz_get_str): Fix buf size allocation. + + * tests/trace.c, tests/tests.h (mp_limb_trace): New function. + + * tune/speed-ext.c (SPEED_EXTRA_PROTOS): Use __GMP_PROTO. + * tests/devel/try.c (malloc_region): Add a cast for SunOS cc. + + * configure.in (AC_CHECK_FUNCS): Add strerror. + (AC_CHECK_DECLS): Add sys_errlist, sys_nerr. + * tune/time.c, tests/devel/try.c: Use them. + +2002-10-05 Kevin Ryde + + * configure.in (AC_CHECK_HEADERS): Test float.h, not in SunOS cc. + * printf/repl-vsnprintf.c: Use this. + + * configure.in (*sparc*-*-*): Collect up various options for clarity, + use gcc -mcpu=supersparc and ultrasparc3, use cc -xchip, don't use + -xtarget=native, use cc configs with acc, merge SunOS bundled cc and + SunPRO cc configs. + + * gmp-impl.h (gmp_randfnptr_t): Use __GMP_PROTO. + (MPZ_REALLOC): Cast _mpz_realloc return value to mp_ptr, for the + benefit of SunOS cc which requires pointers of the same type on the + two legs of a ?:. + + * dumbmp.c (mpz_realloc): Add a cast to avoid a warning from SunOS cc. + + * acinclude.m4: Allow for i960 b.out default cc output. + + * gmp.texi (Random State Initialization): Add gmp_randinit_mt. + (Perfect Square Algorithm): Describe new mpn_mod_34lsub1 use. + (Factorial Algorithm): Describe Jason's new code. + (Binomial Coefficients Algorithm): Ideas about improvements + moved to doc/projects.html. + (Contributors): Add Jason Moxham and Pedro Gimeno. + +2002-10-03 Kevin Ryde + + * gen-psqr.c: New file. + * Makefile.am, mpn/Makefile.am: Use it to generate mpn/perfsqr.h. + * mpn/generic/perfsqr.c: Use generated data, put mod 256 data into + limbs to save space, use mpn_mod_34lsub1 when good. + * tests/mpn/t-perfsqr.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add it. + * tests/mpz/t-perfsqr.c (check_modulo): New test. + (check_sqrt): New function holding current tests. + + * configure.in (AC_INIT): Modernize to package name and version here + rather than AM_INIT_AUTOMAKE, add bug report email. + (AC_CONFIG_SRCDIR): New macro. + + * gmp-impl.h (ROUND_UP_MULTIPLE): Fix for non-power-of-2 moduli (not + normal in current uses), clarify the comments a bit. + +2002-09-30 Kevin Ryde + + * mpn/Makeasm.am (.s.lo): Add --tag=CC for the benefit of CCAS!=CC, + same as .S.lo and .asm.lo. + + * Makefile.am (gen-fac_ui, gen-fib, gen-bases): Quote source files in + test -f stuff to avoid Sun make rewriting them. + +2002-09-28 Kevin Ryde + + * tests/devel/try.c, tune/speed.c: Avoid strings longer than C99 + guarantees. + + * tests/refmpn.c, tests/tests.h (refmpn_zero_extend, refmpn_normalize, + refmpn_sqrtrem): New functions. + * tests/devel/try.c (TYPE_SQRTREM): Use refmpn_sqrtrem. + (compare): Correction to tr->dst_size subscripting. + + * dumbmp.c: Add several new functions, allow for initial n + + * dumbmp.c (mpz_pow_ui, mpz_addmul_ui, mpz_root): New functions. + * gen-fac_ui.c: New file. + * mpz/fac_ui.c: Rewrite. + +2002-09-26 Kevin Ryde + + * tests/cxx/localeconv.c: New file, split from t-locale.cc. + * tests/cxx/t-locale.cc: Use it. + * tests/cxx/Makefile.am (t_locale_SOURCES): Add it. + + * tests/cxx/Makefile.am: Updates for Gerardo's new test programs. + +2002-09-26 Gerardo Ballabio + + * gmpxx.h (__gmp_cmp_function): Bug fixes in double/mpq and + double/mpfr comparisons. + + * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, tests/cxx/t-constr.cc, + tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: Revise and add various + tests, including some for mpfr, some split from t-expr.cc. + * tests/cxx/t-locale.cc: Modernize include files. + * tests/cxx/t-ostream.cc: Modernize include files, use cout rather + than printf for diagnostics. + * tests/cxx/t-misc.cc, tests/cxx/t-rand.cc: New file, split from + t-allfuns.cc. + * tests/cxx/t-ops.cc: New file, some split from t-allfuns.cc. + * tests/cxx/t-prec.cc: New file. + * tests/cxx/t-allfuns.cc, tests/cxx/t-expr.cc: Remove files. + +2002-09-25 Torbjorn Granlund + + * configure.in (*-cray-unicos*): Remove -hscalar0, it causes too much + performance loss. Let's trust Cray to fix their compilers. + +2002-09-24 Torbjorn Granlund + + * mpn/powerpc32/add_n.asm: Rewrite. + * mpn/powerpc32/sub_n.asm: Rewrite. + +2002-09-24 Pedro Gimeno + + * randlc2x.c: Prepare for nails by changing type of _mp_c to mpz_t, + make _mp_seed fixed-size, disallow SIZ(a)==0 to optimize comparisons + for mpn_mul. + * gmp-impl.h (MPZ_FAKE_UI): New macro. + + * randmt.c: Some constants made long for K&R compliance; remove UL at + the end of other constants; use mp_size_t where appropriate; use + mpz_export to split the seed. + + * gmp-impl.h: Remove type cast in RNG_FNPTR and RNG_STATE, to allow + them to be used as lvalues. + * randclr.c, randlc2x.c, randmt.c, randsd.c: All callers changed. + + * mpz/urandomm.c: Replace mpn_cmp with MPN_CMP. + + * tests/rand/gen.c: Get rid of gmp_errno. + +2002-09-24 Kevin Ryde + + * gmp.texi (Custom Allocation): Keep allocate_function etc out of the + function index by using @deftypevr. + More index entries. + +2002-09-24 Gerardo Ballabio + + * gmpxx.h (mpfr_class constructors from strings): Precision was set + incorrectly, fixed. + +2002-09-23 Torbjorn Granlund + + * mpf/urandomb.c: Don't crash for overlarge nbits argument. + Let nbits==0 mean to fill number with random bits. + +2002-09-21 Torbjorn Granlund + + * mpn/alpha/mod_34lsub1.asm: Add r31 dummy operand to `br' instruction. + +2002-09-20 Gerardo Ballabio + + * gmpxx.h (__gmp_binary_equal, __gmp_binary_not_equal): Fix broken + mpq/double functions. + +2002-09-18 Torbjorn Granlund + + * randmt.c (randget_mt): Fix typo. + +2002-09-18 Kevin Ryde + + * gmp-impl.h (_gmp_rand): Avoid evaluating "state" more than once, for + the benefit places calling it with RANDS. + + * randmt.c (randseed_mt): Use mpz_init for mod and seed1, for safety. + + * tune/tuneup.c (sqr_karatsuba_threshold): Initialize to + TUNE_SQR_KARATSUBA_MAX so mpn_sqr_n works for randmt initialization. + + * gmp.texi (Integer Comparisons): Remove mention of non-existent + mpz_cmpabs_si, reported by Conrad Curry. + + * tune/speed.c, tune/speed.h, tune/common.c: Add gmp_randseed, + gmp_randseed_ui and mpz_urandomb. + +2002-09-18 Pedro Gimeno + + * tests/rand/gen.c: Add mt, remove lc and bbs. + + * Makefile.am (libgmp_la_SOURCES): Add randmt.c, remove randlc.c and + randraw.c. + + * randmt.c: New file. + * gmp-h.in (gmp_randinit_mt): Add prototype. + * randdef.c: Use gmp_randinit_mt. + + * gmp-impl.h (RNG_FNPTR, RNG_STATE): New macros. + (gmp_randfnptr_t): New structure. + (_gmp_rand): Now a macro not a function. + * gmp-h.in (__gmp_randata_lc): Remove, now internal to randlc2x.c. + (__gmp_randstate_struct): Revise comments on field usage. + * randsd.c, randclr.c: Use function pointer scheme. + * randsdui.c: Use gmp_randseed. + * randraw.c: Remove file. + * randlc2x.c: Collect up lc_2exp related code from randsd.c, randclr.c + and randraw.c, use function pointer scheme, integrate seed==0/a==0 + into main case and fix case where bits(a) < m2exp. + + * randlc.c: Remove file, never documented and never worked. + * gmp-h.in (gmp_randinit_lc): Remove prototype. + +2002-09-16 Torbjorn Granlund + + * mpn/alpha/mod_34lsub1.asm: New file. + +2002-09-16 Kevin Ryde + + * configure.in, acinclude.m4 (GMP_C_RESTRICT): Remove this, not + currently used, and #define restrict upsets Microsoft C headers on + win64. Reported by David Librik. + + * configure.in (x86): Add gcc 3.2 -march and -mcpu flags, remove some + unnecessary -march=i486 fallbacks. + + * gmp.texi (Notes for Particular Systems): Note cl /MD is required for + Microsoft C and MINGW to cooperate on I/O. Explained by David Librik. + (Language Bindings): Add linbox. + * gmp.texi (Language Bindings): + +2002-09-12 Kevin Ryde + + * mpz/aorsmul_i.c: Allow for w==x overlap with nails. Test + BITS_PER_ULONG > GMP_NUMB_BITS rather than GMP_NAIL_BITS != 0. + * tests/mpz/t-aorsmul.c: Test this. + + * tune/common.c: mpn_mod_34lsub1 only exists for GMP_NUMB_BITS%4==0 + * tune/speed.c: Add mpn_mod_34lsub1. + +2002-09-10 Pedro Gimeno + + * rand.c: Remove old disabled BBS code. + * mpf/urandomb.c: Use BITS_TO_LIMBS. + +2002-09-10 Kevin Ryde + + * gmp.texi (Multiplication Algorithms): FFT is now enabled by default. + +2002-09-10 Pedro Gimeno + + * mpz/urandomm.c: Use mpn level functions, avoid an infinite loop if + _gmp_rand forever returns all "1" bits. + * tests/rand/t-urndmm.c: New file + * tests/rand/Makefile.am (check_PROGRAMS): Add it. + + * gmp-impl.h (BITS_TO_LIMBS): New macro. + * mpz/urandomb.c: Use it, and use MPZ_REALLOC. + +2002-09-08 Kevin Ryde + + * acinclude.m4 (GMP_GCC_WA_MCPU): New macro. + * configure.in (alpha*-*-*): Use it to avoid -Wa,-mev67 if gas isn't + new enough to know ev67. Reported by David Bremner. + +2002-07-30 Gerardo Ballabio + + * gmpxx.h (__gmpz_value etc): Remove, use mpz_t etc instead. + (__gmp_expr): Reorganise specializations, use __gmp_expr not + mpz_class etc. + (mpfr evals): Remove mode parameter, was always + __gmp_default_rounding_mode anyway. + +2002-09-07 Kevin Ryde + + * gmp-h.in, mp-h.in: Use #ifdef for tests, for the benefit of + applications using gcc -Wundef. + + * longlong.h: Define COUNT_LEADING_ZEROS_NEED_CLZ_TAB for all alphas, + since mpn/alpha/cntlz.asm always goes into libgmp.so, even for ev67 + and ev68 which don't need it. Reported by David Bremner. + + * gmp.texi (Demonstration Programs): New section, expanding on what + was under "Build Options". + (Converting Floats): Don't need \ for _ in @var within @math. + Add and amend various index entries. + + * demos/qcn.c: Add -p prime limit option. + +2002-08-30 Kevin Ryde + + * mpz/pprime_p.c: Handle small negatives with isprime, in particular + must do so for n==-2. + * tests/mpz/t-pprime_p.c: New file. + * tests/mpz/Makefile.am: Add it. + +2002-08-26 Torbjorn Granlund + + * gmp.texi (Converting Floats): Fix typo in mpf_get_d_2exp docs, + reported by Paul Zimmermann. + +2002-08-26 Kevin Ryde + + * configure.in: Echo the ABI being tried for the compilers. + (powerpc*-*-*): Use powerpc64/aix.m4 for ABI=aix64 too. + (AC_CHECK_FUNCS): Add strtol, for tests/rand/gen.c. + +2002-08-24 Kevin Ryde + + * configure.in (HAVE_HOST_CPU_, HAVE_HOST_CPU_FAMILY_, HAVE_NATIVE_): + Setup templates for these using AH_VERBATIM rather than acconfig.h, + preferred by latest autoconf. Prune lists to just things used. + * acconfig.h: Remove file. + + * mpn/powerpc32/mode1o.asm: Forgot ASM_START. + + * tune/time.c (have_cgt_id): Renamed from HAVE_CGT_ID so avoid + confusion with autoconf outputs, and turn it into a "const" variable. + +2002-08-23 Torbjorn Granlund + + * configure.in: Choose powerpc32/aix.m4 or powerpc64/aix.m4 based on + ABI, not configuration triple. + + * mpz/pprime_p.c: Partially undo last change--handle small and + negative numbers in the same test. + +2002-08-22 Kevin Ryde + + * gmp-impl.h (MUL_FFT_THRESHOLD, SQR_FFT_THRESHOLD): Note + mpn/generic/mul_fft.c is not nails-capable, and don't bother setting + other FFT data for nails. + + * configfsf.guess: Update to 2002-08-19. + * configfsf.sub: Update to 2002-08-20. + + * config.guess (powerpc*-*-*): Use a { } construct to suppress SIGILL + message on AIX. + +2002-08-20 Kevin Ryde + + * gmp.texi (Build Options): Add ia64 under cpu types. + (ABI and ISA): Describe IRIX 6 ABI=o32. + (Notes for Particular Systems): Remove -march=pentiumpro, now ok. + (Known Build Problems): Binutils 2.12 is ok for libgmp.a. + (Emacs): New section. + (Language Bindings): Update MLton URL, reported by Stephen Weeks. + (Prime Testing Algorithm): New section. + Don't put a blank line after @item in @table since it can make a page + break between the heading and the entry. + Misc tweaks elsewhere, in particular more index entries. + + * mpz/millerrabin.c: Need x to be size+1 for change to urandomm. + + * gmp-impl.h: Comments on the use of __GMP_DECLSPEC. + + * tune/time.c (freq_measure_mftb_one): Use struct_timeval, for the + benefit of mingw. + + * tests/refmpn.c, tests/tests.h (ref_addc_limb, ref_subc_limb): + Renamed from add and sub, following gmp-impl.h ADDC_LIMB and SUBC_LIMB. + +2002-08-17 Kevin Ryde + + * mpn/powerpc32/mode1o.asm: New file. + * configure.in, acinclude.m4 (GMP_ASM_POWERPC_PIC_ALWAYS): New macro. + * mpn/asm-defs.m4: Use it to help setting up PIC. + + * configure.in (AC_PREREQ): Bump to 2.53. + + * mpn/powerpc32/powerpc-defs.m4 (ASSERT): New macro. + (PROLOGUE_cpu): New macro, giving ALIGN(4) not 8. + +2002-08-16 Torbjorn Granlund + + * mpn/m68k/lshift.asm: Fix typo in !scale_available_p code. + * mpn/m68k/rshift.asm: Likewise. + +2002-08-16 Kevin Ryde + + * configure.in (--enable-profiling=instrument): New option. + * gmp.texi (Profiling): Describe it. + * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_instrument, ret_internal): + Add support. + (call_mcount): Share PIC setups with call_instrument. + * mpn/x86/*.asm: Use ret_internal. + * mpn/asm-defs.m4 (m4_unquote): New macro. + * tests/mpn/t-instrument.c: New file. + * tests/mpn/Makefile.am: Add it. + + * mpn/alpha/umul.asm: Add ASM_END. + +2002-08-12 Kevin Ryde + + * mpz/pprime_p.c: Fake up a local mpz_t to take abs(n), rather than + using mpz_init etc. + + * mpz/millerrabin.c: Use mpz_urandomm for uniform selection of x, + reported by Jason Moxham. Exclude x==n-1, ie. -1 mod n. Use + gmp_randinit_default. + + * mpn/alpha/umul.asm: Use "r" registers, for the benefit of Unicos. + + * tests/devel/try.c: Add mpn_copyi and mpn_copyd. + +2002-08-09 Kevin Ryde + + * Makefile.am: Remove configure.lineno from DISTCLEANFILES and gmp.tmp + from MOSTLYCLEANFILES, automake does these itself now. + + * */Makefile.in, aclocal.m4, configure, install-sh, missing, + mkinstalldirs: Update to automake 1.6.3. + + * mpn/ia64/README: Some notes on assembler syntax. + + * mpn/ia64/add_n.asm, mpn/ia64/sub_n.asm: Add .body. + * mpn/ia64/add_n.asm, mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm, + mpn/ia64/sub_n.asm: Position .save ar.lc just before relevant + instruction. + * mpn/ia64/addmul_1.asm, mpn/ia64/mul_1.asm: Add .save ar.pfs and pr. + * mpn/ia64/copyd.asm, mpn/ia64/copyi.asm: Correction to .body position. + * mpn/ia64/lorrshift.asm: Add .prologue stuff. + + * configure.in (*-*-unicos*): Remove forcible --disable-shared, + libtool gets this right itself now. + +2002-08-07 Kevin Ryde + + * mpn/x86/pentium/mmx/hamdist.asm: New file, adapted from + mpn/x86/pentium/mmx/popham.asm. + * mpn/x86/pentium/mmx/popham.asm: Remove file, not faster than plain + mpn/x86/pentium/popcount.asm for the popcount. + + * mpn/alpha/umul.asm: Use PROLOGUE/EPILOGUE, rename it mpn_umul_ppmm. + * configure.in (alpha*-*-*): Add umul to extra_functions. + + * mpz/remove.c: Make src==0 return 0, not do DIVIDE_BY_ZERO. + +2002-08-05 Torbjorn Granlund + + * acconfig.h: Remove spurious undefs for mpn_divrem_newton and + mpn_divrem_classic. + +2002-08-05 Kevin Ryde + + * tests/refmpn.c, tests/tests.h, tests/misc/t-printf.c, + tests/mpf/t-trunc.c, tests/mpn/t-mp_bases.c, tests/mpn/t-scan.c, + tests/mpq/t-cmp_ui.c, tests/mpz/bit.c, tests/mpz/t-aorsmul.c, + tests/mpz/t-powm_ui.c tests/mpz/t-root.c, tests/mpz/t-scan.c: More + care with long and mp_size_t parameters, for the benefit of K&R. + + * demos/perl/GMP.pm, demos/perl/GMP.xs, demos/perl/GMP/Mpz.pm, + demos/perl/test.pl: Add mpz_import and mpz_export. + * demos/perl/GMP.pm: Remove "preliminary" warning. + + * mpn/lisp/gmpasm-mode.el: Set add-log-current-defun-header-regexp to + pick up m4 defines etc. + + * Makefile.am (libgmpxx_la_DEPENDENCIES): libgmp.la should be here, + not libgmpxx_la_LIBADD, for the benefit of "make -j2". + + * mpn/ia64/*.asm [hpux ABI=32]: Extend 32-bit operands to 64-bits, not + optimal and might not be sufficient, but seems to work. + +2002-08-03 Kevin Ryde + + * gmp.texi (Profiling): Use a table and expand for clarity. + (Integer Special Functions): New section for mpz_array_init, + _mpz_realloc, mpz_getlimbn and mpz_size, to discourage their use. + + * configure.in (*-*-msdosdjgpp*): Remove forcible --disable-shared, + libtool gets this right itself now. + +2002-07-30 Kevin Ryde + + * mpn/powerpc32/lshift.asm, mpn/powerpc32/rshift.asm: Lose final mr, + and make final stwu into an stw. + + * gmp.texi (Known Build Problems): An easier workaround for DESTDIR, + using LD_LIBRARY_PATH. + (C++ Interface MPFR): Remove mpfrxx.h. + + * mpfrxx.h: Remove file. + * Makefile.am: Remove mpfrxx.h. + * tests/cxx/Makefile.am: Add Gerardo's new test programs. + +2002-07-30 Gerardo Ballabio + + * gmpxx.h: Use mpz_addmul etc for ternary a+b*c etc. Reorganise some + macros for maintainability. Merge mpfrxx.h. + * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: Various updates. + * tests/cxx/t-assign.cc, tests/cxx/t-binary.cc, + tests/cxx/t-ternary.cc, tests/cxx/t-unary.cc: New files. + +2002-07-27 Kevin Ryde + + * longlong.h (count_trailing_zeros) [ia64 __GNUC__]: Don't use + __builtin_ffs for now, doesn't seem to work. + + * configure.in: Establish CONFIG_SHELL to avoid a problem with + AC_LIBTOOL_SYS_MAX_CMD_LEN on ia64-*-hpux*. + + * tune/speed.h (SPEED_ROUTINE_MPN_GCD_FINDA): Don't let calls to + mpn_gcd_finda go dead. + + * mpn/generic/tdiv_qr.c: Inline mpn_rshift and MPN_COPY of 2 limbs. + +2002-07-24 Kevin Ryde + + * demos/primes.c: Use __GMP_PROTO and don't use signed, for the + benefit of K&R. + + * demos/calc/calclex.l: Add for strcmp. + + * mpn/ia64/invert_limb.asm: Use .rodata which works on ia64-*-hpux* + and should be standard, rather than worrying about RODATA. + + * gmp.texi (Function Classes): Add cross references. + (Integer Import and Export): Fix return value grouping. + + * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add // for + ia64. Add notes on what the various styles are for. + + * mpn/ia64/default.m4 (ASM_START): Define to empty, not dnl, so as not + to kill text on the same line. + (EPILOGUE_cpu): Force a newline after "#", so as not to suppress macro + expansion in the rest of the EPILOGUE line. + +2002-07-21 Kevin Ryde + + * tune/speed.h: Fix some missing _PROTOs. + + * Makefile.am (DISTCLEANFILES): Add configure.lineno. + + * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Define + HAVE_DOUBLE_IEEE_BIG_ENDIAN and HAVE_DOUBLE_IEEE_LITTLE_ENDIAN in + config.m4 too. + * mpn/ia64/invert_limb.asm: Add big-endian data. + + * tests/mpz/t-jac.c (try_si_zi): Correction to "a" parameter type. + +2002-07-20 Kevin Ryde + + * mpz/bin_ui.c, mpz/jacobi.c, mpz/pprime_p.c, mpn/generic/divis.c: + More care with long and mp_size_t parameters, for the benefit of K&R. + + * gmp-impl.h (invert_limb): Use parens around macro arguments. + (mpn_invert_limb): Give prototype and define unconditionally. + + * gmp-impl.h (CACHED_ABOVE_THRESHOLD, CACHED_BELOW_THRESHOLD): New + macros. + * mpn/generic/sb_divrem_mn.c: Use them to help gcc let preinv code go + dead when not wanted. + +2002-07-17 Kevin Ryde + + * tests/refmpz.c (refmpz_hamdist): Ensure mp_size_t parameters are + that type, for the benefit of hpux ia64 bundled cc ABI=64. + + * configure.in (ia64*-*-hpux*): Need +DD64 in cc_64_cppflags to get + the right headers for ansi2knr. + + * acinclude.m4 (GMP_TRY_ASSEMBLE, GMP_ASM_UNDERSCORE): Use $CPPFLAGS + with $CCAS and when linking, as done by the makefiles. + (GMP_ASM_X86_MMX, GMP_ASM_X86_SSE2): Show $CPPFLAGS in diagnostics. + + * gmp-impl.h (ieee_double_extract): Setup using HAVE_DOUBLE_IEEE_*. + (GMP_UINT32): New define, 32 bit type for ieee_double_extract. + * configure.in: Add AC_CHECK_SIZEOF unsigned. + * configure.in, acinclude.m4 (GMP_IMPL_H_IEEE_FLOATS): Remove. + (GMP_C_DOUBLE_FORMAT): Instead warn about unknown float here. + + * configure.in, acinclude.m4 (GMP_C_SIZES): Remove. + * acinclude.m4 (GMP_INCLUDE_GMP_H_BITS_PER_MP_LIMB): Remove this + scheme, not required. + * configure.in (unsigned long, mp_limb_t): Run AC_CHECK_SIZEOF for + these unconditionally, check mp_limb_t against gmp-mparam.h values. + * gmp-impl.h (BYTES_PER_MP_LIMB, BITS_PER_MP_LIMB): Define based on + SIZEOF_MP_LIMB_T if not provided by gmp-mparam.h. + (BITS_PER_ULONG): Define here now. + + * gmp.texi (ABI and ISA): Add HP-UX IA-64 choices. + (Random State Initialization): Typo in m2exp described for + gmp_randinit_lc_2exp_size. + (Formatted Output Functions): Clarify gmp_obstack_printf a bit. + (Formatted Input Strings): Typo in %n summary. + + * mpz/inp_raw.c (NTOH_LIMB_FETCH): Use simple generic default, since + endianness detection is now cross-compile friendly. + * mpz/out_raw.c (HTON_LIMB_STORE): Ditto. + + * mpz/fib_ui.c: Nailify. + * mpz/random.c: Nailify. + + * mpfr/acinclude.m4 (MPFR_CONFIGS): Patch by Vincent for an apparent + float rounding gremlin on powerpc. + +2002-07-15 Kevin Ryde + + * Makefile.am (PRINTF_OBJECTS): Avoid ending in a backslash, hpux ia64 + make doesn't like that. + + * mpn/ia64/*.asm: Add .sptk to unconditional branches, add ";" after + .mib etc, for the benefit of hpux. + + * configure.in (ia64*-*-*): Use ABI=64 on non-HPUX systems, for + consistency. + + * gmp-impl.h (ieee_double_extract): Test __sparc__, used by gcc 3.1. + Reported by nix@esperi.demon.co.uk. + * mpfr/mpfr-math.h (_MPFR_NAN_BYTES etc): Ditto. + +2002-07-13 Kevin Ryde + + * mpn/powerpc32/rshift.asm: Rewrite, transformed from lshift.asm. + + * tune/tuneup.c (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): + Always zero for native mpn_divexact_1, mpn_modexact_1_odd. + + * gmp-h.in (__GMP_EXTERN_INLINE): Don't use this during configure, + ie. __GMP_WITHIN_CONFIGURE, to avoid needing dependent routines. + * acinclude.m4 (GMP_H_EXTERN_INLINE): Consequent changes. + + * gmp-impl.h, mpn/asm-defs.m4 (mpn_addmul_2, mpn_addmul_3, + mpn_addmul_4): Add prototypes and defines. + + * gmp.texi (Number Theoretic Functions): Clarify return value. + Reported by Peter Keller. + +2002-07-10 Kevin Ryde + + * configure.in, acinclude.m4 (GMP_PROG_LEX): Remove this in favour of + AM_PROG_LEX, now ok when lex is missing. + + * longlong.h (count_leading_zeros) [pentiummmx]: Don't use __clz_tab + variant under LONGLONG_STANDALONE. + (count_trailing_zeros) [ia64 __GNUC__]: Use __builtin_ffs. + + * gmp-impl.h (popc_limb): Add an ia64 asm version. + (DItype): Use HAVE_LONG_LONG to choose long long, avoiding _LONGLONG + which is in gcc but means something unrelated in MS Visual C 7.0. + Reported by David Librik. + + * mpz/divexact.c: Add an ASSERT that den divides num. + + * mpn/asm-defs.m4 (LDEF): New macro. + (INT32, INT64): Use it. + * mpn/pa32/*.asm: Use it. + * mpn/pa32/README: Update notes on labels. + + * tests/refmpn.c, tests/tests.h, tests/t-bswap.c (ref_bswap_limb): + Renamed from refmpn_bswap_limb. + * tests/t-bswap.c: Add tests_start/tests_end for randomization. + + * tests/refmpn.c, tests/tests.h (ref_popc_limb): New function. + * tests/t-popc.c: New file. + * tests/Makefile.am: Add it. + + * mpn/ia64/invert_limb.asm: Use RODATA since ".section .rodata" is not + accepted by ia64-*-hpux*. + + * acinclude.m4 (GMP_ASM_BYTE): New macro. + (GMP_ASM_ALIGN_LOG, GMP_ASM_W32): Use it. + (GMP_ASM_LABEL_SUFFIX): Use test compiles, not $host. + (GMP_ASM_GLOBL): Ditto, and add .global for ia64-*-hpux*. + (GMP_ASM_GLOBL_ATTR): Use GMP_ASM_GLOBL result, not $host. + (GMP_ASM_LSYM_PREFIX): Allow any "a-z" nm symbol code, add ".text" to + test program, required by ia64-*-hpux*. + (GMP_ASM_LABEL_SUFFIX): Make LABEL_SUFFIX just the value, not a "$1:", + the former being how it's currently being used in fact. + + * configure.in, acinclude.m4 (GMP_PROG_CC_WORKS_LONGLONG): New macro. + * configure.in (ia64-*-hpux*): Add 32 and 64 bit ABI modes. + +2002-07-06 Kevin Ryde + + * tests/cxx/t-allfuns.cc: New file. + * tests/cxx/Makefile.am: Add it. + + * mpz/clrbit.c, mpz/setbit.c: Only MPN_NORMALIZE if high limb changes + to zero. Use _mpz_realloc return value. + + * gmp.texi (Build Options, C++ Formatted Output, C++ Formatted Input): + Cross reference to Headers and Libraries for libgmpxx stuff. + (Low-level Functions): mpn_divexact_by3 result based on GMP_NUMB_BITS. + mpn_set_str takes "unsigned char *", reported by Mark Sofroniou. + (C++ Interface General): Describe linking with libgmpxx and libgmp. + +2002-07-01 Kevin Ryde + + * tune/tuneup.c, gmp-impl.h: Eliminate the array of thresholds in + one(), tune just one at a time and let the callers hand dependencies. + Eliminate the second_start_min hack, handle SQR_KARATSUBA_THRESHOLD + oddities in tune_sqr() instead. + + * mpn/pa64/umul.asm, mpn/pa64/udiv.asm, mpn/asm-defs.m4, acconfig.h, + longlong.h, tune/speed.c, tune/speed.h, tune/common.c, tune/many.pl, + tests/devel/try.c: Introduce mpn_umul_ppmm_r and mpn_udiv_qrnnd_r + rather than having variant parameter order for mpn_umul_ppmm and + mpn_udiv_qrnnd on pa64. + + * gmp-h.in (mpz_export): Remove a spurious parameter name. + * gmp-impl.h (mpn_rootrem): Use __MPN. + +2002-06-29 Kevin Ryde + + * longlong.h (udiv_qrnnd) [hppa32]: Remove mpn_udiv_qrnnd version, the + general mechanism for that suffices. + + * mpf/inp_str.c: Fix returned count of chars read, reported by Paul + Zimmermann. Also fix a memory leak for invalid input. + * tests/mpf/t-inp_str.c: New file. + * tests/mpf/Makefile.am (check_PROGRAMS): Add it. + + * tests/devel/try.c (mpn_mod_34lsub1): Only exists for + GMP_NUMB_BITS%4==0. + (SIZE2_FIRST): Respect option_firstsize2 for "fraction" case. + + * mpn/generic/diveby3.c: Further nailifications. + * gmp-impl.h (MODLIMB_INVERSE_3): Allow for GMP_NUMB_BITS odd. + (GMP_NUMB_CEIL_MAX_DIV3, GMP_NUMB_CEIL_2MAX_DIV3): New constants. + * tests/t-constants.c: Check them. + + * gmp-h.in (__GMP_CRAY_Pragma): New macro. + (__GMPN_COPY_REST): Use it. + * gmp-impl.h (CRAY_Pragma): Use it. + +2002-06-25 Kevin Ryde + + * mpz/import.c, mpz/export.c: Cast data pointer through "char *" in + alignment tests, for the benefit of Cray vector systems. + + * configure.in (x86-*-*): Remove -march=pentiumpro check, seems ok + with current code. + * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO, GMP_GCC_VERSION_GE): Remove + macros, no longer needed + + * acinclude.m4 (GMP_ASM_RODATA): Remove temporary files. + + * configure.in (GMP_ASM_GLOBL_ATTR): Reposition to avoid duplication + through AC_REQUIRE. + +2002-06-23 Kevin Ryde + + * tests/mpz/t-fib_ui.c (check_fib_table): Check table values, not just + that they're non-zero. + + * acinclude.m4 (GMP_GCC_ARM_UMODSI): Match bad "gcc --version" output + exactly, rather than parsing it with GMP_GCC_VERSION_GE. + (GMP_ASM_UNDERSCORE): Use GLOBL_ATTR. + + * mpn/pa32/udiv.asm, mpn/pa32/hppa1_1/udiv.asm, mpn/pa64/udiv.asm: + Renamed from udiv_qrnnd.asm, for consistency with other udiv's. + * mpn/pa64/umul.asm: Renamed from umul_ppmm.asm likewise. + * configure.in (hppa*-*-*): Update extra_functions. + (NAILS_SUPPORT): Remove umul_ppmm, udiv_qrnnd, udiv_fp, udiv_nfp from + nails-neutral list, no longer needed. + + * gmp-h.in (__DECC): Add notes on testing this for ANSI-ness. + (__GMP_EXTERN_INLINE): Add static __inline for DEC C. + (mpz_mod_ui): Move up to main section, it's still documented. + +2002-06-22 Kevin Ryde + + * mpz/jacobi.c, mpz/kronsz.c, mpz/kronuz.c, mpz/kronzs.c, + mpz/kronzu.c: Allow for odd GMP_NUMB_BITS, tweak a few variable setups. + * gmp-impl.h (JACOBI_STRIP_LOW_ZEROS): New macro. + + * mpn/generic/mod_34lsub1.c: Nailify. + * tests/devel/try.c (CNST_34LSUB1): Nailify. + * gmp-impl.h (ADDC_LIMB): New macro. + + * gmpxx.h (mpf_class::get_str): Make exponent mp_exp_t&, default + base=10 and ndigits=0. + (mpz_class::set_str, mpq_class::set_str, mpf_class::set_str): Add + versions accepting "const char *". + * mpfrxx.h (mpfr_class::get_str, mpfr_class::set_str): Ditto, and + uncommenting set_str and operator=. + * gmp.texi (C++ Interface Integers, C++ Interface Rationals) + (C++ Interface Floats): Update. + + * gmp-impl.h (modlimb_invert): Merge the <=64bits and general versions. + (const, signed): Move to near top of file, fixes --enable-alloca=debug + on K&R. + + * gen-fib.c: New file, derived from mainline in mpn/generic/fib2_ui.c. + * dumbmp.c (mpz_init_set_ui): New function. + * Makefile.am, mpn/Makefile.am: Generate fib_table.h, mpn/fib_table.c. + * gmp-impl.h: Use fib_table.h, add __GMP_DECLSPEC to __gmp_fib_table + (for the benefit of tests/mpz/t-fib_ui.c). + * mpn/generic/fib2_ui.c: Remove __gmp_fib_table and generating code. + + * Makefile.am: Add mp.h to BUILT_SOURCES, distclean all BUILT_SOURCES, + use += more. + + * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_BRANCHES): + Don't let "unknown" get into the cache variables. + (GMP_ASM_TEXT): See what assembles, don't hard-code hpux and aix. + (GMP_PROG_EXEEXT_FOR_BUILD): Add ,ff8 for RISC OS, per autoconf cvs. + (GMP_PROG_CPP_FOR_BUILD): Restructure per AC_PROG_CPP, print correct + result if CPP_FOR_BUILD overrides the cache variable. + (GMP_PROG_CC_FOR_BUILD_WORKS): New macro split from + GMP_PROG_CC_FOR_BUILD. Allow for "conftest" default compiler output. + * configure.in, acinclude.m4 (GMP_PROG_HOST_CC): Reinstate this, + separating HOST_CC establishment from GMP_PROG_CC_FOR_BUILD. + + * configure.in (mpn_objs_in_libgmp): Move mpn/mp_bases.lo ... + * Makefile.am (MPN_OBJECTS): ... to here, add $U, and arrange + MPN_OBJECTS to be common between libgmp and libmp. + +2002-06-20 Torbjorn Granlund + + * mpn/generic/mul_n.c (TOOM3_MUL_REC, TOOM3_SQR_REC): Don't check if + basecase is to be invoked when *_TOOM3_THRESHOLD is more than 3 times + the corresponding *_THRESHOLD. + +2002-06-20 Kevin Ryde + + * mpn/ia64/submul_1.c: Add missing TMP_DECL, TMP_MARK, TMP_FREE. + Reported by Paul Zimmermann. + + * configure.in, acinclude.m4 (AC_DEFINE): Make templates read "Define + to 1", for clarity as per autoconf. + * acinclude.m4 (GMP_OPTION_ALLOCA): Group WANT_TMP templates. + +2002-06-20 Gerardo Ballabio + + * gmpxx.h, mpfrxx.h: Remove mpz_classref, let mpq_class::get_num and + mpq_class::get_den return mpz_class& as per the documentation. + Reported by Roberto Bagnara. + +2002-06-18 Kevin Ryde + + * tests/rand/t-lc2exp.c: New file. + * tests/rand/Makefile.am: Add it, and use tests/libtests.la. + + * randraw.c (lc): Pad seed==0 case with zero limbs, return same + (m2exp+1)/2 bits as normal, right shift "c" result as normal. + + * configure.in: Don't bother with line numbers in some diagnostics. + (*-*-mingw*): Use -mno-cygwin if it works, suggested by delta trinity. + + * tests/mpz/Makefile.am, tests/mpq/Makefile.am, + tests/misc/Makefile.am, (CLEANFILES): Set to *.tmp for test program + temporaries, to get t-scanf.tmp and reduce future maintenance. + +2002-06-16 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_dc_get_str): Pass scratch memory area in + new `tmp' parameter. Trim allocation needs by reusing input parameter. + +2002-06-15 Torbjorn Granlund + + * mpn/sparc32/v9/udiv.asm: New file. + +2002-06-15 Kevin Ryde + + * acinclude.m4 (GMP_GCC_VERSION_GE): Correction to recognising mingw + gcc 3.1 version number. Reported by Jim Fougeron. + + * configure.in (AC_PROVIDE_AC_LIBTOOL_WIN32_DLL): New define, to make + AC_LIBTOOL_WIN32_DLL work with autoconf 2.53. + + * acinclude.m4 (GMP_C_SIZES): Establish BITS_PER_MP_LIMB as a value, + not an expression, for the benefit of the gen-bases invocation. + + * config.guess (CC_FOR_BUILD): Try c99, same as configfsf.guess. + +2002-06-15 Paul Zimmermann + + * mpfr/set_q.c: Allow for 1 bit numerator or denominator. + +2002-06-14 Kevin Ryde + + * configure.in (AC_C_BIGENDIAN): Use new style action parameters. + + * randlc2x.c: Allow for a<0, allow for c>=2^m2exp. + * randraw.c (lc): Allow for a==0. + + * mpn/sparc32/udiv.asm: Renamed from udiv_fp.asm. Don't know if float + is the best way for v7, but it's what configure has chosen since gmp 3. + * configure.in (*sparc*-*-* ABI=32): extra_functions="udiv" for all, + in particular sparc32/v8/udiv.asm is faster (on ultrasparc2) than + udiv_fp previously used for v9 chips. + + * gen-bases.c: New file, derived from mpn/mp_bases.c. + * dumbmp.c: New file, mostly by Torbjorn, some by me. + * configure.in, acinclude.m4 (GMP_PROG_CC_FOR_BUILD, + GMP_PROG_CPP_FOR_BUILD, GMP_PROG_EXEEXT_FOR_BUILD, + GMP_C_FOR_BUILD_ANSI, GMP_CHECK_LIBM_FOR_BUILD): New macros. + (GMP_PROG_HOST_CC): Remove, superceded by GMP_PROG_CC_FOR_BUILD. + * Makefile.am: Run gen-bases to create mp_bases.h and mpn/mp_bases.c. + * gmp-impl.h: Use mp_bases.h. + * mpn/mp_bases.c: Remove file. + * mpn/Makefile.am: mp_bases.c now in nodist_libmpn_la_SOURCES. + + * tests/mpz/t-cmp_d.c (check_one_2exp): Use volatile to force to + double, fixes gcc 3.1 with -O4. Reported by Michael Lee. + * configure.in (AC_C_VOLATILE): New macro. + + * tests/misc/t-scanf.c: (fromstring_gmp_fscanf): Add missing va_end. + Don't mix varargs and fixed args functions, not good on x86_64. + Reported by Marcus Meissner. + + * Makefile.am (EXTRA_DIST): Remove mpfr/README, now in mpfr/Makefile.in + + * configure, config.in, INSTALL.autoconf: Update to autoconf 2.53. + * */Makefile.in, install-sh, mdate-sh, missing, aclocal.m4, configure: + Update to automake 1.6.1. + * configfsf.guess, configfsf.sub: Update to 2002-05-29. + +2002-06-12 Kevin Ryde + + * acinclude.m4 (GMP_GCC_VERSION_GE): Recognise mingw gcc 3.1 version. + (GMP_PROG_CC_WORKS): Allow for a_out.exe, as per autoconf. + (GMP_GCC_NO_CPP_PRECOMP, GMP_ASM_UNDERSCORE): Ditto, plus a.exe. + +2002-06-09 Torbjorn Granlund + + * randraw.c (lc): Remove broken ASSERT_ALWAYS. + + * mpn/x86: Update gmp-mparam.h files with current measures *_THRESHOLD + values. + * mpn/x86/p6/mmx/gmp-mparam.h: New file. + +2002-06-09 Kevin Ryde + + * mpn/x86/*/gmp-mparam.h (USE_PREINV_DIVREM_1): Add tuned settings. + + * acconfig.h (HAVE_NATIVE_mpn_preinv_divrem_1): New template. + + * tests/refmpn.c, tests/tests.h (refmpn_chars_per_limb, + refmpn_big_base): New functions. + * tests/mpn/t-mp_bases.c: Use them, and don't test big_base_inverted + unless it's being used. + + * gmp.texi (Notes for Particular Systems): Using Microsoft C with DLLs. + (Known Build Problems): Notes on MacOS and GCC. + (Integer Logic and Bit Fiddling): Use ULONG_MAX for maximum ulong. + (Low-level Functions): mpn_get_str accepts base==256. + (Formatted Output Functions): Note output is not atomic. + (Internals): Note mp_size_t for limb counts. + + * mp-h.in, gmp-h.in (mp_ptr, mp_srcptr, mp_size_t, mp_exp_t): Remove + these types from mp.h, not needed. + + * mpfr/tests/tadd.c, mpfr/tests/tmul.c (check): Apply a hack to the + parameter order to make sparc gcc 2.95.2 happy. + + * doc/configuration: Notes on bootstrapping. + +2002-06-08 Kevin Ryde + + * mpfr/tests/tsqrt.c, mpfr/tests/tsqrt_ui.c: Suppress tests if sqrt is + not affected by mpfr_set_machine_rnd_mode. + + * mpfr/mul_2si.c: Workaround a mips gcc 2.95.3 bug under -O2 -mabi=n32. + + * configure.in (alphev56): Fix to use ev5 path. + +2002-06-06 Kevin Ryde + + * gmp-h.in: Use __gmp_const not const, in a number of places. + + * configure.in (sparc): Use ABI=32 instead of ABI=standard on v7 and + v8, for consistency with v9 choices. + (sparc64): Restrict GMP_ASM_SPARC_REGISTER to ABI=64. + (x86): Move MMX $path munging to before printout. + (CCAS): Move upward to support this. + + * gmp-impl.h (modlimb_invert): Merge macros for specific limb sizes, + add a version for arbitrary limb size, use GMP_NUMB_BITS. + (modlimb_invert, MODLIMB_INVERSE_3): Fix comments to say GMP_NUMB_BITS. + + * gmp-h.in (__GMP_LIKELY, __GMP_UNLIKELY): New macros. + (mpz_getlimbn, mpz_perfect_square_p, mpz_popcount): Use them, make the + fetch or mpn call likely, unconditionally calculate the alternative so + as to avoid an "else" clause. + * gmp-impl.h (LIKELY, UNLIKELY): Aliases. + + * configure.in, mpfr/tests/Makefile.am: Add $LIBM to $LIBS for + MPFR_CONFIGS so it detects fesetround, and let it go through to + $MPFR_LIBS. + * mpfr/rnd_mode.c: Use gmp-impl.h to get MPFR_HAVE_FESETROUND. + + * tests/mpz/t-sizeinbase.c: Disable fake bits test, such pointer + setups are bogus and have been seen failing on hppa. + + * tests/misc.c, tests/refmpz.c, tests.tests.h, tests/mpz/t-cong.c: + Rename mpz_flipbit to refmpz_combit and move from misc.c to refmpz.c. + +2002-06-05 Torbjorn Granlund + + * tests/mpz/t-powm_ui.c Print proper routine name in error message. + +2002-06-03 Kevin Ryde + + * tune/time.c, tune/freq.c, tune/speed.h: Add powerpc mftb support. + (FREQ_MEASURE_ONE): Move to speed.h, fix tv_sec factor. + (freq_measure): Use for mftb measuring too. + * tune/powerpc.asm, tune/powerpc64.asm: New files. + * configure.in, tune/Makefile.am: Add them. + + * gmp-impl.h (popc_limb): Add versions for Cray and fallback for + arbitrary limb size. + + * mpn/sparc32/sparc-defs.m4: New file. + * configure.in (sparc*-*-*): Use it. + * acinclude.m4 (GMP_ASM_SPARC_REGISTER): New macro. + * configure.in (sparc64): Use it. Also, use -Wc,-m64 for linking. + * mpn/sparc64/add_n.asm, mpn/sparc64/addmul_1.asm, + mpn/sparc64/copyd.asm, mpn/sparc64/copyi.asm, mpn/sparc64/lshift.asm, + mpn/sparc64/mul_1.asm, mpn/sparc64/rshift.asm, + mpn/sparc64/sqr_diagonal.asm, mpn/sparc64/sub_n.asm, + mpn/sparc64/submul_1.asm: Use REGISTER for .register. + +2002-06-01 Kevin Ryde + + * mpz/powm_ui.c: Fix for result range in certain circumstances. + + * mpn/x86/k6/diveby3.asm: Speedup to 10 c/l, same as divexact_1. + Anomaly pointed out by Alexander Kruppa. + +2002-05-31 Torbjorn Granlund + + * mpz/export.c: Cast pointer via `unsigned long' when checking + alignment to avoid compiler warnings. + +2002-05-29 Kevin Ryde + + * gmp-impl.h (BSWAP_LIMB): Versions for m68k, powerpc, and arbitrary + limb size. + * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_m68k): New define. + +2002-05-27 Torbjorn Granlund + + * mpn/generic/mul_basecase.c: Improve MAX_LEFT handling, returning + when possible. Add code for mpn_addmul_5 and mpn_addmul_6. + +2002-05-25 Kevin Ryde + + * tune/tuneup.c: Misc nailifications, and disable preinv thresholds + with nails. + * tune/speed.h: Use GMP_NUMB_HIGHBIT with mpn_sb_divrem_mn and + mpn_divrem_2. + * mpz/powm.c (redc): Nailify q. + + * tests/mpn/t-scan.c: Reduce the amount of testing, to go faster. + +2002-05-23 Torbjorn Granlund + + * Version 4.1 released. + + * mpn/alpha/ev6/nails/gmp-mparam.h: New file. + + * tests/devel/add_n.c (refmpn_add_n): Nailify. + * tests/devel/sub_n.c (refmpn_sub_n): Nailify. + * tests/devel/addmul_1.c (refmpn_addmul_1): Nailify. + * tests/devel/submul_1.c (refmpn_submul_1): Nailify. + + * mpn/alpha/ev6/nails/add_n.asm: New file. + * mpn/alpha/ev6/nails/sub_n.asm: New file. + * mpn/alpha/ev6/nails/mul_1.asm: New file. + * mpn/alpha/ev6/nails/submul_1.asm: New file. + +2002-05-22 Torbjorn Granlund + + * mpn/alpha/ev6/nails/addmul_1.asm: New file. + + * mpz/inp_str.c (mpz_inp_str_nowhite): Nailify. + + * mpn/generic/mul_basecase.c: Update pointers before conditional + MAX_LEFT break statements. + +2002-05-21 Torbjorn Granlund + + * tests/mpz/t-gcd.c: Test mpz_gcd_ui. + + * mpz/lcm_ui.c: Nailify. + + * mpz/gcd_ui.c: Nailify. Make it work as documented, allowing + NULL to be passed for result parameter. Fix gcd(0,0) case. + + * mpz/set_str.c: Nailify. + + * randlc2x.c (gmp_randinit_lc_2exp): Nailify. + + From Jakub Jelinek: + * longlong.h (add_ssaaaa,sub_ddmmss) [64-bit sparc]: + Make it actually work. + +2002-05-18 Torbjorn Granlund + + * mpf/ui_div.c: Shut up compiler warning. + + * mpn/generic/mul_basecase.c: Use mpn_addmul_2, mpn_addmul_3, and + mpn_addmul_4, as available. + + * mpn/alpha/ev6/nails/addmul_2.asm: Adjust NAILS_SUPPORT decls. + * mpn/alpha/ev6/nails/addmul_3.asm: Likewise + * mpn/alpha/ev6/nails/addmul_4.asm: Likewise. + + * configure.in (*-cray-unicos*): Back again to -hscalar0. + (gmp_mpn_functions_optional): Add mul_3, mul_4, addmul_2, addmul_3, + and addmul_4. + * acconfig.h: Add #undefs for new optional mpn functions. + +2002-05-18 Kevin Ryde + + * gmp.texi (Integer Import and Export): Mention Cray unfilled words. + + * mpz/set_d.c, mpq/set_d.c: Use LIMBS_PER_DOUBLE for the output of + __gmp_extract_double. Reported by Henrik Johansson. + +2002-05-17 Torbjorn Granlund + + * mpn/alpha/ev6/nails/addmul_2.asm: New file. + * mpn/alpha/ev6/nails/addmul_3.asm: New file. + * mpn/alpha/ev6/nails/addmul_4.asm: New file. + + * mpn/generic/dump.c: Rewrite and nailify. + +2002-05-16 Kevin Ryde + + * mpfr/Makefile.am (EXTRA_DIST): Add BUGS file. + +2002-05-15 Torbjorn Granlund + + * configure.in (*-cray-unicos*): Remove -hscalar0, add -hnofastmd + as workaround for compiler bug. + (mips64*-*-*): Pass just -O1 to cc, to work around compiler bug. + +2002-05-14 Torbjorn Granlund + + * configure.in (*-cray-unicos*): Pass -hscalar0 to work around + compiler bug for mpz/import.c. + +2002-05-11 Torbjorn Granlund + + * mpz/import.c: Cast pointer via `unsigned long' when checking + alignment to avoid compiler warnings. + + * mpn/generic/rootrem.c: Adjust allocation of qp temporary area. + +2002-05-09 Kevin Ryde + + * mpz/import.c: Corrections to size store, special case tests, and + general case ACCUMULATE. + * tests/mpz/t-import.c, tests/mpz/t-export.c: More test data. + +2002-05-09 Torbjorn Granlund + + * mpn/generic/rootrem.c: Use temp space for root, copy value in place + before returning. + * mpz/root.c: Don't allocate extra limb for root value. + * mpz/perfpow.c: Undo last change. + +2002-05-08 Torbjorn Granlund + + * gmp-impl.h (powerpc BSWAP_LIMB_FETCH): Rename local variable to make + it not clash with caller. + + * mpn/generic/rootrem.c: New file. + * configure.in (gmp_mpn_functions): Add rootrem and pow_1. + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add rootrem.c and + pow_1.c + * gmp-impl.h (mpn_rootrem): Add declaration. + * mpz/perfpow.c: Amend allocations for mpn_rootrem requirements. + * mpz/root.c: Rewrite to use mpn_rootrem. + +2002-05-08 Kevin Ryde + + * gmp-impl.h (MUL_KARATSUBA_THRESHOLD etc): Remove forced nail values. + + * mpf/fits_u.h, mpf/fits_s.h, tests/mpf/t-fits.c: Ignore fraction + part, making the code match the documentation. + + * gmpxx.h (struct __gmp_binary_minus): Use mpz_ui_sub. + +2002-05-07 Kevin Ryde + + * mpn/powerpc32/README: New file. + + * mpz/root.c: Use unsigned long with mpz_sub_ui not mp_limb_t. + + * tune/README: Misc updates including sparc32/v9 smoothness, low res + timebase, and mpn_add_n operand overlaps. + * tune/many.pl: Add udiv.asm support. + + * gmp.texi (Build Options): A couple of --build better as --host. + (Known Build Problems, Notes for Package Builds): Add DESTDIR problem. + (Compatibility with older versions): Compatible with 4.x versions. + (Converting Integers): Remove mpz_get_ui + mpz_tdiv_q_2exp decompose. + (Integer Import and Export): New section. + (Miscellaneous Integer Functions): Clarify mpz_sizeinbase returns 1 + for operand of 0. + (Language Bindings): Add GNU Pascal. + (Low-level Functions): Add GMP_NUMB_MAX. + + * tests/mpz/t-import.c, tests/mpz/t-export.c, tests/mpz/t-get_d.c: + New tests. + * tests/mpz/Makefile.am: Add them. + + * mpz/import.c, mpz/export.c: New files. + * Makefile.am, mpz/Makefile.am, gmp-h.in: Add them. + + * gmp-h.in, gmp-impl.h (GMP_NUMB_MAX): Move to gmp.h. + * gmp-impl.h (CNST_LIMB): Add cast to mp_limb_t to ensure unsigned. + (CRAY_Pragma, MPN_REVERSE, MPN_BSWAP, MPN_BSWAP_REVERSE, + ASSERT_ALWAYS_LIMB, ASSERT_ALWAYS_MPN): New macros. + (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS_MPN. + +2002-05-07 Torbjorn Granlund + + * mpz/aors_ui.h: Nailify. + + * tests/mpz/t-addsub.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-addsub. + + * mpz/ui_sub.c: New file. + * mpz/Makefile.am (libmpz_la_SOURCES): Add ui_sub.c. + * Makefile.am (MPZ_OBJECTS): Ditto. + * gmp-h.in (mpz_ui_sub): Add declaration. + + * gmp-impl.h (MPZ_REALLOC): Rewrite to allow the use of _mpz_realloc + return value. + + * gmp-h.in (mpn_pow_1): Add declaration. + + * mpn/generic/pow_1.c: Handle exp <= 1. Reverse rp/tp parity scheme + for bn == 1 arm. + + * Rename MP_LIMB_T_HIGHBIT => GMP_LIMB_HIGHBIT. + +2002-05-06 Torbjorn Granlund + + * demos/pexpr.c (main): Don't call mpz_sizeinbase with negative base. + + * randraw.c (lc): Remove an unused variable. + + * mpn/generic/get_str.c: Clarify an algorithm description. + + * tests/mpf/t-trunc.c: Nailify. + * tests/mpf/t-set_si.c: Disable for nails. + + * mpf/cmp_si.c: Nailify. + * mpf/cmp_ui.c: Nailify. + * mpf/div.c: Nailify. + * mpf/div_2exp.c: Nailify. + * mpf/div_ui.c: Nailify. + * mpf/eq.c: Nailify. + * mpf/get_d.c: Nailify. + * mpf/get_d_2exp.c: Nailify. + * mpf/get_si.c: Nailify. + * mpf/get_str.c: Nailify. + * mpf/get_ui.c: Nailify. + * mpf/mul_2exp.c: Nailify. + * mpf/random2.c: Nailify. + * mpf/set_q.c: Nailify. + * mpf/set_si.c: Nailify. + * mpf/set_str.c: Nailify. + * mpf/set_ui.c: Nailify. + * mpf/sub.c: Nailify. + * mpf/ui_div.c: Nailify. + * mpf/ui_sub.c: Nailify. + * mpf/urandomb.c: Nailify. + + * gmp-impl.h (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Nailify. + + * mpz/get_si.c: Misc variable name changes. + + * mpf/fits_u.h: Rewrite - nailify. + * mpf/fits_s.h: Likewise. + + * mpz/mod.c: Disambiguate if-statement with extra {}. + + * mpf/int_p.c: Fix type of size variables. + * mpf/get_ui: Likewise. + * mpf/get_si: Likewise. + * mpq/equal.c: Likewise. + * mpq/get_d.c: Likewise. + * mpz/cmp_d.c: Likewise. + * mpz/cmpabs_d.c: Likewise. + * mpz/divis_2exp.c: Likewise. + * mpz/kronuz.c: Likewise. + * mpz/kronzu.c: Likewise. + * mpz/kronzs.c: Likewise. + * mpz/kronsz.c: Likewise. + * mpz/scan0.c: Likewise. + * mpz/scan1.c: Likewise. + * mpz/tstbit.c: Likewise. + * mpz/cong_2exp.c: Likewise. + * mpz/divis.c: Likewise. + +2002-05-04 Torbjorn Granlund + + * mpn/generic/gcd.c: Additional nailify changes. + +2002-05-04 Kevin Ryde + + * gmp-h.in (__GNU_MP_VERSION): Set to 4.1. + * Makefile.am (-version-info): Bump for new release. + +2002-04-30 Torbjorn Granlund + + * mpn/generic/divrem_1.c: Additional nailify changes. + * mpn/generic/mod_1.c: Likewise. + + * tests/mpq/t-get_d.c: Print floats with all 16 digits. + + * mpq/get_d.c: Nailify. + + * tests/mpq/t-set_f.c: Disable for nails. + + * mpz/get_d.c: Nailify. + + * gmp-impl.h (LIMBS_PER_DOUBLE, MP_BASE_AS_DOUBLE): Nailify. + + * gmp-h.in (__GMPZ_FITS_UTYPE_P): Cast maxval to before shifting it. + + * extract-dbl.c: Nailify. + +2002-04-29 Torbjorn Granlund + + * mpq/md_2exp.c (mord_2exp): Nailify. + + * mpq/cmp_ui.c: Nailify. + + * mpq/cmp.c (mpq_cmp): Nailify. + + * mpn/generic/gcd.c: Nailify. GNUify code layout. + + * mpn/generic/gcdext.c: Nailify. Misc changes. + + * tests/mpz/t-sqrtrem.c: Let argv[1] mean # of repetitions. + * tests/mpz/t-gcd.c: Likewise. + + * mpz/gcd.c: Nailify. + + * mpn/generic/random.c: Nailify. + + * gmp-impl.h (modlimb_invert): Nailify. + +2002-04-27 Torbjorn Granlund + + * mpn/generic/gcdext.c (div2): Remove qh parameter. + (mpn_gcdext): Streamline double-limb code. + Move GCDEXT_THRESHOLD check to after initial division. + +2002-04-27 Kevin Ryde + + * gmp-impl.h (JACOBI_MOD_OR_MODEXACT_1_ODD): Allow for odd + GMP_NUMB_BITS. + + * tune/time.c (sgi_works_p): Allow for 64-bit counter, and fix + SGI_CYCLECNTR_SIZE handling. + + * demos/expr/exprfr.c: Add nan and inf constants. + * demos/expr/t-expr.c: Exercise them. + +2002-04-26 Torbjorn Granlund + + * mpz/cmp_ui.c: Fix overflow conditions for nails. + + * gmp-h.in (mpz_get_ui): Fix typo from last change. + + * mpz/n_pow_ui.c: Adjust allocation for nails. + (GMP_NUMB_HALFMAX): Renamed from MP_LIMB_T_HALFMAX. + Fix umul_ppmm invocation for for nails. + +2002-04-24 Torbjorn Granlund + + * mpn/generic/gcdext.c: Simplify by using mpn_tdiv_qr instead of + mpn_divmod. + +2002-04-24 Kevin Ryde + + * configure.in (*-*-cygwin*): Give a sensible default command line + limit, to avoid blowups reported by Jim Fougeron on windows 9x. + (--enable-nails): Make the default 2, since mp_bases has data for that. + + * mpfr/mpfr-math.h (__mpfr_nan): Use a "double" for the bytes, to + avoid a mis-conversion on alpha gcc 3.0.2. + (_MPFR_INFP_BYTES, _MPFR_INFM_BYTES): Should be a zero mantissa. + +2002-04-23 Torbjorn Granlund + + * mpz/dive_ui.c: Fix typo. + + * mpz/fits_s.h: Rewrite. + + * mpz/jacobi.c: Nailify. + * mpz/kronuz.c: Additional nailify changes. + * mpz/kronsz.c: Likewise. + +2002-04-23 Kevin Ryde + + * demos/expr/Makefile.am (LDADD): Add $(LIBM) for the benefit of mpfr. + + * mpz/divis_ui.c, mpz/cong_ui.c: Nailify. + * mpn/generic/bdivmod.c, mpz/divexact.c, mpz/dive_ui.c: Nailify. + * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem.c, + mpn/generic/divrem_2.c: Nailify ASSERTs. + * mpn/x86/k6/mmx/logops_n.asm, mpn/x86/k6/mmx/com_n.asm: Nailify. + * mpz/inp_raw.c, mpz/out_raw.c: Nailify. + * mpz/kronzu.c, mpz/kronuz.c, mpz/kronzs.c, mpz/kronsz.c: Nailify. + * mpn/generic/divis.c, mpz/cong.c, mpz/cong_2exp.c: Nailify. + * gmp-impl.h (NEG_MOD): Nailify. + + * gmp-impl.h, mpn/mp_bases.c: Add back GMP_NUMB_BITS==30 bases data. + + * mpfr/get_d.c: Patch from Paul to avoid problem with constant folding + in gcc on OSF. + + * mpn/lisp/gmpasm-mode.el: Remove mention of defunct LF macro. + +2002-04-22 Torbjorn Granlund + + * demos/pexpr.c: Handle "binomial" operator. + + * mpz/cmp_ui.c: Move assignments of `up' out of conditionals. + + * mpn/generic/gcdext.c: Fix fencepost error in STAT code. + + * gmp-impl.h (mpn_com_n): Nailify. + + * tests/mpz/t-cdiv_ui.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add t-cdiv_ui. + * mpz/cdiv_qr_ui.c: Nailify. + * mpz/cdiv_q_ui.c: Nailify. + * mpz/cdiv_r_ui.c: Nailify. + * mpz/cdiv_ui.c: Nailify. + + * tests/misc/t-printf.c (CHECK_N): Add cast to allow `char' to be an + unsigned type. + * tests/misc/t-scanf.c: Likewise. + + * mpz/mul_i.h: Rework nails code to handle parameter overlap. + + * tests/mpz/t-set_f.c: Disable for nails. + +2002-04-21 Torbjorn Granlund + + * mpz/set_si.c: Add cast to support LONG_LONG_LIMB. + * mpz/iset_si.c: Likewise. + + * mpz/bin_ui.c: Nailify. + * mpz/bin_uiui.c: Nailify. + + * mpz/cmpabs_ui.c: Nailify. + + * tests/mpz/t-aorsmul.c: Nailify. + * mpz/aorsmul_i.c (mpz_addmul_ui, mpz_submul_ui): Nailify better. + +2002-04-20 Torbjorn Granlund + + * tests/mpz/t-fdiv_ui.c: Check mpz_fdiv_ui. + * tests/mpz/t-tdiv_ui.c: Check mpz_tdiv_ui. + + * mpz/tdiv_ui.c: Rewrite nails code. + * mpz/fdiv_ui.c: Nailify. + + * tests/mpz/t-tdiv_ui.c: Check returned remainders. + * tests/mpz/t-fdiv_ui.c: Merge in recent t-tdiv_ui changes. + + * mpz/tdiv_q_ui.c: Remove spurious TMP_* calls. + + * mpz/fdiv_qr_ui.c: Nailify. + * mpz/fdiv_q_ui.c: Nailify. + * mpz/fdiv_r_ui.c: Nailify. + + * mpz/get_si.c: Misc nailify changes to shut up compiler warnings. + + * mpz/ui_pow_ui.c: Fix typo in last change. + +2002-04-20 Kevin Ryde + + * tests/misc/t-printf.c, tests/misc/t-scanf.c: Check all %n types. + + * mpn/x86/k7/mmx/divrem_1.asm, mpn/x86/p6/mmx/divrem_1.asm + (mpn_preinv_divrem_1): New entrypoint. + (mpn_divrem_1): Avoid a branch when testing high + + * tests/mpz/t-scan.c: Nailify. + + * mpz/tdiv_qr_ui.c: Nailify. + * mpz/tdiv_q_ui.c: Nailify. + * mpz/tdiv_r_ui.c: Nailify. + * mpz/tdiv_ui.c: Nailify. + + * mpz/cmp_ui.c: Nailify. + + * mpz/ui_pow_ui.c: Misc nailify changes to shut up compiler warnings. + + * mpz/scan0.c: Nailify. + * mpz/scan1.c: Nailify. + + * tests/mpz/t-sizeinbase.c (mpz_fake_bits): Nailify. + +2002-04-18 Torbjorn Granlund + + * mpz/aorsmul_i.c: Nailify. + + * mpz/cmp_si.c: Nailify (botched). + + * mpz/ui_pow_ui.c: Nailify. + + * gmp-h.in (__GMPZ_FITS_UTYPE_P): Nailify. + + * mpz/fits_s.h: Nailify. + + * tests/mpz/bit.c (check_tstbit): Nailify. + + From Paul Zimmermann: + * mpn/generic/sqrtrem.c: Nailify. + + * mpz/n_pow_ui.c: Nailify. + + * mpz/cfdiv_r_2exp.c: Nailify. + + * randraw.c (lc): Undo: Let mpn_rshift put result in place to avoid + extra MPN_COPY. + +2002-04-17 Torbjorn Granlund + + * mpz/clrbit.c: Add two GMP_NUMB_MASK masks after addition. + + * mpn/generic/random2.c (LOGBITS_PER_BLOCK): Decrease to 4. + + * gmp-impl.h (nail DIV_DC_THRESHOLD): Decrease to 50 to allow fast + division. + + * mpn/generic/random2.c: Nailify. + + * mpz/fac_ui.c: Nailify. + + * mpz/mul_i.h: #if ... #endif code block to shut up gcc warnings. + + * mpn/generic/sqrtrem.c: Adopt to GNU coding standards. + (mpn_dc_sqrtrem): New name for mpn_dq_sqrtrem. + Partial nailification. + + * configure.in: As a temporary hack, clear extra_functions for nails + builds. + + * gmp-h.in (mpz_get_ui): #if ... #endif else code block to shut up gcc + warnings. + +2002-04-17 Kevin Ryde + + * texinfo.tex: Update to 2002-03-26.08 per texinfo 4.2. + * gmp.texi: Must have @top in @ifnottex (or @contents doesn't come out + in one run). + + * mpn/generic/scan0.c, mpn/generic/scan1.c: Nailify. + + * tests/mpn/t-scan.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add it. + + * tests/refmpn.c, tests/tests.h (refmpn_tstbit): Use unsigned long for + bit index. + (refmpn_setbit, refmpn_clrbit, refmpn_scan0, refmpn_scan1): New + functions. + + * mpfr/cmp_ui.c (mpfr_cmp_si_2exp): Fix b==0 i!=0 case. + +2002-04-17 Gerardo Ballabio + + * gmpxx.h, mpfrxx.h: Remove mpfr_class bool combinations, remove + mpfr_class::get_str2, use mp_rnd_t for rounding modes, use + 8*sizeof(double) for mpfr_t's holding doubles. + +2002-04-17 Torbjorn Granlund + + * mpz/powm.c: Nailify. + * mpz/powm_ui.c: Nailify. + +2002-04-16 Torbjorn Granlund + + * mpz/hamdist.c: Nailify. + * tests/misc.c (urandom): Nailify. + + * mpz/get_si.c: Nailify. + * gmp-h.in (mpz_get_ui): Nailify. Streamline (and probably upset + memory checkers). + + * gmp-impl.h (mp_bases[10] values): Add versions for GMP_NUMB_BITS + being 28, 60, and 63. + * mpn/mp_bases.c: Add tables for GMP_NUMB_BITS being 28, 60, and 63. + + * mpz/iset_si.c: Nailify. + * mpz/iset_ui.c: Nailify + + * tests/mpz/convert.c (main): Print test number in error message. + + * mpn/generic/get_str.c (mpn_sb_get_str): Shift up `frac' into nails + field after bignum division. + +2002-04-16 Kevin Ryde + + * gmp-h.in, gmp-impl.h (GMP_NAIL_MASK): Move to gmp.h. + + * gmp.texi: Use @documentdescription and @copying, per texinfo 4.2. + (Low-level Functions): Clarify mpn_gcd overlap requirements, rewrite + mpn_set_str description, add nails section. + (C++ Interface General): Remove bool from types that mix with classes. + (Language Bindings): Add STklos, GNU Smalltalk, Regina. + (Binary to Radix, Radix to Binary): Describe new code. + (Assembler Cache Handling): More notes, mostly by Torbjorn. + + * macos/configure (%vars): Remove __GMP from substitutions, per change + to main configure. + + * mpn/generic/dive_1.c: Nailify. + * mpn/generic/mode1o.c: Nailify, remove bogus ASSERT in commented-out + alternate implementation. + * gmp-impl.h (SUBC_LIMB): New macro. + + * tests/devel/try.c (validate_divexact_1): Correction to compare. + (udiv_qrnnd): New testing. + (SHIFT_LIMIT): Nailify. + (-b): New option, remove spurious "H" from getopt string. + + * mpz/clrbit.c: Nailify. + * tests/mpz/t-hamdist.c: Nailify. + * gmp-impl.h (MPN_FIB2_SIZE): Nailify. + (PP): Nailify conditionals. + * tests/mpz/t-fib_ui.c (MPZ_FIB_SIZE_FLOAT): Nailify. + + * configure.in, acinclude.m4: Establish GMP_NAIL_BITS and + GMP_LIMB_BITS for gmp-h.in configure tests. + + * mpfr/*, configure.in: Update to final mpfr 2.0.1. + * mpfr/acinclude.m4 (MPFR_CONFIGS): Use $host, not uname stuff. + * mpfr/tests/tout_str.c: Patch from Paul for denorm fprintf tests. + +2002-04-15 Torbjorn Granlund + + * mpn/generic/divrem_1.c (EXTRACT): Remove. + + * tests/mpz/t-tdiv_ui.c (dump_abort): Accept argument for error string. + + * mpz/rrandomb.c: Nailify. Needs further work. + + * mpn/generic/mod_1.c: Nailify. + + * gmp-impl.h: Set various *_THRESHOLD values to be used for nails to + avoid not yet qualified algorithms. + (MPZ_CHECK_FORMAT): Check that nail part is zero. + + * tests/mpz/t-mul.c (main): Test squaring even for huge operands. + (base_mul): Nailify. + (dump_abort): Accept argument for error string. Print product + difference. + + * mpn/generic/set_str.c: Nailify. + + * gmp-h.in (__GMPN_ADD, __GMPN_SUB): Nailify. + +2002-04-14 Torbjorn Granlund + + * randraw.c (lc): Return non-nonsense return value for seed=0 case. + Check for m2exp being non-zero early; remove all other tests of m2exp. + Remove redundant MPN_ZERO call. + Let mpn_rshift put result in place to avoid extra MPN_COPY. + Remove confusing comment before function `lc' describing BBS algorithm. + Misc simplification and cleanups. + Nailify. Needs further work. + + * mpz/set_si.c: Nailify. + * mpz/set_ui.c: Nailify. + * mpz/mul_i.h: Nailify. + + * tests/mpz/t-mul_i.c: Actually test _ui routines. Add some more test + values. + + * mpn/generic/mul_n.c: Finish nailifying toom3 code. + +2002-04-13 Kevin Ryde + + * mpfr/*: Update to another new mpfr 2.0.1. + * configure.in, Makefile.am, mpfr/Makefile.am, mpfr/tests/Makefile.am: + Use MPFR_CONFIGS macro, establish separate MPFR_CFLAGS for mpfr build. + + * mpfr/tests/Makefile.am: Correction to convenience rule for libmpfr.a. + +2002-04-11 Kevin Ryde + + * mpfr/set_q.c: gmp-impl.h before mpfr.h to avoid _PROTO redefine. + + * mpfr/*, configure.in: Update to new mpfr 2.0.1. + + * tests/refmpn.c (refmpn_udiv_qrnnd, refmpn_divmod_1c_workaround): + Fixes for nails. + + * tests/t-constants.c (MODLIMB_INVERSE_3): Nailify tests. + (MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): Only + check these under USE_PREINV_DIVREM_1. + * tests/t-modlinv.c: Nailify tests. + +2002-04-11 Gerardo Ballabio + + * gmpxx.h: Remove bool combinations, remove mpf_class::get_str2, only + need now. + +2002-04-11 Torbjorn Granlund + + * mpn/generic/diveby3.c: Nailify. + * gmp-impl.h (MODLIMB_INVERSE_3): Nailify. + + * mpn/generic/mul_n.c: Nailify Toom3 code. + +2002-04-10 Kevin Ryde + + * gmp-impl.h (MPN_KARA_MUL_N_MINSIZE, MPN_KARA_SQR_N_MINSIZE): Set to + 3, as needed by nails case. + + * mpn/generic/addmul_1.c, mpn/generic/submul_1.c [nails]: Fix vl + assert, add rp,n and up,n asserts. + + * mpfr/Makefile.am: Add new mpfr-math.h, install mpf2mpfr.h. + +2002-04-10 Torbjorn Granlund + + * mpn/generic/divrem_1.c: Nailify. Update mp_size_t variables to use + `n' suffix instead of `size' suffix. + * mpn/generic/divrem_2.c: Likewise. + * mpn/generic/sb_divrem_mn.c: Nailify. + * mpn/generic/tdiv_qr.c: Nailify. + (SHL): Remove silly macro. + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Replace open-coded increment by + mpn_incr_u call. Handle nails in ws[n] increment. + * mpn/generic/mul_n.c (mpn_kara_sqr_n): Likewise. + + * gmp-h.in (GMP_NUMB_MASK): New #define. + (__GMPN_AORS_1): Add version for nails. + + * gmp-impl.h (GMP_NUMB_MASK): Comment out, now in gmp.h. + (mpn_incr_u): Don't assume `incr' is non-zero. + (mpn_decr_u): Similarly. + +2002-04-09 Kevin Ryde + + * mpfr/*, configure.in: Update to mpfr 2.0.1. + + * tests/refmpn.c (refmpn_mul_1c, lshift_make): Corrections for nails. + * tssts/refmpn.c, tests/tests.h (refmpn_cmp_allowzero): New function. + + * mpn/generic/mul_1.c [nails]: Fix vl assert, add {up,n} assert. + + * mpn/pa32/hppa1_1/pa7100/addmul_1.asm, + mpn/pa32/hppa1_1/pa7100/submul_1.asm: Rename "size" define, to avoid + ELF .size directive. Reported by LaMont Jones. + + * tests/mpz/t-set_si.c: Add nails support. + +2002-04-05 Torbjorn Granlund + + * gmp-impl.h: Replace nail mpn_incr_u, mpn_decr_u with faster versions. + (mp_bases[10] values): Check GMP_NUMB_BITS instead of BITS_PER_MP_LIMB. + Add GMP_NUMB_BITS == 30 version. + (__gmp_doprnt, etc): Remove parameter names. + + * mpn/generic/mul_n.c: Nailify Karatsuba code. + * mpn/generic/get_str.c: Nailify. + * mpn/generic/sqr_basecase.c: Nailify. + * mpn/generic/lshift.c: Nailify. + * mpn/generic/rshift.c: Likewise. + * mpn/generic/add_n.c: Nailify. Revamp non-nail code. + * mpn/generic/sub_n.c: Likewise. + * mpn/generic/mul_1.c: Likewise. + * mpn/generic/addmul_1.c: Likewise. + * mpn/generic/submul_1.c: Likewise. + +2002-04-02 Kevin Ryde + + * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE) [powerpc]: + Corrections to constraints, and restrict to bigendian. + +2002-03-31 Kevin Ryde + + * tests/mpz/dive.c: Better diagnostics. + + * tests/devel/try.c (mpn_get_str, mpn_umul_ppmm_r): New tests. + + * tests/misc.c, tests/tests.h (byte_diff_lowest, byte_diff_highest): + New functions. + + * tests/t-bswap.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add it. + + * tests/mpn/t-aors_1.c, tests/mpn/t-iord_u.c: Add nails support. + + * gmp-impl.h (MPN_IORD_U) [x86]: Eliminate unnecessary jiord and iord, + rename "n" to incr per generic versions, restrict to nails==0. + (mpn_incr_u, mpn_decr_u): Add nails support. + (GMP_NAIL_LOWBIT, GMP_NUMB_MAX): New macros. + + * tests/trace.c, tests/tests.h (byte_trace, byte_tracen): New + functions. + * tests/trace.c: Handle NULL operands. + + * tests/refmpn.c, tests/devel/try.c, tune/speed.c: Add preliminary + nail support. + + * tests/refmpn.c, test/tests.h (byte_overlap_p, refmpn_equal_anynail, + refmpn_umul_ppmm_r, refmpn_udiv_qrnnd_r, refmpn_get_str, + refmpn_bswap_limb, refmpn_random, refmpn_random2, refmpn_bswap_limb): + New functions. + + * gmp-impl.h, tests/refmpn.c (ASSERT_LIMB): Renamed from + ASSERT_MP_LIMB_T. + + * mpn/x86/*/*.asm, mpn/powerpc32/*/*.asm, mpn/powerpc64/*/*.asm: Put + speeds after the copyright notice, so as to keep that clear. + +2002-03-29 Kevin Ryde + + * configure.in (powerpc*-*-aix*): Correction to xlc -qarch selection, + for 32-bit mode. + +2002-03-28 Torbjorn Granlund + + * mpn: Fix spacing in many files. + + * mpn/generic/aorsmul_1.c: Split into addmul_1.c and submul_1.c. + * mpn/generic/aors_n.c: Split into add_n.c and sub_n.c. + + * mpn/pa64/add_n.asm: Trim another 0.125 cycle/limb. Fix a comment. + * mpn/pa64/sub_n.asm: Likewise. + + * mpn/pa64/mul_1.asm: Change comclr, comb to proper forms cmpclr, cmpb. + * mpn/pa64/addmul_1.asm: Likewise. + * mpn/pa64/submul_1.asm: Likewise. + +2002-03-28 Kevin Ryde + + * gmp.texi (Converting Integers): Fix type of exp in mpz_get_d_2exp, + reported by epl@unimelb.edu.au. + (References): Update Burnikel and Ziegler URL, reported by Keith + Briggs. + + * gmp-h.in, mp-h.in, configure.in, acinclude.m4: Remove __GMP from + AC_SUBSTs, since autoconf says leading "_" in makefile variables is + not portable. + + * demos/expr/run-expr.c: Declare optarg, optind, opterr if necessary. + * configure.in, demos/expr/expr-config-h.in: Configs for this. + +2002-03-27 Torbjorn Granlund + + * mpn/Makefile.am (TARG_DIST): Remove pa64w and hppa, add pa32. + + * configure.in (path_20w): Remove pa64w. + + * mpn/pa64/udiv_qrnnd.asm: Tweak for PA8000 performance comparative to + that on PA8500. + +2002-03-26 Torbjorn Granlund + + * mpn/pa32: New name for mpn/hppa. + * configure.in: Corresponding changes. + + * mpn/pa64/umul_ppmm.asm: New file, generalized for both 2.0N and 2.0W. + * mpn/pa64/umul_ppmm.S: Remove. + + * mpn/pa64/udiv_qrnnd.asm: Generalize for both 2.0N and 2.0W. + * mpn/pa64w/udiv_qrnnd.asm: Remove. + +2002-03-26 Kevin Ryde + + * mpfr/tests/tdiv.c, mpfr/tests/tui_div.c: Don't depend on nan and inf + handling in "double", for the benefit of alpha. + + * configure (hppa2.0w): Set path to "pa64w pa64". + + * acinclude.m4, configure.in (GMP_C_INLINE): New macro. + * acinclude.m4 (GMP_H_EXTERN_INLINE): Use it, and fix "yes" handling. + +2002-03-25 Torbjorn Granlund + + * mpn/pa64w/add_n.s: Remove. + * mpn/pa64w/sub_n.s: Remove. + * mpn/pa64w/lshift.s: Remove. + * mpn/pa64w/rshift.s: Remove. + * mpn/pa64w/mul_1.S: Remove. + * mpn/pa64w/addmul_1.S: Remove. + * mpn/pa64w/submul_1.S: Remove. + * mpn/pa64w/sqr_diagonal.asm: Remove. + + * mpn/pa64/mul_1.asm: New file with twice faster code; generalized + for both 2.0N and 2.0W. + * mpn/pa64/submul_1.asm: Likewise. + * mpn/pa64/mul_1.S: Remove. + * mpn/pa64/submul_1.S: Remove. + + * mpn/pa64/sqr_diagonal.asm: Generalize for both 2.0N and 2.0W. + + * mpn/pa64/add_n.asm: New file, generalized for both 2.0N and 2.0W. + * mpn/pa64/sub_n.asm: Likewise. + * mpn/pa64/lshift.asm: Likewise. + * mpn/pa64/rshift.asm: Likewise. + * mpn/pa64/add_n.s: Remove. + * mpn/pa64/sub_n.s: Remove. + * mpn/pa64/lshift.s: Remove. + * mpn/pa64/rshift.s: Remove. + +2002-03-24 Kevin Ryde + + * gmp-impl.h (BSWAP_LIMB_FETCH, BSWAP_LIMB_STORE): New macros. + * mpz/inp_raw.c, mpz/out_raw.c: Use them. + * acconfig.h (HAVE_HOST_CPU): Add some powerpc types. + + * mpn/powerpc32/750/com_n.asm: New file. + + * mpfr/tests/tout_str.c: Disable random tests, since they fail on + alphaev56-unknown-freebsd4.1 and do nothing by default. + + * mpfr/tests/tsqrt.c: Don't depend on nan, inf or -0 in "double", for + the benefit of alpha. + * mpfr/sqrt.c: Clear nan flag on -0. + + * demos/factorize.c: Use mpn_random() instead of random(), to avoid + portability problems. + + * demos/isprime.c (print_usage_and_exit): Declare as "void" to avoid + warnings. + + * demos/pexpr.c (setup_error_handler): Corrections to sigstack code. + + * demos/calc/calc.y: Add some `;'s to make bison 1.34 happy. + +2002-03-23 Torbjorn Granlund + + * mpn/pa64/addmul_1.asm: New file with twice faster code; generalized + for both 2.0N and 2.0W. + +2002-03-22 Kevin Ryde + + * tune/time.c: Add SGI hardware counter measuring method, change some + abort()s into ASSERT_FAIL()s. + + * configure.in (AC_CHECK_HEADERS): Add fcntl.h and sys/syssgi.h. + (AC_CHECK_FUNCS): Add syssgi. + + * configure.in, mpfr/Makefile.am, mpfr/tests/Makefile.am: Use + -mieee-with-inexact or -ieee_with_inexact for mpfr on alpha, so + denorms work. + + * mpfr/isinteger.c: Fix a memory leak. + +2002-03-21 Torbjorn Granlund + + * tune/speed.c (struct choice_t): Make `r' an mp_limb_t. + +2002-03-21 Kevin Ryde + + * configure.in (HAVE_LIMB_BIG_ENDIAN, HAVE_LIMB_LITTLE_ENDIAN): Use an + AH_VERBATIM and better explanation. + * acinclude.m4 (GMP_C_DOUBLE_FORMAT): Similarly for the HAVE_DOUBLE + constants. + + * gmp.texi (Number Theoretic Functions): Clarify sign of GCD returned + by mpz_gcdext. + + * demos/pexpr.c, demos/pexpr-config-h.in, configure.in: Use an + autoconf test for stack_t. + + * configure.in, gmp-h.in, mp-h.in, macos/configure, tests/mpz/reuse.c, + tests/mpf/reuse.c: Use __GMP_LIBGMP_DLL to enable windows declspec, + don't require _WIN32 (etc), remove __GMP_LIBGMP_SHARED and + __GMP_LIBGMP_STATIC. + + * gmp-impl.h (mp_bases): Add __GMP_DECLSPEC, for the benefit of + tests/t-constants.c. + + * tune/many.pl, tune/speed.h: Remove suffix hack for back.asm. + +2002-03-21 Paul Zimmermann + + * mpfr/sin_cos.c (mpfr_sin_cos): New file. + * mpfr/mpfr.h, mpfr/mpfr.texi, mpfr/Makefile.am: Add it. + * mpfr/tan.c: Fix sign in 2nd and 4th quadrants. + + * mpfr/log10.c: Fix hangs on certain inputs. + +2002-03-20 Torbjorn Granlund + + * demos/pexpr.c (setup_error_handler): Declare `s', the first + sigaltstack parameter, using `stack_t' just on AIX. + +2002-03-19 Torbjorn Granlund + + * mpn/powerpc32/mul_1.asm: Use free caller-saves registers instead + of the callee-saves r30 and r31. + +2002-03-19 Kevin Ryde + + * tune/freq.c (freq_proc_cpuinfo): Recognise powerpc "clock", where + previously got the wrong result from "bogomips". + + * mpn/powerpc32/add_n.asm, mpn/powerpc32/sub_n.asm: Rewrite, faster on + 750, and smaller too. + * mpn/powerpc32/*.asm: Use L(), add some measured speeds. + + * longlong.h (count_trailing_zeros) [vax]: Add a version using ffs, + but commented out. + +2002-03-17 Kevin Ryde + + * tune/speed.c, tune/speed.h, tune/common.c, many.pl: Use optional + ".r" to specify operand overlaps for mpn_add_n, mpn_sub_n and logops. + Remove mpn_add_n_inplace and mpn_add_n_self. + * tune/many.pl: Fix MULFUNC_PROLOGUE parsing. + + * gmp.texi (Known Build Problems): Note `make' problem with long + libgmp.la dependencies list. + + * printf/doprnt.c, scanf/doscan.c (%zn): Remove test of non-existent + HAVE_SIZE_T, just use size_t unconditionally. + * printf/doprnt.c (%zd etc): Fix 'z' type parsing. + * tests/misc/t-printf.c, tests/misc/t-scanf.c: More tests. + + * configure.in: Use AC_COPYRIGHT. + Add m4_pattern_allow(GMP_MPARAM_H_SUGGEST). + + * tune/Makefile.am (libdummy.la): Remove this, sqr_basecase.c already + gets an ansi2knr rule from nodist_tuneup_SOURCES. + + * longlong.h (count_leading_zeros) [pentiumpro gcc<3]: Test + HAVE_HOST_CPU_i686 too. + + * mpz/out_raw.c (HTON_LIMB_STORE): Fix a typo in big endian #if. + +2002-03-14 Kevin Ryde + + * mpn/x86/pentium/com_n.asm, mpn/x86/pentium/logops_n.asm, + mpn/x86/k6/mmx/com_n.asm: Add nails support. + + * texinfo.tex: Update to 2002-03-01.06 (per texinfo 4.1). + * gmp.texi (@ma): Remove, @math does this now. + + * mpfr/tests/reuse.c: Clear op1 and op2 flags only in their respective + outer loops. + + * configure.in (--enable-cxx): Correction to the default stated in the + help string. + (power*-*-aix*, not powerpc): Use aix.m4, don't run + GMP_ASM_POWERPC_R_REGISTERS or use powerpc-defs.m4. + +2002-03-13 Torbjorn Granlund + + * mpn/sparc32/gmp-mparam.h: New file. + +2002-03-13 Kevin Ryde + + * demos/expr/exprfr.c: More mpfr functions, corrections to agm, cos, + sin, rename log2 constant to loge2 to make room for log2 function. + * demos/expr/t-expr.c: More tests. + + * mpz/inp_raw.c (NTOH_LIMB_FETCH) [generic 16bit]: Remove spurious "+". + + * mpfr/acos.c: Avoid a memory leak for certain operands. + + * acinclude.m4, configure.in (GMP_C_DOUBLE_FORMAT): New macro. + + * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE, + GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX): + Change ac_objext to OBJEXT, which is the documented variable. + + * config.guess (powerpc*-*-*): Use #ifdef on constants POWER_630 etc + in the AIX test, since old versions don't have them all. + +2002-03-11 Kevin Ryde + + * configure.in (LIBC211): New AC_DEFINE, for mpfr. + + * configure.in (mips*-*-*): Support ABI=o32 on irix 6, allow gcc 2.7.2 + to fall back on it, but detect it doesn't work with gcc 2.95. Use + single mips-defs.m4 for both mips32 and mips64. + * acinclude.m4 (GMP_GCC_MIPS_O32): New macro. + * mpn/mips32/mips-defs.m4: Renamed from mips.m4. + * mpn/mips64/mips.m4: Remove (was a copy of mips32/mips.m4). + + * mpn/powerpc32/750: New directory. + * configure.in (powerpc740, powerpc750, powerpc7400): Use it. + * mpn/powerpc32/750/gmp-mparam.h: New file. + + * config.sub, gmp.texi (ultrasparc1): Remove this, just use plain + "ultrasparc". + +2002-03-10 Kevin Ryde + + * mpfr: Update to 20020301, except internal_ceil_exp2.c, + internal_ceil_log2.c, internal_floor_log2.c renamed to i_ceil_exp2.c, + i_ceil_log2.c, i_floor_log2.c to be unique in DOS 8.3. And sqrtrem.c + removed since no longer required. + * mpfr/mpfr.texi: Fix some formatting. + * mpfr/tests/reuse.c: Patch by Paul to fix test4 variable handling. + * mpfr/sinh.c: Patch by Paul to fix err calculation when t==0. + * mpfr/tests/tget_d.c: Disable until portability of rnd_mode.c can be + sorted out. + + * configure.in (powerpc*-*-*): Separate gcc and xlc cpu flags setups + for clarity. + + * longlong.h (count_leading_zeros, count_trailing_zeros) [x86_64]: New + macros. + +2002-03-07 Kevin Ryde + + * gmp.texi (Build Options): Note all the ultrasparcs accepted. + (Language Bindings): Add Math::BigInt::GMP. + + * config.sub (ultrasparc2i): New cpu type. + * config.guess (sparc-*-*, sparc64-*-*): Add some exact CPU detection. + +2002-03-05 Kevin Ryde + + * longlong.h (count_leading_zeros, count_trailing_zeros) [alphaev67, + alphaev68]: Use ctlz and cttz insns (as per gcc longlong.h). + (count_leading_zeros) [sparclite]: Fix parameter order (as per gcc + longlong.h). + * acconfig.h (HAVE_HOST_CPU_alphaev68): New define. + + * config.guess [i?86-*-*]: Suppress error messages if compiler not + found or test program won't run. + [rs6000-*-*, powerpc-*-*]: Force code alignment for mfpvr test. + +2002-03-04 Torbjorn Granlund + + * mpn/generic/pow_1.c: New file. + +2002-03-03 Kevin Ryde + + * gmp.texi (Build Options): Note compiler must be able to fully link, + add alphapca57 and alphaev68, give a clearer example of MPN_PATH + (Debugging): Add notes on valgrind. + (C++ Formatted Output): Clarify mpf showbase handling, in particular + note "00.4" in octal. + + * printf/doprntf.c: Do a showbase on octal float fractions, for + instance "00.4" where previously it gave "0.4". + * tests/cxx/t-ostream.cc: Update. + + * gmp-h.in, mp-h.in (__GMP_DECLSPEC, __GMP_DECLSPEC_XX): Test + __WIN32__ for Borland C, reported by "delta trinity". + + * gmp-h.in, mp-h.in: Use for size_t under C++, suggested by + Hans Aberg some time ago. + * gmp-h.in (): Move to top of file for clarity. + + * Makefile.am (libgmpxx_la_SOURCES): Use dummy.cc to force C++. + (CXX_OBJECTS): Add osfuns$U.lo. + * dummy.cc: New file. + * cxx/Makefile.am (INCLUDES): Use __GMP_WITHIN_GMPXX. + (libcxx_la_SOURCES): Add osfuns.cc. + * gmp-h.in (__GMP_DECLSPEC_XX): New define, use it on libgmpxx funs. + * gmp-impl.h: Add __GMP_DECLSPEC to libgmp functions used by libgmpxx. + + * longlong.h (COUNT_TRAILING_ZEROS_TIME): Remove, no longer used. + + * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): Correction to + __totbits for nails. + + * gmp-impl.h (JACOBI_LS0): Test size before limb, to pacify valgrind. + (JACOBI_0LS): Ditto, and fix parens around arguments. + + * mpn/x86/x86-defs.m4 (call_mcount): Add a counter to make data labels + unique, since simplified L() scheme no longer gives that effect. + (notl_or_xorl_GMP_NUMB_MASK): New macro. + Add m4_assert_numargs in a few places. + + * configure.in (*sparc*): Fix cycle counter setups for ABI=64. + +2002-02-28 Torbjorn Granlund + + * mpn/vax/gmp-mparam.h: New file. + +2002-02-28 Kevin Ryde + + * gmp-h.in (gmp_errno, gmp_version): Move into extern "C" block, + reported by librik@panix.com. + + * gmp-h.in, mp-h.in (__GMP_DECLSPEC_EXPORT, __GMP_DECLSPEC_IMPORT): + Use __declspec(dllexport) and __declspec(dllimport) on Borland. + * gmp-h.in (_GMP_H_HAVE_FILE): Test __STDIO_H for Borland. + Reported by "delta trinity". + + * gmp-impl.h (va_copy): Fall back on memcpy, not "=". + + * mpn/generic/pre_mod_1.c: Add a comment about obsolescence. + + * tune/time.c (MICROSECONDS_P): Don't trust time differences of 1 + microsecond. + + * tests/cxx/t-ostream.cc: Use "const char *" not just "char *" for + test data strings, avoids warnings on Sun CC. + +2002-02-27 Torbjorn Granlund + + * configure.in: For sparc under solaris2.[7-9], pass -fsimple=1 to + disable some crazy -fast optimizations. + +2002-02-25 Torbjorn Granlund + + * configure.in: For sparc under solaris2.[7-9], pass -fns=no to enable + denorm handling under -fast. + +2002-02-25 Kevin Ryde + + * configure.in (alpha*-*-*): Rearrange -mcpu selection for gcc, + provide an ev67 -> ev6 fallback. Fix -arch,-tune selection for DEC C. + Allow ~ for space in optional options lists. + + * tune/tuneup.c (tune_preinv_divrem_1): Compare against an assembler + mpn_divrem_1 if it exists, not the generic C mpn_divrem_1_div. + (tune_preinv_mod_1): Ditto with mpn_mod_1. + + * tune/time.c (DIFF_SECS_ROUTINE): Eliminate the unused "type" + parameter, try to make the code a bit clearer. + + * tune/freq.c: Reduce the period measured for cycles versus + gettimeofday, add cycles versus microsecond getrusage. + + * mpz/array_init.c: "i" should be mp_size_t, noticed by E. Khong. + +2002-02-24 Torbjorn Granlund + + * configure.in: For sparc under solaris2.[7-9], pass -fast instead of + other optimization options. + +2002-02-23 Kevin Ryde + + * mpn/asm-defs.m4 (GMP_NUMB_MASK): New macro. + (PROLOGUE, EPILOGUE): Relax quoting for the benefit of tune/many.pl + when GSYM_PREFIX non-empty. + + * tune/time.c, tune/speed.h (speed_time_init): Include clock tick + period in speed_time_string. + * tune/time.c, configure.in (clock_gettime): New measuring method. + + * tune/many.pl: Add -DHAVE_NATIVE_mpn_foo to C objects, to avoid + conflicts with a macro version in gmp-impl.h, eg. mpn_com_n. + +2002-02-22 Torbjorn Granlund + + * demos/pexpr.c: Increase RLIMIT_STACK to 4Mibyte. + +2002-02-22 Kevin Ryde + + * tune/tuneup.c: Don't confuse gcc with mipspro cc in diagnostic. + +2002-02-20 Torbjorn Granlund + + * configure.in (mips*-*-irix[6789]*]): Set `extra_functions_n32', not + `extra_functions'. + + * printf/doprnt.c: Conditionally include inttypes.h. + * printf/repl-vsnprintf.c: Likewise. + * scanf/doscan.c: Likewise. + +2002-02-20 Kevin Ryde + + * mpn/x86/k7/mmx/com_n.asm: New file. + + * mpz/n_pow_ui.c (SWAP_RP_TP): Use ASSERT_CODE on ralloc and talloc, + to ensure they needn't live past the initial allocs in a normal build. + + * mpn/generic/mod_34lsub1.c: Note this is for internal use. + +2002-02-19 Torbjorn Granlund + + * Clean up *_THRESHOLD names. Many files affected. + + * mpn/mips32: Asm-ify 32-bit mips code. + Move files from `mips2' to `mips32' directory. + * mpn/mips64: Move files from `mips3' to `mips64' directory. + * configure.in: Change `mips2' => `mips32' and `mips3' => `mips64'. + +2002-02-19 Kevin Ryde + + * acinclude.m4, configure.in (GMP_PROG_LEX): New macro. + + * tune/tuneup.c (one): Start next threshold at a max of previous ones, + in order to get a good starting point for TOOM3_SQR_THRESHOLD if + KARATSUBA_SQR_THRESHOLD is 0 (ie. using mpn_mul_basecase only). + + * configure.in, tune/tuneup.c (GMP_MPARAM_H_SUGGEST): New AC_DEFINE + replacing GMP_MPARAM_H_FILENAME. Suggest a new file in a cpu specific + subdirectory rather than mpn/generic. + + * acinclude.m4 (POWERPC64_PATTERN): New macro. + * configure.in (powerpc*-*-*): Use it. + (powerpc*-*-*): Use umul in 32L and aix64. + (mips*-*-*): Use umul, 32 and 64 bit versions. + +2002-02-18 Torbjorn Granlund + + * longlong.h: Add basic x86-64 support. + +2002-02-17 Torbjorn Granlund + + * demos/pexpr.c: Support `-X' for upper case hex, make `-x' output + lower case hex. + + * mpn/mips2/umul.s: Make it actually work. + * mpn/mips3/umul.asm: New file. + + * mpn/mips2/gmp-mparam.h: New file. + +2002-02-16 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_sb_get_str): Round frac upwards after + umul_ppmm calls. + +2002-02-16 Kevin Ryde + + * config.guess (alpha-*-*): Do alpha exact cpu probes on any system, + and only if configfsf.guess gives a plain "alpha". + + * acinclude.m4 (GMP_PROG_CC_WORKS): Detect a gcc 3.0.3 powerpc64 + linker invocation problem. + +2002-02-15 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_sb_get_str): For base 10, develop initial + digits using umul_ppmm, then switch to plain multiplication. + + * config.guess: Rewrite Alpha subtype detection code for *bsd systems. + +2002-02-15 Kevin Ryde + + * gmp.texi (Build Options): Note powerpc exact cpu types. + (Debugging): Advertise DEBUG in memory.c. + + * config.sub, config.guess: Add some powerpc exact cpus. + * configure.in: Add configs for them. + + * memory.c [__NeXT__]: Remove unused #define of "static". + (__gmp_default_allocate, __gmp_default_reallocate): Print size if + allocation fails, don't use perror. + + * gmp-h.in: g++ 3 demands __GMP_NOTHROW is before other attributes. + +2002-02-14 Torbjorn Granlund + + * mpn/alpha/mul_1.asm: Fix typo preventing build on T3E systems. + +2002-02-14 Kevin Ryde + + * tune/tuneup.c (tune_set_str): Increase max_size, for the benefit of + alpha. + + * macos/README: Bug reports to bug-gmp@gnu.org, clarify MacOS X a bit. + + * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Add missing TMP_FREE. + + * tune/speed.c, tune/tuneup.c: Allow for speed_cycletime of 0.0 in + some diagnostic printouts. + * tune/time.c (speed_cycletime): Note can be 0.0. + +2002-02-12 Torbjorn Granlund + + * mpn/alpha/mul_1.asm: Add mpn_mul_1c entry. + + * mpn/pa64w/sqr_diagonal.asm: Use L() for labels. + +2002-02-11 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_sb_get_str): Change declaration of rp to + accommodate tuneup compiles. + +2002-02-11 Kevin Ryde + + * mpn/alpha/default.m4, mpn/alpha/unicos.m4 (PROLOGUE_cpu): Add + noalign option. + * mpn/alpha/default.m4 (PROLOGUE_cpu): use ALIGN instead of ".align". + + * gmp.texi (Debugging): Notes on Checker. + (Other Multiplication): Move note on float FFTs to here. + (Assembler Floating Point): New text and revisions by Torbjorn, + picture formatting by me. + Simplify tex pictures elsewhere a bit, share heights, eliminate some + gaps at line joins. + +2002-02-11 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_sb_get_str): Rewrite to generate fraction + limbs and use multiplication for digit development. Trim allocation of + buf. Get rid of code for !USE_MULTILIMB. + +2002-02-10 Torbjorn Granlund + + * mpn/generic/set_str.c (mpn_set_str): Undo this: + Change invocations of mpn_add_1 to instead use mpn_incr_u. + + * tests/mpz/convert.c: Free str only after it is used in error message. + + * mpn/generic/get_str.c (mpn_sb_get_str): Combine tail code for base 10 + and generic bases. + + * mpn/mp_bases.c: Add entries for base 256. Remove __ prefix from + table name. + * gmp-impl.h (__mp_bases): Remove superfluous mp_ part of name, making + it __gmpn_bases instead of __gmpn_mp_bases. + (mp_bases): New #define. + * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Allow bases up to 256. + (SPEED_ROUTINE_MPN_GET_STR): Likewise. + +2002-02-09 Torbjorn Granlund + + * mpn/generic/set_str.c (mpn_set_str): Use mpn_mul_1c if available. + Change invocations of mpn_add_1 to instead use mpn_incr_u. + +2002-02-09 Kevin Ryde + + * mpz/array_init.c, mpz/cfdiv_q_2exp.c, mpz/cfdiv_r_2exp.c, + mpz/cong_2exp.c, mpz/divis_2exp.c, mpz/hamdist.c, mpz/init2.c, + mpz/mul_2exp.c, mpz/realloc2.c, mpz/scan0.c, mpz/scan1.c, + mpz/setbit.c, mpz/tdiv_q_2exp.c, mpz/tdiv_r_2exp.c, mpz/tstbit.c, + mpz/urandomb.c: Use GMP_NUMB_BITS. + + * mpz/iset_str.c [__CHECKER__]: Store a dummy value to the low limb to + stop it appearing uninitialized. + + * gmp-h.in (__GMP_NOTHROW): New macro. + (mp_set_memory_functions, mpz_cmp, mpz_cmp_si, mpz_cmp_ui, mpz_cmpabs, + mpz_cmpabs_ui, mpz_congruent_2exp_p, mpz_divisible_2exp_p, + mpz_fits_sint_p, mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, + mpz_fits_ulong_p, mpz_fits_ushort_p, mpz_get_si, mpz_get_ui, + mpz_getlimbn, mpz_hamdist, mpz_popcount, mpz_scan0, mpz_scan1, + mpz_size, mpz_sizeinbase, mpz_swap, mpz_tstbit, mpq_equal, mpq_swap, + mpf_cmp, mpf_cmp_si, mpf_cmp_ui, mpf_fits_sint_p, mpf_fits_slong_p, + mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p, + mpf_fits_ushort_p, mpf_get_default_prec, mpf_get_prec, mpf_get_si, + mpf_get_ui, mpf_integer_p, mpf_set_default_prec, mpf_set_prec_raw, + mpf_size, mpf_swap, mpn_add_1, mpn_cmp, mpn_hamdist, mpn_popcount, + mpn_sub_1): Use it. + + * gmp-impl.h (MPN_SIZEINBASE, MPN_SIZEINBASE_16): New macros from + mpn_sizeinbase, and use GMP_NUMB_BITS. + * mpz/get_str.c, mpz/sizeinbase.c, mpbsd/mout.c, tune/speed.h: Use + MPN_SIZEINBASE. + * mpbsd/mtox.c: Use MPN_SIZEINBASE_16. + + * configure.in, mpn/Makefile.am, gmp-impl.h (mpn_sizeinbase): Remove. + * mpn/generic/sizeinbase.c: Remove file. + + * gmp-impl.h (MPN_GET_STR_SIZE): Remove. + * tests/mpn/t-g_str_size.c: Remove file. + * tests/mpn/Makefile.am: Update. + + * Makefile.am (dist-hook): Don't distribute cvs merge ".#" files. + +2002-02-08 Torbjorn Granlund + + * configure.in: Override extra_functions for all sparcv8 systems, not + just supersparc. + +2002-02-06 Kevin Ryde + + * tune/tuneup.c (tune_mul, tune_sqr): Disable FFTs until tuned. + * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix memory clobber in + destination cache priming. + + * printf/doprnt.c: Fix parsing of %s and %p conversions. + * tests/misc/t-printf.c (check_misc): Add some tests. + +2002-02-03 Torbjorn Granlund + + * mpn/sparc32/v8/udiv.asm: New file, from v8/supersparc. + + * mpn/generic/set_str.c: Rename indigits_per_limb => chars_per_limb. + Remove redundant chars_per_limb. Reverse 4 loops in basecase code for + speed. Use MP_BASES_CHARS_PER_LIMB_10. + +2002-02-03 Kevin Ryde + + * acinclude.m4 (GMP_PROG_NM): Ensure -B or -p get used when doing a + cross compile with the native nm, helps OSF for instance. + (GMP_ASM_LSYM_PREFIX): Remove ".byte 0" for the benefit of irix 6, + allow "N" from nm for OSF, allow for "t" for other systems, but prefer + no mention of the symbol at all. + + * tune/tuneup.c (print_define_remark): New function. + Turn some "#if"s into plain "if"s. + + * tune/tuneup.c, gmp-impl.h, tune/Makefile.am + (GET_STR_BASECASE_THRESHOLD, GET_STR_PRECOMPUTE_THRESHOLD): Tune these. + * mpn/generic/get_str.c [TUNE_PROGRAM_BUILD]: Cope with non-constant + GET_STR_PRECOMPUTE_THRESHOLD. + +2002-02-02 Torbjorn Granlund + + * mpn/generic/get_str.c (mpn_get_str): Fix typo in a declaration. + +2002-02-02 Kevin Ryde + + * mpn/generic/set_str.c: Use MP_PTR_SWAP and POW2_P, add __GMP_PROTO + to convert_blocks prototype, disable SET_STR_BLOCK_SIZE sanity check. + + * tune/set_strb.c, tune/set_strs.c: New files. + * tune/speed.h, tune/speed.c, tune/common.c,tune/Makefile.am: Add them. + * tune/tuneup.c: Tune SET_STR_THRESHOLD. + (DEFAULT_MAX_SIZE): Renamed from MAX_SIZE, allow any param.max_size[]. + +2002-02-01 Torbjorn Granlund + + * tests/mpz/convert.c: Increase operand size. Add (yet disabled) code + for testing with random strings. + + * mpn/generic/get_str.c (mpn_get_str): Rewrite to become sub-quadratic. + (mpn_dc_get_str, mpn_sb_get_str): New functions. + +2002-01-31 Kevin Ryde + + * gmpxx.h (cmp): Renamed from "compare". + + * configure.in (AC_C_BIGENDIAN): Don't abort when cross compiling. + (PROLOGUE): Allow new style optional second parameter when grepping. + + * acinclude.m4 (GMP_HPC_HPPA_2_0, GMP_ASM_UNDERSCORE, + GMP_ASM_ALIGN_LOG, GMP_ASM_LSYM_PREFIX, GMP_ASM_W32, GMP_ASM_X86_MMX): + Use $ac_objext for object filenames. + (GMP_ASM_UNDERSCORE): Use CCAS to assemble. + + * demos/pexpr-config-h.in: New file. + * configure.in: Generate demos/pexpr-config.h. + (AC_CHECK_FUNCS): Add clock, cputime, setrlimit, sigaction, + sigaltstack, sigstack. + * acinclude.m4 (GMP_SUBST_CHECK_FUNCS, GMP_SUBST_CHECK_HEADERS): New + macros. + * demos/pexpr.c: Use pexpr-config.h, not various #ifdefs. + (setup_error_handler): Use signal if sigaction not available, allow + for SIGBUS missing on mingw. + (main): Use time() for random seed if gettimeofday not available. + (cleanup_and_exit): Move SIGFPE out of LIMIT_RESOURCE_USAGE. + +2002-01-30 Torbjorn Granlund + + * mpn/generic/set_str.c: Rewrite to become sub-quadratic. + (convert_blocks): New function. + +2002-01-30 Kevin Ryde + + * gmp-impl.h (GMP_NUMB_MASK, GMP_NAIL_MASK, GMP_NUMB_HIGHBIT, + ASSERT_MPN, ASSERT_MP_LIMB_T): New macros. + + * mpn/generic/fib2_ui.c: Use GMP_NUMB_BITS, simplify the data + generator program, share __gmp_fib_table initializers between bit + sizes, cope with bit sizes other than those specifically setup. + * gmp-impl.h (FIB_TABLE_LIMIT, FIB_TABLE_LUCNUM_LIMIT): Corresponding + rearrangement of conditionals. + * tests/mpz/t-fib_ui.c (check_fib_table): New test. + +2002-01-28 Kevin Ryde + + * mpz/set_si.c, mpz/iset_si.c: Store to _mp_d[0] unconditionally, use + an expression for _mp_size. + + * mpz/init.c, mpz/init2.c, mpz/iset.c, mpq/init.c [__CHECKER__]: Store + dummy values to low limbs to stop them appearing uninitialized. + +2002-01-26 Kevin Ryde + + * mpfr/mpfr-test.h (MAX, MIN, ABS): Use instead a patch from Paul and + Vincent. + +2002-01-24 Kevin Ryde + + * configure.in: Extra quoting to get argument help messages right. + + * gmp.texi (Efficiency): Suggest hex or octal for input and output. + (Formatted Output Strings): Mention "*" for width and precision. + + * mpn/generic/sizeinbase.c: New file, adapted from mpz/sizeinbase.c. + Use POW2_P, use __mp_bases[base].big_base for log2(base). + * configure.in, mpn/Makefile.am: Add it. + * gmp-impl.h: Add prototype. + * mpz/sizeinbase.c, tune/speed.h, mpn/generic/get_str.c, + mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c: Use it. + * mpz/get_str.c: Write directly to user buffer, skip at most one + leading zero, eliminate special case for x==0. + * mpbsd/mtox.c: Allocate exact result space at the start, eliminate + special case for x==0. + * mpbsd/mout.c: Only need to skip one high zero with mpn_sizeinbase. + + * configure.in (--enable-nails): New option. + (GMP_NAIL_BITS, GMP_LIMB_BITS, GMP_NUMB_BITS): New defines for gmp.h + and config.m4. + * gmp-h.in: Add templates. + + * mpfr/mpfr-test.h (MAX, MIN, ABS): Use #ifndef to avoid a redefine + error on AIX xlc. + +2002-01-23 Torbjorn Granlund + + * mpn/generic/get_str.c: Correct type of `out_len'. + +2002-01-22 Kevin Ryde + + * mpn/generic/pre_divrem_1.c: Corrections to some ASSERTs. + + * mpfr/mul_ui.c: Don't call mpn_lshift with 0 shift. + + * mpfr/mpz_set_fr.c: Produce correct mpz_t for f==0. + +2002-01-21 Torbjorn Granlund + + * longlong.h (32-bit powerpc add_ssaaaa): Remove spurious commutative + declaration. + (64-bit powerpc add_ssaaaa): Likewise. + +2002-01-20 Kevin Ryde + + * acinclude.m4 (GMP_FUNC_VSNPRINTF): Use %n to better detect sparc + solaris 2.7 problems. + +2002-01-19 Torbjorn Granlund + + * demos/pexpr.c (mpz_eval_expr): Optimize s^rhs for -1 <= s <= 1. + (cleanup_and_exit): Improve error message wording. + +2002-01-19 Kevin Ryde + + * mpfr/mpfr.h (_PROTO): Use __GMP_PROTO, for compatibility with + gmp-impl.h. + +2002-01-17 Torbjorn Granlund + + * mpfr/mpfr-test.h: Test "__hpux", not "hpux". Mask off mrand48 + return value to 31 bits to work around sloppy mpfr #include practices. + + * mpfr/tests/*.c: Use #include "", not <>, for gmp.h and mpfr.h. + Make sure to #include mpfr-test.h from all files that use random(). + +2002-01-17 Kevin Ryde + + * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE_TYPE): New macro. + * gmp-impl.h, mpz/get_str.c, mpz/out_raw.c, mpq/get_str.c, + mpq/set_str.c, mpf/get_str.c, printf/asprntffuns.c, printf/doprnt.c, + printf/repl-vsnprintf.c, printf/snprntffuns.c, scanf/doscan.c, + mpbsd/mtox.c: Some fixes to compile as C++. + + * mpn/generic/jacbase.c (JACOBI_BASE_METHOD): New tuned parameter, + replacing COUNT_TRAILING_ZEROS_TIME test. Add a third method too. + * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Add + measuring of mpn_jacobi_base methods. + * tune/jacbase1.c, tune/jacbase2.c, tune/jacbase3.c: New files. + * tune/tuneup.c (JACOBI_BASE_METHOD): Tune this. + * mpn/x86/*/gmp-mparam.h (COUNT_TRAILING_ZEROS_TIME): Remove macro. + + * gmp-h.in: Use __gmp prefix on variables in inlines. + + * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Remove __i, unused. + + * mpn/generic/mul_fft.c: Use HAVE_NATIVE_mpn_addsub_n, not ADDSUB. + Use CNST_LIMB for some constants. + +2002-01-15 Kevin Ryde + + * tests/mpbsd/Makefile.am: Add a convenience rule for ../libtests.la. + + * printf/Makefile.am: libdummy.la should be in EXTRA_LTLIBRARIES. + + * mpf/out_str.c: Use MPF_SIGNIFICANT_DIGITS, so mpf_out_str and + mpf_get_str give the same for ndigits==0. + + * mpfr/exceptions.c (mpfr_set_emin, mpfr_set_emax): Work around a + powerpc64 gcc 3.0 -O2 bug. + + * tests/memory.c, tests/tests.h (tests_memory_validate): New function. + +2002-01-14 Kevin Ryde + + * mpn/generic/sb_divrem_mn.c, mpn/generic/divrem_1.c, + mpn/generic/divrem_2.c, mpn/generic/mod_1.c: Don't use UMUL_TIME and + UDIV_TIME, just default to preinv. + * gmp-impl.h (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Ditto. + (DIVEXACT_1_THRESHOLD, MODEXACT_1_ODD_THRESHOLD): Don't use UMUL_TIME + and UDIV_TIME, make default thresholds 0. + (UDIV_NORM_PREINV_TIME, UDIV_UNNORM_PREINV_TIME): Remove macros. + * mpn/x86/*/gmp-mparam.h (UMUL_TIME, UDIV_TIME, + UDIV_NORM_PREINV_TIME): Remove macros. + + * gmp.texi (Headers and Libraries): New section, being the header + notes from "GMP Basics" and some new stuff. + (Parameter Conventions): Notes on "const" parameters. + (Formatted Output Strings): Add type N, tweak some wording. + + * tests/refmpn.c (refmpn_divmod_1c): Avoid a bug in i386 gcc 3.0. + +2002-01-12 Kevin Ryde + + * mpz/root.c: Add , for abort(). + + * mpfr/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. + * mpfr/mpfr.h, mpfr/mpfr-tests.h, reuse.c, tadd.c, tadd_ui.c, tagm.c, + tatan.c, tcmp2.c, tcos.c, tdiv.c, tdiv_ui.c, teq.c, texp.c, + tget_str.c, thyperbolic.c, tlog.c, tmul.c, tout_str.c, tpow.c, + trandom.c, tset_z.c, tsin.c, tsqrt.c, tsqrt_ui.c, tsub_ui.c, ttan.c, + tui_div.c: Fixes for K&R. + + * tests/misc/t-scanf.c (check_misc, check_misc): + + * tests/mpz/t-inp_str.c, tests/mpq/t-inp_str.c, tests/misc/t-scanf.c: + Avoid strings in ASSERT, not enjoyed by K&R. + * gmp-impl.h (ASSERT): Note this. + + * tests/tests.h (refmpn_mod_34lsub1): Add __GMP_PROTO. + + * mpbsd/Makefile.am: Avoid an automake problem with ansi2knr and + sources in a different directory. + + * printf/repl-vsnprintf.c: Test HAVE_LONG_DOUBLE for long double. + + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mod_34lsub1.c, + mul_2.c, pre_divrem_1.c. + + * gmp-h.in, gmp-impl.h (mpn_add_nc, mpn_addmul_1c, mpn_addsub_n, + mpn_addsub_nc, mpn_divrem_1c, mpn_dump, mpn_mod_1c, mpn_mul_1c, + mpn_mul_basecase, mpn_sqr_n, mpn_sqr_basecase, mpn_sub_nc, + mpn_submul_1c): Move to gmp-impl.h, since they're undocumented. + + * gmp-impl.h (mpn_reciprocal): Remove, unused. + + * tune/many.pl (cntlz, cnttz): Use new SPEED_ROUTINE_COUNT_ZEROS. + +2002-01-11 Kevin Ryde + + * mpn/hppa/*.asm, mpn/pa64/*.asm, mpn/pa64w/*.asm: Use L(). + +2002-01-08 Kevin Ryde + + * mpn/asm-defs.m4 (PROLOGUE, EPILOGUE): New scheme, optional function + name to EPILOGUE, check for missing or wrong function name EPILOGUE. + * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/m68k/m68k-defs.m4, + mpn/mips3/mips.m4, mpn/ia64/default.m4, mpn/powerpc32/aix.m4, + mpn/powerpc64/aix.m4, mpn/x86/x86-defs.m4: Consequent updates, add a + few more asserts. + * mpn/alpha/unicos.m4, mpn/alpha/default.m4, mpn/alpha/cntlz.asm, + mpn/alpha/invert_limb.asm (PROLOGUE_GP): Change to an optional "gp" + parameter on plain PROLOGUE. + + * gmp.texi (Low-level Functions): mpn_get_str doesn't clobber an extra + limb, and doesn't clobber at all for power of 2 bases. + (Language Bindings): Add python gmpy. + + * mpz/get_str.c: Determine realloc size arithmetically. + + * mpbsd/mtox.c: Size memory block returned to actual space needed. + * gmp.texi (BSD Compatible Functions): Describe this. + + * mpz/get_str.c: Don't copy mpn_get_str input for power of 2 bases. + * mpbsd/mtox.c: Ditto, and as a side effect avoid a memory leak from a + missing TMP_FREE. + + * mpz/get_str.c, mpbsd/mout.c: No longer need for +1 limb for + mpn_get_str clobber. + + * gmp-impl.h (MPN_GET_STR_SIZE): New macro. + * mpn/generic/get_str.c, mpz/get_str.c, mpbsd/mout.c, mpbsd/mtox.c, + tune/speed.h: Use it. + * tests/mpn/t-g_str_size.c: New test. + * tests/mpn/Makefile.am: Add it. + + * gmp-impl.h (POW2_P): New macro. + * mpn/generic/get_str.c, tests/misc.c: Use it. + + * printf/doprnt.c: Add "N" for mpn, share some code between N, Q and Z. + * tests/misc/t-printf.c: Add tests. + * gmp-impl.h (ASSERT_CODE): New macro. + + * tests/mpbsd/t-mtox.c: New test. + * tests/mpbsd/Makefile.am: Add it. + (allfuns_LDADD): Don't link against libgmp when testing everything in + libmp can link. + +2002-01-07 Torbjorn Granlund + + * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Rewrite generic versions. + +2002-01-06 Kevin Ryde + + * mpn/generic/pre_divrem_1.c: Don't support size==0. + * tests/devel/try.c: Update. + + * mpn/generic/get_str.c: Add special case for base==10. + * gmp-impl.h (MP_BASES_CHARS_PER_LIMB_10, MP_BASES_BIG_BASE_10, + MP_BASES_BIG_BASE_INVERTED_10, MP_BASES_NORMALIZATION_STEPS_10): New + constants. + * tests/t-constants.c: Add checks. + * mpn/mp_bases.c [GENERATE_TABLE]: Print defines for gmp-impl.h, print + all standard bits-per-limb by default. + + * demos/pexpr.c, demos/expr/expr.h, demos/expr/expr-impl.h: Use + __GMP_PROTO. + + * gmp-h.in (mpn_divexact_by3c): Remove variables from prototype, to + keep out of application namespace. + +2002-01-04 Torbjorn Granlund + + * gmp-impl.h: Move _PROTO declaration to before its first usages. + +2002-01-04 Kevin Ryde + + * gmp-h.in, mp-h.in, tests/tests.h: Rename _PROTO to __GMP_PROTO, and + don't use #ifndef just define it ourselves. + * gmp-impl.h: Provide _PROTO as an alias for __GMP_PROTO, to avoid big + edits internally, for the moment. + +2002-01-03 Torbjorn Granlund + + * tune/speed.c (usage): Insert "\n\" into a string. + +2001-12-30 Torbjorn Granlund + + * mpn/pa64/udiv_qrnnd.c: Remove file. + * mpn/pa64w/udiv_qrnnd.c: Remove file. + + * gmp-impl.h (MPN_IORD_U): Change formatting (labels in pos 0, insns + indented by tab). + (MPN_INCR_U): Use "addl $1,foo; jc", not "incl foo; jz". + + * gmp-impl.h (udiv_qrnnd_preinv): Use plain subtract, not sub_ddmmss, + in one more case. + +2001-12-30 Kevin Ryde + + * mpn/generic/get_str.c (udiv_qrnd_unnorm): New macro. + Use "do while" for dig_per_u loop since it's non-zero. + * acconfig.h (HAVE_HOST_CPU_m68k etc): Add templates. + + * mpn/generic/mul_basecase.c, mpz/mul.c, mpz/n_pow_ui.c, + mpn/x86/pentium/mul_2.asm, tests/devel/try.c, tests/tests.h, + tests/refmpn.c, tune/speed.c, tune/speed.h, tune/common.c, + tune/many.pl (mpn_mul_2): New parameter style. + * gmp-impl.h (mpn_mul_2): Add prototype. + * configure.in (gmp_mpn_functions_optional): Add mul_2. + + * longlong.h (__vxworks__): Remove from powerpc tests, not correct, + not on its own at least. + + * tune/speed.c: Add "aas" to specify 0xAA..AA data. + + * tune/tuneup.c (print_define_end): Indicate "never" and "always". + +2001-12-29 Torbjorn Granlund + + * mpq/set_d.c: ANSI-fy. + * mpz/invert.c: Use PTR and SIZ (cosmetic change). + + * mpz/cong.c: Rename `xor' to `sign' to avoid C++ reserved word. + +2001-12-28 Torbjorn Granlund + + * mpn/sparc64/sqr_diagonal.asm: New file. + +2001-12-28 Kevin Ryde + + * mpn/generic/get_str.c: Avoid one mpn_divrem_1 by running main loop + only until msize==1. + + * tune/tuneup.c: Break up all() for clarity. + (USE_PREINV_DIVREM_1, USE_PREINV_MOD_1): Compare against plain + division udiv_qrnnd, not the tuned and possibly preinv version. + + * tune/freq.c: Split sysctl and sysctlbyname probes into separate + functions, shorten some identifiers, put descriptions inside + functions, define functions unconditionally and do nothing if + requisites not available. + + * mpz/inp_raw.c: Avoid a gcc 3.0 powerpc64 bug on AIX. + + * acinclude.m4, configure.in (GMP_C_RESTRICT): New macro. + + * mpfr/sin.c: Patch from Paul to fix sign of sin(3pi/2). + + * demos/calc/calc.y: Improve some error messages. + +2001-12-28 Torbjorn Granlund + + * mpn/sparc64/mul_1.asm: Rename r72 -> r80. + * mpn/sparc64/addmul_1.asm: Likewise. + +2001-12-27 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Misc formatting cleanups. + For switch case 2, replace `dn' with its value (2). + +2001-12-25 Torbjorn Granlund + + * tests/devel/mul_1.c: Add FIXED_XLIMB. + * tests/devel/addmul_1.c: Likewise. + * tests/devel/submul_1.c: Likewise. + + * tests/devel/add_n.c: Improve error message. + Accept command line argument for # of tests. + * tests/devel/sub_n.c: Likewise. + + * tests/devel/: Remove CLOCK settings. + + * mpn/sparc32/v9/mul_1.asm: Rewrite. + * mpn/sparc32/v9/addmul_1.asm: Rewrite. + * mpn/sparc32/v9/submul_1.asm: Rewrite. + +2001-12-24 Torbjorn Granlund + + * mpn/sparc64/mul_1.asm: Get rid of global constant 0.0 (L(noll)). + * mpn/sparc64/addmul_1.asm: Likewise. + +2001-12-23 Torbjorn Granlund + + * mpn/generic/get_str.c: Move final ASSERT to just before zero fill + loop. + +2001-12-22 Torbjorn Granlund + + * mpn/generic/get_str.c: Move ASSERTs out of loops. Split digit + generation code into two loops, saving a test of msize in the loop. + +2001-12-22 Kevin Ryde + + * mpn/x86/x86-defs.m4, mpn/x86/*/*.asm: Remove L / LF scheme putting + function name in local labels. + + * mpn/generic/get_str.c: Use mpn_preinv_divrem_1, add a couple of + ASSERTs. + + * mpn/generic/pre_divrem_1.c: New file. + * configure.in (gmp_mpn_functions): Add it. + * gmp-impl.h (mpn_preinv_divrem_1): Add prototype. + (USE_PREINV_DIVREM_1, MPN_DIVREM_OR_PREINV_DIVREM_1): New macros. + * tests/devel/try.c, tune/speed.c, tune/speed.h, tune/common.c, + tune/many.pl, tune/Makefile.am (mpn_preinv_divrem_1): Add testing and + measuring. + * tune/tuneup.c: Determine USE_PREINV_DIVREM_1. + * tune/pre_divrem_1.c: New file. + * tests/refmpn.c, tests/tests.h (refmpn_preinv_divrem_1): New function. + + * tests/mpz/t-io_raw.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add it. + + * mpz/inp_raw.c, mpz/out_raw.c: Rewrite. + * acinclude.m4, configure.in (AC_C_BIGENDIAN): New test. + * gmp-impl.h (BSWAP_LIMB): New macro. + + * acinclude.m4 (GMP_PROG_CC_WORKS): For a native compile, demand + executables will run, per AC_PROG_CC. This detects ABI=64 is unusable + in a native sparc solaris 7 build with the kernel in 32-bit mode. + * gmp.texi (ABI and ISA): Add notes on this, add an example configure + setting an ABI. + + * tune/tuneup.c, configure.in: Print the gmp-mparam.h filename. + * tune/tuneup.c: Print the CPU frequency. + + * tune/time.c, tune/speed.h: Add s390 "stck" method, flatten + conditionals in speed_time_init a bit, use have_* variables to let + some code go dead in speed_starttime and speed_endtime. + + * tune/freq.c (speed_cpu_frequency_irix_hinv): New function. + + * Makefile.am, configure.in: Restore mpfr. + + * configure.in: Add --with-readline, AC_PROG_YACC and AM_PROG_LEX. + * demos/calc/calc.y, demos/calc/calclex.l: Add readline support, add + lucnum function. + * demos/calc/Makefile.am: Add calcread.c, calc-common.h, use $(YACC), + $(LEX) and $(LEXLIB). + * demos/calc/calcread.c, demos/calc/calc-common.h, + demos/calc/calc-config-h.in, demos/calc/README: New files. + + * configure.in: Put demos/expr configs in expr-config.h. + * demos/expr/expr-config-h.in: New file. + * demos/expr/expr-impl.h: Renamed from expr-impl-h.in, get configs + from expr-config.h. + * demos/expr/Makefile.am: Update. + + * demos/expr/exprfr.c: Use mpfr_sin and mpfr_cos, remove some spurious + returns. + +2001-12-20 Torbjorn Granlund + + * mpn/sparc64/mul_1.asm: Trim an instruction. + * mpn/sparc64/addmul_1.asm: Likewise. + + * mpn/ia64/add_n.asm: Rewrite. + * mpn/ia64/sub_n.asm: Rewrite. + +2001-12-19 Torbjorn Granlund + + * mpn/ia64/mul_1.asm: Rewrite. + * mpn/ia64/addmul_1.asm: Rewrite. + * mpn/ia64/submul_1.c: Use TMP_ALLOC_LIMBS. + + * tests/devel/mul_1.c: Improve error message. + Accept command line argument for # of tests. + * tests/devel/addmul_1.c: Likewise. + * tests/devel/submul_1.c: Likewise. + +2001-12-18 Torbjorn Granlund + + * mpn/mips3/mul_1.asm: Add NOPs to save a cycle on R1x000. + +2001-12-18 Kevin Ryde + + * gmpxx.h (gmp_randclass): Don't allow copy constructors or "=", + implementation by Gerardo. + + * gmp-h.in (operator<<, operator>>): Remove parameter names from + prototypes, to keep out of user namespace. + + * acinclude.m4 (GMP_FUNC_VSNPRINTF): Let the test program work as C++. + +2001-12-16 Torbjorn Granlund + + * mpn/sparc64/mul_1.asm: Rewrite. + * mpn/sparc64/addmul_1.asm: Rewrite. + * mpn/sparc64/submul_1.asm: Rewrite. + + * mpn/sparc64/addmul1h.asm: Remove. + * mpn/sparc64/submul1h.asm: Remove. + * mpn/sparc64/mul1h.asm: Remove. + +2001-12-15 Kevin Ryde + + * gmp-h.in (mpn_add, mpn_add_1, mpn_cmp, mpn_sub, mpn_sub_1): Follow + __GMP_INLINE_PROTOTYPES for whether to give prototype with inline. + + * configure.in (i686*-*-*, pentiumpro-*-*, pentium[23]-*-*, + athlon-*-*, pentium4-*-*): Fall back on -march=pentium if + -march=pentiumpro or higher is not good (eg. solaris cmov). + +2001-12-12 Torbjorn Granlund + + * gmp-impl.h (MPN_ZERO): Rewrite generic version to be similar to + powerpc version. + +2001-12-12 Kevin Ryde + + * acinclude.m4 (GMP_PROG_CC_WORKS): Detect cmov problems with gcc + -march=pentiumpro on solaris 2.8. + + * tune/common.c, tune/speed.h: Allow for commas in count_leading_zeros + and count_trailing_zeros macros. + + * demos/expr/Makefile.am: Distribute exprfr.c and exprfra.c. + + * tune/Makefile.am (speed_ext_SOURCES): Should be speed-ext.c. + +2001-12-10 Torbjorn Granlund + + * mpn/s390/addmul_1.asm: New file. + * mpn/s390/submul_1.asm: New file. + * mpn/s390/mul_1.asm: New file. + * mpn/s390/gmp-mparam.h: Update. + +2001-12-07 Kevin Ryde + + * gmp-h.in, mp-h.in, gmp-impl.h: __GMP_DECLSPEC at start of + prototypes, for the benefit of Microsoft C. + + * gmp.texi (Introduction to GMP): Mention ABI and ISA section. + (Known Build Problems): Recommend GNU sed on solaris 2.6. + (Assigning Integers): Direct feedback to bug-gmp. + (References): Typo Knuth vol 2 is from 1998. + + * gmpxx.h (gmp_randclass): Add initializers for gmp_randinit_default + and gmp_randinit_lc_2exp_size. + gmp.texi (C++ Interface Random Numbers): Describe them. + + * tests/misc/t-locale.c, tests/cxx/t-locale.cc: Ensure mpf_clear is + done when the localconv override doesn't work. Reported by Mike + Jetzer. + + * printf/doprnti.c: Don't showbase on a zero mpq denominator. + * tests/misc/t-printf.c, tests/cxx/t-ostream.c: Add test cases. + +2001-12-04 Kevin Ryde + + * gmp.texi (Known Build Problems): Update to gmp_randinit_lc_2exp_size + for the sparc solaris 2.7 problem. + (Reentrancy): SCO ctype.h affects all text-based input functions. + (Formatted Output Strings): Correction to the mpf example. + (Single Limb Division): Correction, should be q-1 not q+1. + (Extended GCD): Clarify why single-limb is inferior. + (Raw Output Internals): Clarify size is twos complement, note limb + order means _mp_d doesn't get directly read or written. + (Contributors): Clarify mpz_jacobi. + And a couple of formatting tweaks elsewhere. + + * tests/cxx/t-headers.cc: New file. + * tests/cxx/Makefile.am: Add it. + + * gmpxx.h: Add , needed by mpf_class::get_str2. + + * gmp-h.in (mpq_inp_str, mpn_hamdist): Add __GMP_DECLSPEC. + +2001-12-01 Torbjorn Granlund + + * Version 4.0 released. + + * mpfr/README: Replace contents with explanation of why mpfr is gone. + +2001-12-01 Kevin Ryde + + * Makefile.am, configure.in: Temporarily remove mpfr, just leave a + README. + + * mpn/Makefile.am (EXTRA_DIST): Add Makeasm.am. + +2001-11-30 Gerardo Ballabio + + * tests/cxx/t-constr.cc, tests/cxx/t-expr.cc: New files. + * tests/cxx/Makefile.am (check_PROGRAMS): Add them. + +2001-11-30 Kevin Ryde + + * mpfr: Update to 2001-11-16. Patch TMP handling of agm.c and sqrt.c, + use plain mpn_sqrtrem in sqrt.c, separate .c files for floor and ceil, + disable an expression style assert in add1.c. + + * mpn/s370: Rename to s390. + * configure.in (s3[6-9]0*-*-*): Update. + * mpn/Makefile.am (TARG_DIST): Add s390. + + * mpz/fits_s.c, mpf/fits_s.c, mpf/fits_u.c: Remove files, unused since + change to .h style. + +2001-11-29 Torbjorn Granlund + + * gmp-h.in: Declare mpz_get_d_2exp and mpf_get_d_2exp. + * Makefile.am: Add mpz/get_d_2exp$U.lo and mpf/get_d_2exp$U.lo. + * mpf/Makefile.am: Add get_d_2exp.c. + * mpz/Makefile.am: Add get_d_2exp.c. + +2001-11-29 Kevin Ryde + + * mpn/*/gmp-mparam.h: Update measured thresholds. + * mpn/s370/gmp-mparam.h: New file. + + * mpz/millerrabin.c: Mark for internal use only, for now. + * gmp.texi (Number Theoretic Functions): Remove documentation. + +2001-11-28 Torbjorn Granlund + + * mpf/get_d_2exp.c: New file. + * mpz/get_d_2exp.c: New file. + + * mpz/realloc2.c: Fix typo. Make more similar to mpz_realloc. + * mpz/realloc.c: Use __GMP_REALLOCATE_FUNC_LIMBS. + +2001-11-27 Gerardo Ballabio + + * gmpxx.h, mpfrxx.h: Various updates and improvements. + +2001-11-27 Kevin Ryde + + * gmp.texi (Useful Macros and Constants): Add gmp_version, add @findex + for mp_bits_per_limb. + + * demos/perl/GMP.pm, demos/perl/GMP.xs: Use new style gmp_randinit's. + * demos/perl/test.pl: Update for this, and for mpz_perfect_power_p + handling of 0 and 1. + +2001-11-26 Torbjorn Granlund + + * mpz/realloc.c: Clear variable when decreasing allocation to less than + needed. Misc updates. + +2001-11-25 Kevin Ryde + + * tests/misc/t-locale.c: Avoid printf in the normal case, since the + replacement localeconv breaks it on SunOS 4. + + * gmp.texi (Build Options, Notes for Package Builds): Note libgmpxx + depends on libgmp from same GMP version. + + * acinclude.m4, configure.in (GMP_FUNC_SSCANF_WRITABLE_INPUT): New + test. + * scanf/sscanf.c, scanf/vsscanf.c: Use it to ensure sscanf input is + writable, if necessary. + + * tests/misc/t-scanf.c: Ensure sscanf arguments are writable, always. + * configure.in (AC_CHECK_DECLS): Remove sscanf, no longer required. + + * configure.in (none-*-*): Fix default CFLAGS setups. + + * doc/configuration: Misc updates. + +2001-11-23 Kevin Ryde + + * mpz/init2.c, mpz/realloc2.c: New files. + * Makefile.am, mpz/Makefile.am: Add them. + * gmp-h.in: Add prototypes. + * gmp.texi (Efficiency): Mention these instead of _mpz_realloc. + (Initializing Integers): Add documentation, reword other parts. + +2001-11-22 Torbjorn Granlund + + * mpn/cray/ieee/addmul_1.c: Fix logic for more_carries scalar loop. + * mpn/cray/ieee/submul_1.c: Likewise. + +2001-11-20 Kevin Ryde + + * gmp.texi (Known Build Problems): Note an out of memory on DJGPP. + (Function Classes): Update function counts. + Misc tweaks elsewhere. + + * configure.in (AC_CHECK_DECLS): Add sscanf. + * tests/misc/t-scanf.c: Use it, for the benefit of SunOS 4. + + * tal-debug.c, gmp-impl.h: More checks of TMP_DECL/TMP_MARK/TMP_FREE + consistency. + + * mpfr/Makefile.am (AR): Explicit AR=@AR@ to override automake + default, necessary for powerpc64 ABI=aix64. + +2001-11-18 Torbjorn Granlund + + * mpz/powm.c: Move TMP_MARK to before any TMP_ALLOCs. + +2001-11-18 Kevin Ryde + + * configure.in (--enable-fft): Make this the default. + * gmp.texi (Build Options): Update. + + * Makefile.am (libmp_la_DEPENDENCIES): Revise mpz objects needed by + new mpz/powm.c. + + * gmp.texi (Random State Initialization): Add gmp_randinit_default and + gmp_randinit_lc_2exp_size, mark gmp_randinit as obsolete. + (Random State Seeding): New section, taken from "Random State + Initialization" and "Random Number Functions". + + * configure.in (AC_CHECK_DECLS): Add fgetc, fscanf, ungetc. + * scanf/fscanffuns.c: Use these, for the benefit of SunOS 4. + + * gmp-impl.h, gmp-h.in (__gmp_default_fp_limb_precision): Move back to + gmp-impl.h now not required for inlined mpf. + + * randlc2s.c (gmp_randinit_lc_2exp_size): New file, the size-based LC + selection from rand.c. + * rand.c (gmp_randinit): Use it. + * randdef.c (gmp_randinit_default): New file. + * gmp-impl.h (RANDS): Use it. + (ASSERT_CARRY): New macro. + * gmp-h.in (gmp_randinit_default, gmp_randinit_lc_2exp_size: Add + prototypes. + * Makefile.am (libgmp_la_SOURCES): Add randdef.c and randlc2s.c. + + * printf/asprntffuns.c: Include config.h before using its defines. + + * gmp-impl.h: Move C++ to top of file to avoid the memset + redefine upsetting configure tests. Remove since + in gmp.h suffices. + +2001-11-16 Kevin Ryde + + * gmp.texi (Integer Exponentiation): mpz_powm supports negative + exponents. + (Assigning Floats, I/O of Floats, C++ Formatted Output, C++ Formatted + Input): Decimal point follows locale. + (Formatted Output Strings): %n accepts any type. + (Formatted Input Strings): New section. + (Formatted Input Functions): New section. + (C++ Class Interface): Corrections and clarifications suggested by + Gerardo. + + * scanf/doscan.c, scanf/fscanf.c, scanf/fscanffuns.c, scanf/scanf.c, + scanf/sscanf.c, scanf/sscanffuns.c, scanf/vfscanf.c, scanf/vscanf.c, + scanf/vsscanf.c, scanf/Makefile.am, tests/misc/t-scanf.c: New files. + * gmp-h.in, gmp-impl.h, Makefile.am, configure.in: Consequent + additions. + + * tests/misc: New directory. + * tests/misc/Makefile.am: New file. + * tests/misc/t-locale.c: New file. + * tests/misc/t-printf.c: Moved from tests/printf. + * tests/printf: Remove directory. + * configure.in, tests/Makefile.am: Update. + + * tests/cxx/t-locale.cc: New file. + * tests/cxx/Makefile.am: Add it. + + * mpf/set_str.c, cxx/ismpf.cc: Use localeconv for the decimal point. + + * acinclude.m4 (GMP_ASM_X86_MCOUNT): Update to $lt_prog_compiler_pic + for current libtool, recognise non-PIC style mcount in windows DLLs. + + * gmp-impl.h (__gmp_replacement_vsnprintf): Add prototype. + + * gmp-impl.h (__gmp_rands, __gmp_rands_initialized, + modlimb_invert_table): Add __GMP_DECLSPEC for the benefit of test + programs using them from a windows DLL. + * longlong.h (__clz_tab): Ditto. + + * mpn/x86/t-zdisp2.pl: New file. + + * mpn/x86/pentium4/README: New file. + +2001-11-15 Torbjorn Granlund + + * mpz/powm.c (HANDLE_NEGATIVE_EXPONENT): #define to 1. + * tests/mpz/reuse.c (main): Use mpz_invert to avoid undefined mpz_powm + cases. + +2001-11-14 Torbjorn Granlund + + * mpz/powm_ui.c: Rewrite along the lines of mpz/powm.c (except still no + redc). + * mpz/powm.c: Adjust for negative b, after exponentiation done. Add + (still disabled) code for handling negative exponents. Misc cleanups. + +2001-11-14 Kevin Ryde + + * mpf/out_str.c: Use localeconv for the decimal point. + + * tests/misc.c (tests_rand_end): Use time() if gettimeofday() not + available (eg. on mingw). + +2001-11-11 Kevin Ryde + + * gmp-h.in: Remove parameter names from prototypes, to keep out of + application namespace. + +2001-11-08 Kevin Ryde + + * acinclude.m4 (GMP_GCC_VERSION_GE): Fix sed regexps to work on + Solaris 8. + + * printf/doprnt.c: Support %n of all types, per glibc. + + * gmp-h.in, gmp-impl.h, mpf/abs.c, mpf/neg.c, mpf/get_prc.c, + mpf/get_dfl_prec.c, mpf/set_dfl_prec.c, mpf/set_prc_raw.c, + mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Revert mpf inlining, in order + to leave open the possibility of keeping binary compatibility if mpf + becomes mpfr. + + * mpn/x86/k7/mmx/lshift.asm, mpn/x86/k7/mmx/rshift.asm: Use Zdisp to + force code size for computed jumps. + * mpn/x86/k6/mod_34lsub1.asm, mpn/x86/k6/k62mmx/copyd.asm: Use Zdisp + to force good code alignment. + * mpn/x86/x86-defs.m4 (Zdisp): More instructions. + + * mpn/x86/pentium/sqr_basecase.asm, mpn/x86/k7/mmx/mod_1.asm, + mpn/x86/k7/mmx/popham.asm: Remove some unnecessary "0" address offsets. + + * mpq/set_si.c, mpq/set_ui.c: Set _mp_den._mp_size correctly if den==0. + +2001-11-07 Torbjorn Granlund + + * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Work around gas bug. + + * mpn/asm-defs.m4 (PROLOGUE): Change alignment to 8 (probably a good + idea in general; required for hppa/hppa1_1/udiv_qrnnd.asm). + +2001-11-06 Torbjorn Granlund + + * gmp-impl.h (MPN_COPY_INCR): Prepend local variable by `__'. + (MPN_COPY_DECR): Likewise. + +2001-11-05 Torbjorn Granlund + + * mpz/powm.c: Call mpn functions, not mpz functions, for computation + mod m. Streamline allocations to use a mixture of stack allocation and + heap allocation. Add currently disabled phi(m) exponent reduction + code. Misc optimizations and cleanups. + +2001-11-05 Kevin Ryde + + * mpq/inp_str.c: Remove unused variable "ret". + + * mpn/x86/k7/sqr_basecase.asm: Fix a 0(%edi) to use Zdisp, so the + computed jumps hit the right spot on old gas. + + * mpq/canonicalize.c: DIVIDE_BY_ZERO if denominator is zero. + + * mpn/lisp/gmpasm-mode.el (comment-start-skip): Correction to the way + the first \( \) pair is setup. + (gmpasm-font-lock-keywords): Don't fontify the space before a "#" etc. + Misc tweaks to some comments. + +2001-11-03 Torbjorn Granlund + + * tests/refmpn.c (refmpn_overlap_p): Reverse return values. + +2001-11-02 Kevin Ryde + + * tune/many.pl: Setup CFLAGS_PIC and ASMFLAGS_PIC, since that's no + longer done by configure. + + * mpn/x86/pentium4/mmx/popham.asm: New file. + + * mpn/x86/x86-defs.m4 (psadbw): New macro. + * mpn/x86/k7/mmx/popham.asm: Use it. + + * tests/refmpn.c (refmpn_overlap_p): New function, independent of + MPN_OVERLAP_P. + +2001-10-31 Torbjorn Granlund + + * tests/mpz/t-powm.c: Print proper error message when finding + discrepancy. + +2001-10-31 Kevin Ryde + + * mpn/x86/pentium/mod_34lsub1.asm: New file. + * mpn/x86/k7/mod_34lsub1.asm: New file. + * mpn/x86/mod_34lsub1.asm: New file. + +2001-10-30 Kevin Ryde + + * tests/printf/t-printf.c (check_misc): Add checks from the glibc docs. + (check_vasprintf, check_vsnprintf): Run these unconditionally. + + * gmp-impl.h (ASSERT_MPQ_CANONICAL): New macro. + * mpq/cmp.c, mpq/cmp_si.c, mpq/cmp_ui.c, mpq/equal.c: Add ASSERTs for + canonical inputs, where correctness depends on it. + + * mpn/lisp/gmpasm-mode.el (comment-start-skip): Add "dnl". + +2001-10-27 Torbjorn Granlund + + * demos/pexpr.c: Remove some unused variables. + (main): Allocate more buffer space to accommodate minus sign. + +2001-10-27 Kevin Ryde + + * gmp-impl.h, mpn/asm-defs.m4, configure.in, tune/speed.h, + tune/speed.c, tune/common.c, tune/many.pl, tests/devel/try.c: Add + mpn_mod_34lsub1. + * tests/refmpn.c, tests/tests.h (refmpn_mod_34lsub1): New function. + + * mpn/generic/mod_34lsub1.c: New file. + * mpn/x86/k6/mod_34lsub1.asm: New file. + * mpn/x86/pentium4/sse2/mod_34lsub1.asm: New file. + * mpn/x86/x86-defs.m4 (Zdisp): Add another instruction. + + * gmp-h.in, gmpxx.h: Use not whole . + + * gmp.texi (Known Build Problems): Add note on test programs with + Windows DLLs. + +2001-10-26 Kevin Ryde + + * tests/mpq/t-get_d.c: Limit the size of "eps" for vax. + + * gmp.texi (maybepagebreak): New macro, use it in a few places. + (Notes for Particular Systems): C++ Windows DLLs are not supported. + (Known Build Problems): Note sparc solaris 2.7 gcc 2.95.2 shared + library problems. + (Autoconf): Tweak version numbers shown. + (Integer Roots): mpz_perfect_square_p and mpz_perfect_power_p consider + 0 and 1 perfect powers, mpz_perfect_power_p accepts negatives. + (Number Theoretic Functions): Add mpz_millerrabin, combined with a + reworded mpz_probab_prime_p. + (Formatted Output Strings): Misc clarifications. + (Formatted Output Functions): gmp_asprintf, gmp_vasprintf, + gmp_snprintf, gmp_vsnprintf always available. + (C++ Formatted Output): Misc rewordings. + (Formatted Input): New chapter. + (C++ Class Interface): New chapter, by Gerardo and me. + (Language Bindings): Update GMP++ now in GMP. + (C++ Interface Internals): New section, by Gerardo and me. + + * printf/repl-vsnprintf.c: New file. + * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am: Use it + if libc vsnprintf missing or bad. + * configure.in (AC_CHECK_FUNCS): Add strnlen. + + * printf/snprntffuns.c, printf/vasprintf.c: Use + __gmp_replacement_vsnprintf if libc vsnprintf not available. + * printf/asprintf.c, printf/snprintf.c, printf/vasprintf.c, + printf/vsnprintf.c: Provide these functions unconditionally. + * acinclude.m4 (GMP_FUNC_VSNPRINTF): Remove warning about omissions + when vsnprintf not available. + +2001-10-24 Kevin Ryde + + * configure, aclocal.m4: Regenerate with a libtool patch for a stray + quote in AC_LIBTOOL_PROG_LD_SHLIBS under mingw and cygwin. + + * gmp-impl.h (modlimb_invert): More comments. + + * printf/doprnt.c, printf/doprnti.c: Use the precision field to print + leading zeros. + * tests/printf/t-printf.c: Test this. + * cxx/osdoprnti.cc, gmp-impl.h: Ignore precision in operator<<. + + * tune/speed.c, tune/speed.h, tune/common.c: Add mpn_mul_1_inplace. + +2001-10-23 Torbjorn Granlund + + * mpz/pprime_p.c (mpz_millerrabin): Remove function and its descendant. + + * mpz/millerrabin.c: New file with code from pprime.c. + * mpz/Makefile.am: Compile millerrabin.c. + * Makefile.am (MPZ_OBJECTS): Ditto. + * gmp-h.in: Declare mpz_millerrabin. + +2001-10-22 Torbjorn Granlund + + * tests/mpz/t-perfsqr.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add it. + + * demos/factorize.c (factor): Check for number to factor == 0. + (main): When invoked without arguments, read from stdin. + + * mpz/perfpow.c: Add code to handle negative perfect powers ((-b)^odd). + Treat 0 and 1 as perfect powers. + + * mpn/sparc32/v9/sqr_diagonal.asm: Jump past .align. + +2001-10-21 Torbjorn Granlund + + * mpn/generic/perfsqr.c (sq_res_0x100): Remove bogus final `,'. + (mpn_perfect_square_p): Suppress superfluous `&1' in sq_res_0x100 test. + (mpn_perfect_square_p, O(n) test): Improve comments. Combine remainder + tests for some small primes. Don't share code for different limb + sizes. Use single `if' with many `||' for better code density. + +2001-10-22 Kevin Ryde + + * demos/perl/GMP.xs (mutate_mpz, tmp_mpf_grow): Make these "static". + + * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm + (mpn_popcount_table): Use GSYM_PREFIX. + +2001-10-19 Kevin Ryde + + * mpn/x86/*.asm: Add some measured speeds on various x86s. + + * tests/mpz/reuse.c, tests/mpf/reuse.c: Disable tests when using a + windows DLL, because certain global variable usages won't compile. + + * configure.in (AC_CHECK_FUNCS): Add alarm. + * tests/spinner.c: Conditionalize alarm and SIGALRM availability, for + the benefit of mingw32. + + * acinclude.m4 (GMP_ASM_TYPE, GMP_ASM_SIZE): Suppress .type and .size + on COFF. + + * acinclude.m4 (GMP_PROG_HOST_CC): New macro. + * configure.in: Use it for windows DLL cross-compiles. + * aclocal.m4, configure: Regenerate with libtool patch to hold HOST_CC + in the generated libtool script. + + * aclocal.m4, configure: Regenerate with libtool patch to suppress + warnings when probing command line limit on FreeBSD. + + * demos/qcn.c (M_PI): Define if not already provided, helps mingw32. + +2001-10-17 Kevin Ryde + + * printf/doprnt.c: Use for intmax_t. + + * longlong.h: Recognise __sparcv8 for gcc on Solaris. Reported by + Mark Mentovai . + + * gmp-impl.h (gmp_allocated_string): No need for inline on member funs. + +2001-10-16 Kevin Ryde + + * gmp.texi (Debugging): Add mpatrol. + (Integer Comparisons, Comparing Rationals, Float Comparison): Index + entries for sign tests. + (I/O of Floats): Clarify mpf_out_str exponent is in decimal. + (C++ Formatted Output): mpf_t operator<< exponent now in decimal. + (FFT Multiplication): Use an ascii art sigma. + (Contributors): Add Gerardo Ballabio. + + * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Always give mpf_t + exponent in decimal, irrespective of ios::hex or ios::oct. + * tests/cxx/t-ostream.cc (check_mpf): Update. + + * printf/doprnt.c: Support %lln and %hhn. + + * mpn/x86/pentium4/sse2/submul_1.asm: Use a psubq to negate the + initial carry (helps the submul_1c case), and improve the comments. + +2001-10-11 Kevin Ryde + + * acinclude.m4, configure.in (GMP_IMPL_H_IEEE_FLOATS): New macro. + + * ltmain.sh: Send some rm errors to /dev/null, helps during compiles + on Solaris 2.7 and HP-UX 10. + + * tal-notreent.c: Renamed from stack-alloc.c. + * Makefile.am, acinclude.m4, gmp-impl.h: Update. + + * gmp-h.in: Don't give both prototypes and inlines, except on gcc. + + * gmp-h.in, gmp-impl.h: Use #includes to get necessary standard + classes, add std:: to prototypes. + * cxx/*.cc, tests/cxx/t-ostream.cc: Add "use namespace std". + * acinclude.m4 (GMP_PROG_CXX_WORKS): Ditto. + + * tests/*/Makefile.in, mpfr/tests/Makefile.in: Regenerate with + automake patch to avoid Ultrix problem with empty $(TESTS). + + * */Makefile.in: Regenerate with automake patch to only rm *_.c in + "make clean" when ansi2knr actually in use, helps DOS 8.3. + + * Makefile.in: Regenerate with automake patch to fix stamp-h + numbering, avoiding an unnecessary config.status run. + +2001-10-09 Torbjorn Granlund + + * mpn/hppa/hppa1_1/udiv_qrnnd.asm: Use L macros for labels. + Quote L reloc operator. + + * gmp-impl.h: Declare class string. + + * mpn/asm-defs.m4 (INT32, INT64): Quote $1 to prevent further + expansion. + + * mpn/alpha/ev6/mul_1.asm: New file. + +2001-10-09 Kevin Ryde + + * gmp.texi (Introduction to GMP): Add pentium 4 to optimized CPUs. + (Build Options): Note macos directory. + (Notes for Package Builds): GMP 4 series binary compatible with 3. + (Known Build Problems): Remove $* and ansi2knr note, now fixed, except + possibly under --host=none. + (Formatted Output Strings): Remove -1 prec for all digits. + + * mpz/add.c, mpz/sub.c: Don't use mpz path on #include (helps macos). + * mpbsd/Makefile.am (INCLUDES): Add -I$(top_srcdir)/mpz. + + * printf/doprnt.c, tests/printf/t-printf.c: Remove support for %.*Fe + prec -1 meaning all digits. + + * acinclude.m4 (GMP_PROG_AR): Override libtool, use AR_FLAGS="cq". + (GMP_HPC_HPPA_2_0): Print version string to config.log. + + * Makefile.am (AUTOMAKE_OPTIONS): Remove check-news (permission notice + in NEWS file is too big). + (dist-hook): Don't distribute numbered or unnumbered emacs backups. + + * Makefile.am, cxx/Makefile.am: Updates for Gerardo's stuff. + +2001-10-09 Gerardo Ballabio + + * cxx/isfuns.cc: New file. + * gmp-impl.h: Add prototypes. + * cxx/ismpf.cc, cxx/ismpq.cc, cxx/ismpz.cc: New files. + * gmp-h.in: Add prototypes. + * gmpxx.h, mpfrxx.h: New files. + +2001-10-08 Kevin Ryde + + * configure.in (with_tags): Establish a default based on --enable-cxx. + + * aclocal.m4: Regenerate with libtool patches for sed char range to + help Cray, LTCC quotes and +Z warnings grep to help HP-UX. + + * gmp-impl.h (doprnt_format_t, doprnt_memory_t, doprnt_reps_t, + doprnt_final_t): Use _PROTO. + +2001-10-05 Torbjorn Granlund + + * mpn/asm-defs.m4 (INT32, INT64): Use LABEL_SUFFIX. + + * mpn/hppa: Convert files to `.asm'. + +2001-10-05 Kevin Ryde + + * mpn/Makeasm.am (.S files): Revert to separate CPP and CCAS, use + cpp-ccas, and only pass CPPFLAGS to CPP, not whole CFLAGS. + * mpn/cpp-ccas: New file. + * mpn/Makefile.am (EXTRA_DIST): Add it. + + * tune/common.c, tune/speed.h: Change SPEED_ROUTINE_MPN_COPY_CALL uses + to SPEED_ROUTINE_MPN_COPY or new SPEED_ROUTINE_MPN_COPY_BYTES. Avoids + macro expansion problems on Cray. + + * configure.in (AC_PROG_CXXCPP): Add this, to make libtool happier. + +2001-10-04 Torbjorn Granlund + + * mpz/rrandomb.c (gmp_rrandomb): Change bit_pos to be 0-based (was + 1-based); shift 2 (was 1) when making bit mask. These two changes + avoid undefined shift counts. + (gmp_rrandomb): Avoid most calls to _gmp_rand by caching random values. + + * mpn/generic/random2.c: Changes for mirroring mpz/rrandomb.c. + +2001-10-04 Kevin Ryde + + * gmp.texi (Build Options): Add --enable-cxx. + (Notes for Particular Systems): Mention pentium4 performance and SSE2. + (Known Build Problems): Remove vax jsobgtr note, no longer needed. + (Converting Floats): Tweak mpf_get_str description. + (Low-level Functions): Correction to mpn_gcdext destination space + requirements. + (C++ Formatted Output): New section. + (Language Bindings): Add ALP + (Contributors): Add Paul Zimmermann's square root, update my things. + + * acinclude.m4 (GMP_PROG_CC_IS_GNU, GMP_PROG_CXX_WORKS): Send compiler + errors to config.log. + + * mpq/Makefile.am (INCLUDES): Remove -DOPERATION_$*, not needed. + + * mpn/x86/*.asm: Change references to old README.family to just README. + + * mpz/README: Remove file, now adequately covered in the manual. + +2001-10-03 Torbjorn Granlund + + * mpn/x86/pentium4/copyi.asm: New file. + * mpn/x86/pentium4/copyd.asm: New file. + + * gmp-impl.h: Implement separate MPN_COPY_INCR and MPN_COPY_DECR + macros for CRAY systems. + (CRAY _MPN_COPY): Delete. + +2001-10-02 Kevin Ryde + + * tests/mpz/t-popcount.c (check_data): Use "~ (unsigned long) 0" to + avoid compiler warnings on sco. + + * mpbsd/Makefile.am: Compile mpz files directly, no copying. + Use mpz/add.c and mpz/sub.c rather than mpz/aors.c. + (INCLUDES): Remove -DOPERATION_$*, no longer needed (by mpz). + + * mpz/aors.h: Renamed from mpz/aors.c. + * mpz/add.c, mpz/sub.c: New files, using mpz/aors.h. + * mpz/aors_ui.h: Renamed from mpz/aors_ui.c. + * mpz/add_ui.c, mpz/sub_ui.c: New files, using mpz/aors_ui.h. + * mpz/fits_s.h: Renamed and adapted from mpz/fits_s.c. + * mpz/fits_sshort.c, mpz/fits_sint.c, mpz/fits_slong.c: New files. + * mpz/mul_i.h: Renamed from mpz/mul_siui.c. + * mpz/mul_ui.c, mpz/mul_ui.c: New files, using mpz/mul_i.h. + * mpz/Makefile.am: Consequent updates. + (INCLUDES): Remove -DOPERATION_$*. + + * mpf/fits_s.h: Renamed and adapted from mpf/fits_s.c. + * mpf/fits_sshort.c, mpf/fits_sint.c, mpf/fits_slong.c: New files. + * mpf/fits_u.h: Renamed and adapted from mpf/fits_u.c. + * mpf/fits_ushort.c, mpf/fits_uint.c, mpf/fits_ulong.c: New files. + * mpf/Makefile.am: Consequent updates. + (INCLUDES): Remove -DOPERATION_$*. + + * cxx/osfuns.cc (__gmp_doprnt_params_from_ios): Don't use ios::hex etc + as cases in a switch, they're not constant in g++ 3.0. + + * mpn/Makeasm.am (.s.o, .s.obj, .S.o, .S.obj, .asm.o, .asm.obj): + Locate source file with test -f the same as automake. + (.S): Let CCAS do the preprocessing, and run libtool for .S.lo. + (.asm.lo): Run libtool via m4-ccas to get new style foo.lo right. + (COMPILE_FLAGS): Add $(DEFAULT_INCLUDES), per new automake. + * mpn/m4-ccas: New file. + * mpn/Makefile.am (EXTRA_DIST): Add it. + * mpn/asm-defs.m4: Add m4_not_for_expansion(`DLL_EXPORT'). + * mpn/x86/x86-defs.m4: Undefine PIC if DLL_EXPORT is set. + * configure.in (CFLAGS_PIC, ASMFLAGS_PIC): Remove, no longer needed. + + * acinclude.m4 (GMP_FUNC_VSNPRINTF): Warn what's omitted when + vsnprintf not available. + + * mpn/underscore.h: Remove file, not used since m68k converted to asm. + * mpn/Makefile.am (EXTRA_DIST): Remove it. + + * tests/refmpz.c: Add , for free(). + +2001-10-01 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/submul_1.asm: Apply some algebraic + simplifications. + * mpn/x86/pentium4/sse2/addmul_1.asm: Comment. + +2001-10-01 Kevin Ryde + + * configure.in (--enable-cxx): New option for C++ support. + Add cxx and tests/cxx subdirectories. + * ltmain.sh, aclocal.m4: Update to libtool 2001-09-30. + + * cxx/Makefile.am, cxx/Makefile.in, cxx/osdoprnti.cc, cxx/osfuns.cc, + cxx/osmpf.cc, cxx/osmpq.cc, cxx/osmpz.cc: New files. + * Makefile.am: Add them, in new libgmpxx. + * gmp-h.in, gmp-impl.h: Prototypes and support. + * tests/cxx/Makefile.am, tests/cxx/Makefile.in, + tests/cxx/t-ostream.cc: New files. + + * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL, + SPEED_ROUTINE_MPN_GCDEXT_ONE): mpn_gcdext needs size+1 for + destinations. Found by Torbjorn. + + * gmp-h.in (__GNU_MP__, __GNU_MP_VERSION): Bump to 4.0. + * mp-h.in (__GNU_MP__): Ditto. + * gmp.texi, Makefile.am, compat.c: Amend version 3.2 to 4.0. + + * acinclude.m4 (GMP_PROG_CXX_WORKS): New macro. + (GMP_PROG_CC_WORKS): Write "conftest" test program, not a.out. + + * gmp-impl.h (struct gmp_asprintf_t): Moved from printf/vasprintf.c. + (GMP_ASPRINTF_T_INIT): New macro. + (GMP_ASPRINTF_T_NEED): New macro, adapted from vasprintf.c NEED(). + * printf/vasprintf.c: Use these. + + * printf/asprntffuns.c: New file. + * printf/Makefile.am, Makefile.am: Add it. + * printf/asprntffuns.c, printf/vasprintf.c, gmp-impl.h + (__gmp_asprintf_memory, __gmp_asprintf_reps, __gmp_asprintf_final): + Move to asprntffuns.c, rename to __gmp and make global, remove + spurious formal parameters from __gmp_asprintf_final. + + * configure.in (j90-*-*, sv1-*-*): Don't duplicate $path in $add_path. + (*-*-mingw*): Don't assemble with -DPIC (as per cygwin). + + * printf/snprntffuns.c (gmp_snprintf_final): Remove spurious formal + parameters. + + * tune/tuneup.c (POWM_THRESHOLD): Reduce stop_factor to 1.1 to help + Cray vector systems. + + * tests/misc.c (tests_rand_start): Print GMP_CHECK_RANDOMIZE=NN to + facilitate cut and paste when re-running. + * tests/mpz/t-inp_str.c (check_data): Add more diagnostic prints. + +2001-09-30 Kent Boortz + + * macos/configure, macos/Makefile.in, macos/README: Updates for gmp 4. + * gmp-h.in (_GMP_H_HAVE_FILE): Recognise Apple MPW. + +2001-09-30 Torbjorn Granlund + + * mpn/cray/ieee/submul_1.c: Rewrite. Streamline multiplications; + use `majority' logic. + +2001-09-27 Torbjorn Granlund + + * gmp-h.in (__GMPN_AORS_1): Rewrite to work around Cray compiler bug. + +2001-09-26 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/gmp-mparam.h: New file. + +2001-09-26 Kevin Ryde + + * mpn/x86/pentium4/sse2/dive_1.asm: New file. + * mpn/x86/pentium4/sse2/submul_1.asm: New file. + * mpn/x86/pentium4/sse2/sqr_basecase.asm: New file. + + * mpn/x86/pentium/copyi.asm: New file, based on past work by Torbjorn. + * mpn/x86/pentium/copyi.asm: New file, ditto. + * mpn/x86/pentium/com_n.asm: Rewrite, ditto. + + * printf/snprntffuns.c (gmp_snprintf_format): Copy va_list in case + vsnprintf trashes it. + * printf/vasprintf.c (gmp_asprintf_format): Ditto. + * gmp-impl.h, doprnt.c (va_copy): Move to gmp-impl.h. + + * tests/mpz/t-cmp_d.c (check_low_z_one): Patch by Torbjorn for vax + limited float range. + +2001-09-23 Torbjorn Granlund + + * mpn/vax/lshift.s: Change `jsob*' to `sob*'. + * mpn/vax/rshift.s: Likewise. + +2001-09-23 Kevin Ryde + + * mpn/x86/pentium4/sse2/mul_basecase.asm: Some simple but real code. + + * printf/doprnt.c: Use va_copy for va_list variables, copy function + parameter in case it's call-by-reference. + + * tune/freq.c (speed_cpu_frequency_bsd_dmesg): New function. + (speed_cpu_frequency_table): Use it. + + * tune/many.pl (popcount, hamdist): Fix declared return value. + (sb_divrem_mn): Remove a spurious duplicate entry. + (CLEAN): Add tmp-$objbase.c when using that for .h files. + (macro_speed): Give a default for .h files. + Add ATTRIBUTE_CONST or __GMP_ATTRIBUTE_PURE as appropriate. + + * tune/speed.h (SPEED_ROUTINE_MPN_MOD_CALL, + SPEED_ROUTINE_MPN_PREINV_MOD_1, SPEED_ROUTINE_MPN_POPCOUNT, + SPEED_ROUTINE_MPN_HAMDIST, SPEED_ROUTINE_MPN_GCD_1N, + SPEED_ROUTINE_MPN_GCD_1_CALL, SPEED_ROUTINE_MPZ_JACOBI): Use return + values so gcc 3 won't discard calls to pure or const functions. + (mpn_mod_1_div, mpn_mod_1_inv): Add __GMP_ATTRIBUTE_PURE. + +2001-09-22 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/mul_basecase.asm: New file, placeholder + for real code, hiding the default x86 mul_basecase.asm. + +2001-09-22 Kevin Ryde + + * configure.in (AC_PREREQ): Bump to 2.52. + (m4_pattern_forbid, m4_pattern_allow): New calls, forbid GMP_. + (AC_CHECK_HEADERS): Remove sys/types.h, already done by autoconf. + * acinclude.m4, configure.in (GMP_GCC_NO_CPP_PRECOMP): New macro. + + * tests/devel/try.c (TYPE_PREINV_MOD_1): Don't run size==0. + (malloc_region): Need fd=-1 for mmap MAP_ANON on BSD. + +2001-09-20 Torbjorn Granlund + + * mpz/cong.c (mpz_congruent_p): Fix one-limb c + + * mpn/x86/pentium4/sse2/diveby3.asm: New file. + * mpn/x86/pentium4/sse2/mode1o.asm: New file. + +2001-09-16 Kevin Ryde + + * printf/doprnt.c: '#' means showpoint and showtrailing for %e, %f, %g. + * tests/printf/t-printf.c (check_f): More test cases. + +2001-09-15 Torbjorn Granlund + + * gmp-h.in (__GMPN_AORS_1): Remove param TEST, add OP and CB. + Postpone zeroing of (cout). + (__GMPN_ADD_1, __GMPN_SUB_1): Corresponding changes. + +2001-09-14 Kevin Ryde + + * ChangeLog: Merge in tests/rand/ChangeLog. + * tests/rand/ChangeLog: Remove file. + + * printf/doprnt.c: Fix handling of a plain format after a GMP one; no + need to protect against negative precision internally. + * tests/printf/t-printf.c (check_misc): More checks. + +2001-09-12 Torbjorn Granlund + + * mpn/cray/ieee/invert_limb.c: Add a PROLOGUE in a comment to have + HAVE_NATIVE_... defined. + +2001-09-11 Kevin Ryde + + * configure.in, gmp-h.in (__GMP_HAVE_HOST_CPU_FAMILY_power, + __GMP_HAVE_HOST_CPU_FAMILY_powerpc): New AC_SUBSTs. + * gmp-h.in (__GMPN_COPY_INCR): Use them to select the power/powerpc + code, rather than preprocessor defines. + + * acinclude.m4, configure.in (GMP_H_ANSI): New macro. + + * gmp-h.in (__GMP_EXTERN_INLINE): Add a definition for SCO 8 cc. + + * gmp-h.in, version.c (gmp_version): Make the pointer "const" as well + as the string. + + * acinclude.m4, configure.in (GMP_PROG_CC_IS_XLC): Recognise xlc when + invoked under another name (cc, xlc128, etc). + * acinclude.m4 (GMP_PROG_CC_IS_GCC): Print a message when recognised. + +2001-09-11 Torbjorn Granlund + + * gmp-h.in: Let __DECC mean __GMP_HAVE_CONST, etc. + * mp-h.in: Likewise. + +2001-09-10 Torbjorn Granlund + + * mpn/x86/pentium4/mmx/lshift.asm: New file. + * mpn/x86/pentium4/mmx/rshift.asm: New file. + + * tests/mpn/t-iord_u.c (check_incr_data): Work around HP compiler bug. + (check_decr_data): Likewise. + +2001-09-08 Kevin Ryde + + * gmp.texi (Integer Logic and Bit Fiddling): Update mpz_hamdist + behaviour, clarify mpz_popcount a touch. + (Language Bindings): Add mlton, fix alphabetical order. + (Single Limb Division): Describe 2 or 1/2 limbs at a time style. + + * configure.in (AC_CHECK_FUNCS): Add mmap. + * tests/devel/try.c (malloc_region): Use mmap if available. + + * tests/refmpz.c, tests/tests.h (refmpz_hamdist): New function. + * tests/mpz/t-hamdist.c: New file. + * tests/mpz/Makefile.am: Add it. + + * mpz/hamdist.c: Support neg/neg operands. + + * macos/Makefile.in: Remove dual compile of mpq/aors.c and + mpn/generic/popham.c. + + * gmp-impl.h (popc_limb): New macro, adapted from mpn/generic/popham.c. + For 64-bits reuse 0x33...33 constant. + * mpn/generic/popcount.c, mpn/generic/hamdist.c: Split from popham.c, + use popc_limb macro, remove unused "i", don't bother with "register" + qualifiers. + * mpn/generic/popham.c: Remove file. + + * ltmain.sh, configure, aclocal.m4: Update to libtool 1.4.1, with one + ltdll.c generation patch. + * doc/configuration: Misc updates, note libtool patch used. + + * mpn/x86/pentium4/sse2/mul_1.asm: Use pointer increments not indexed + addressing, to get 4.0 c/l flat. + + * tests/mpq/t-cmp_si.c (check_data): Use ULONG_MAX for denominators. + + * tests/misc.c (mpz_negrandom): Use given rstate, not RANDS. + +2001-09-07 Torbjorn Granlund + + * mpn/x86/pentium4/sse2/addmul_1.asm: New file. + +2001-09-04 Kevin Ryde + + * tune/freq.c: Define a HAVE for each speed_cpu_frequency routine to + avoid duplicating conditionals. + (speed_cpu_frequency_sco_etchw): New function. + (speed_cpu_frequency_table): Use it. + * tune/README: Mention SCO openunix 8 /etc/hw. + + * mpz/fib_ui.c: Use ?: to avoid a gcc 3 bug on powerpc64. + Store back a carry for limb + + * configure.in (m68k-*-*): Let m68k mean 68000, not 68020. + * gmp.texi (Notes for Particular Systems): Update. + + * gmp-impl.h (union ieee_double_extract) [m68k]: Use longs, since int + might be only 16 bits. + + * tests/mpq/t-aors.c: New file. + * tests/mpq/Makefile.am: Add it. + + * tests/refmpq.c: New file. + * tests/Makefile.am: Add it. + * tests/tests.h: Add prototypes. + + * mpq/aors.c: Share object code for mpq_add and mpq_sub. + * Makefile.am, mpq/Makefile.am: Single mpq/aors.lo now. + + * tests/devel/try.c (TYPE_SUBMUL_1): Use correct reference routine. + +2001-08-30 Kevin Ryde + + * mpn/x86/x86-defs.m4 (cmov_available_p): Add pentium4. + + * gmp-h.in: Put #define renamings with prototypes. + Remove commented out #defines of gmp-impl.h things. + (mpn_invert_limb): Remove #define, already in gmp-impl.h. + (mpn_lshiftc, mpn_rshiftc): Remove #defines, unused. + (mpn_addsub_nc): Add prototype to #define. + +2001-08-28 Kevin Ryde + + * gmp.texi: Switch to GFDL. + (Top): Arrange copyright and conditions to appear here too. For + clarity have all this before the miscellaneous macro definitions. + (Copying): Refer to COPYING.LIB file, mention plain GPL2 in demo + programs. + (Contributors, References): Use @appendix rather than @unnumbered. + (GNU Free Documentation License): New appendix. + (@contents): Move to start of document, use only for tex (not html). + (Debugging): Add leakbug. + (Build Options): Add pentium4. + (I/O of Rationals): Add mpq_inp_str. + + * fdl.texi: New file, with two @appendix directive tweaks. + * Makefile.am (gmp_TEXINFOS): Add it. + + * tests/mpz/io.c: Check mpz_inp_str return against ftell, send error + messages just to stdout. + + * mpz/inp_str.c, gmp-impl.h (__gmpz_inp_str_nowhite): New function, + and share a __gmp_free_func call. + * mpq/inp_str.c: New file. + * Makefile.am, mpq/Makefile.am: Add it. + * tests/mpq/t-inp_str.c: New file. + * tests/mpq/Makefile.am (check_PROGRAMS): Add it. + + * configure.in, acconfig.h (HAVE_HOST_CPU_FAMILY_power, + HAVE_HOST_CPU_FAMILY_powerpc, HAVE_HOST_CPU_FAMILY_x86): AC_DEFINEs + for processor families. + * gmp-impl.h: Use them, rather than cpp defines. + + * demos/Makefile.am (primes_LDADD): Use $(LIBM), for log(). + + * tune/many.pl, tune/Makefile.am: Fix some from clean and distclean. + +2001-08-26 Kevin Ryde + + * tests/devel/try.c (ARRAY_ITERATION): Make types match on "?:" legs. + (TYPE_MPZ_JACOBI, TYPE_MPZ_KRONECKER): Remove some superseded code. + + * tests/printf/t-printf.c (check_plain): Don't compare "all digits" + precision against plain printf. + + * tune/Makefile.am: Eliminate empty TUNE_MPZ_SRCS. + + * configure, config.in, INSTALL.autoconf: Update to autoconf 2.52. + * */Makefile.in, mdate-sh, missing, aclocal.m4, configure: Update to + automake 1.5. + * configfsf.guess, configfsf.sub: Update to 2001-08-23. + +2001-08-24 Torbjorn Granlund + + * demos/primes.c: Complete rewrite. + +2001-08-24 Kevin Ryde + + * longlong.h: Test __ppc__ for apple darwin cc, reported by Jon + Becker. Also test __POWERPC__, PPC and __vxworks__. + + * tune/speed.h (speed_cyclecounter) [x86]: Don't clobber ebx in PIC. + +2001-08-22 Kevin Ryde + + * configure.in (x86 mmx): Correction to mmx path stripping. + +2001-08-17 Kevin Ryde + + * configure.in, acinclude.m4, Makefile.am, printf/Makefile.am, + tests/printf/Makefile.am, gmp-h.in, gmp-impl.h, gmp.texi: Remove C++ + support, for the time being. + * printf/doprntfx.cc, doprntix.cc, osfuns.cc, osmpf.cc, osmpq.cc, + osmpz.cc, tests/printf/t-ostream.cc: Remove files. + + * printf/doprnt.c, printf/doprntf.c, gmp-impl.h: Use a single + __gmp_doprnt_mpf, rather than a separate ndigits calculation. + * printf/doprnt.c, printf/doprntf.c, gmp-impl.h, gmp.texi, + tests/printf/t-printf.c: Let empty or -1 prec mean all digits for mpf. + * printf/doprnt.c, tests/printf/t-printf.c: Accept h or l in %n; let + negative "*" style width mean left justify. + + * gmp-impl.h, mpf/get_str.c (MPF_SIGNIFICANT_DIGITS): New macro, + extracted from mpf/get_str.c. + + * libmp.sym: New file. + * Makefile.am (libmp_la_LDFLAGS): Use it. + (DISTCLEANFILES): Remove asm-syntax.h, no longer generated. + Remove some comments about "make check". + + * demos/perl/GMP.pm, GMP.xs, GMP/Mpf.pm: Add printf and sprintf, + change get_str to string/exponent for floats, remove separate + mpf_get_str. + * demos/perl/GMP/Mpf.pm (overload_string): Use $# (default "%.g"). + * demos/perl/typemap: Fix some duplicate string entries. + * demos/perl/test.pl: Update tests, split overloaded constants into ... + * demos/perl/test2.pl: ... this new file. + * demos/perl/Makefile.PL (clean): Add test.tmp. + +2001-08-16 Kevin Ryde + + * printf/snprntffuns.c (gmp_snprintf_format): Correction to bufsize-1 + return value handling. + + * demos/calc/calc.y: Reposition "%{" so copyright notice gets into + generated files. + + * INSTALL: Use gmp_printf. + +2001-08-14 Kevin Ryde + + * mpz/inp_str.c: Fix return value (was 1 too big). + * tests/mpz/t-inp_str.c: New file. + * tests/mpz/Makefile.am: Add it. + + * mpn/x86/pentium4/sse2/add_n.asm: New file. + * mpn/x86/pentium4/sse2/sub_n.asm: New file. + * mpn/x86/pentium4/sse2/mul_1.asm: New file. + +2001-08-12 Kevin Ryde + + * printf/sprintffuns.c, printf/doprntf.c: Don't use sprintf return + value (it's a pointer on SunOS 4). + + * acinclude.m4 (GMP_ASM_X86_SSE2, GMP_STRIP_PATH): New macros. + * configure.in: Add pentium4 support. + * mpn/x86/pentium4, mpn/x86/pentium4/mmx, mpn/x86/pentium4/sse2: New + directories. + * mpn/x86/README: Update. + +2001-08-10 Torbjorn Granlund + + * demos/pexpr.c (setup_error_handler): Catch also SIGABRT. + +2001-07-31 Kevin Ryde + + * tests/refmpn.c (refmpn_mul_1c): Allow low to high overlaps. + + * gmp-h.in, gmp-impl.h (_gmp_rand): Move prototype to gmp-impl.h. + + * tune/Makefile.am (EXTRA_DIST): Add many.pl. + +2001-07-28 Kevin Ryde + + * gmp.texi (Random Number Functions): Old rand functions no longer use + the C library. + + * configure.in, acinclude.m4 (GMP_FUNC_VSNPRINTF): New macro. + + * mpn/generic/get_str.c: Add an ASSERT for high limb non-zero. + +2001-07-24 Kevin Ryde + + * gmp.texi (Build Options): Add --enable-cxx. + (Converting Floats): Note mpf_get_str only generates accurately + representable digits. + (Low-level Functions): Note mpn_get_str requires non-zero high limb. + (Formatted Output): New chapter. + (Multiplication Algorithms): Use @quotation with @multitable. + (Toom-Cook 3-Way Multiplication): Ditto. + + * tests/memory.c (tests_free_nosize): New function. + * tests/tests.h (tests_allocate etc): Add prototypes. + + * tests/printf: New directory. + * tests/printf/Makefile.am, t-printf.c, t-ostream.cc: New files. + * configure.in, tests/Makefile.am: Add them. + + * configure.in, acinclude.m4 (GMP_PROG_CXX): New macro. + * configure.in (--enable-cxx): New option. + (AC_CHECK_HEADERS): Add locale.h and sys/types.h, remove unistd.h. + (AC_CHECK_TYPES): Add intmax_t, long double, long long, ptrdiff_t, + quad_t. + (AC_CHECK_FUNCS): Add localeconv, memset, obstack_vprintf, snprintf, + strchr, vsnprintf. + (AC_CHECK_DECLS): Add vfprintf. + + * gmp-h.in, gmp-impl.h: Additions for gmp_printf etc. + + * printf: New directory. + * printf/Makefile.am, asprintf.c, doprnt.c, doprntf.c, doprntfx.cc, + doprnti.c, doprntix.cc, fprintf.c, obprintf.c, obprntffuns.c, + obvprintf.c, osfuns.cc, osmpf.cc, osmpq.cc, osmpz.cc, printf.c, + printffuns.c, snprintf.c, snprntffuns.c, sprintf.c, sprintffuns.c, + vasprintf.c, vfprintf.c, vprintf.c, vsnprintf.c, vsprintf.c: New + files. + * configure.in, Makefile.am: Add them. + + * configure.in (HAVE_INLINE): Remove AC_DEFINE, unused. + (AC_CHECK_TYPES): Don't test for void, assume it always exists. + + * gmp-impl.h (__GMP_REALLOCATE_FUNC_MAYBE): New macro. + * mpz/get_str.c, mpq/get_str.c, mpf/get_str.c: Use it. + + * gmp-impl.h (mpn_fib2_ui): Use __MPN. + (MPN_COPY_DECR): Fix an ASSERT. + (CAST_TO_VOID): Remove macro. + + * gmp-h.in (mpq_out_str): Give #define even without prototype. + (mpz_cmp_d, mpz_cmpabs_d): Corrections to #defines. + + * tests/devel/try.c: Add mpn_add and mpn_sub, don't use CAST_TO_VOID. + +2001-07-23 Torbjorn Granlund + + * config.guess: Recognize pentium4. + * config.sub: Recognize pentium4. + +2001-07-17 Kevin Ryde + + * gmp-h.in (__GMPN_AORS_1): Remove x86 and gcc versions, leave just + one version. + (__GMPN_ADD, __GMPN_SUB): New macros, rewrite of mpn_add and mpn_sub. + (mpn_add, mpn_sub): Use them. + (__GMPN_COPY_REST): New macro. + + * gmp-h.in, gmp-impl.h, acinclude.m4: Remove __GMP_ASM_L and + __GMP_LSYM_PREFIX, revert to ASM_L in gmp-impl.h and AC_DEFINE of + LSYM_PREFIX. + +2001-07-11 Kevin Ryde + + * gmp-h.in (__GMPN_ADD_1 etc) [x86]: Don't use this on egcs 2.91. + + * mpz/fits_uint.c, fits_ulong.c, mpz/fits_ushort.c: Split up fits_u.c. + * mpz/fits_u.c: Remove file. + * mpz/Makefile.am, macos/Makefile.in: Update. + + * tests/refmpn.c,tests.h (refmpn_copy): New function. + * tests/devel/try.c (TYPE_ZERO): No return value from call. + (TYPE_MODEXACT_1_ODD, TYPE_MODEXACT_1C_ODD): Share call with + TYPE_MOD_1 and TYPE_MOD_1C. + (MPN_COPY, __GMPN_COPY, __GMPN_COPY_INCR): Add testing. + +2001-07-10 Kevin Ryde + + * gmp-h.in (__GMPN_COPY): Add form to help gcc on power and powerpc. + * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR, MPN_ZERO): Ditto. + * mpn/powerpc64/copyi.asm, mpn/powerpc64/copyd.asm: Remove files. + + * mpz/tdiv_ui.c: Eliminate some local variables (seems to save code on + i386 gcc 2.95.x), remove a bogus comment about quotient. + + * errno.c, gmp-impl.h (__gmp_exception, __gmp_divide_by_zero, + __gmp_sqrt_of_negative): New functions. + * gmp-impl.h (GMP_ERROR, DIVIDE_BY_ZERO, SQRT_OF_NEGATIVE): Use them. + + * randclr.c, randraw.c: Use ASSERT(0) for unrecognised algorithms. + +2001-07-07 Kevin Ryde + + * configure.in (powerpc*-*-*): Use -no-cpp-precomp for Darwin. + + * tests/mpbsd/t-itom.c: Renamed from t-misc.c. + * tests/mpbsd/t-misc.c: Remove file. + * tests/mpbsd/Makefile.am: Update. + + * tests/mpf/t-set_si.c,t-cmp_si.c,t-gsprec.c: Split from t-misc.c. + * tests/mpf/t-misc.c: Remove file. + * tests/mpf/Makefile.am: Update. + + * tests/mpz/t-oddeven.c,t-set_si.c,t-cmp_si.c: Split from t-misc.c. + * tests/mpz/t-misc.c: Remove file. + * tests/mpz/Makefile.am: Update. + + * stack-alloc.c: Add some alignment ASSERTs. + + * gmp-impl.h (MPN_NORMALIZE): Add notes on x86 repe/scasl slow. + + * tests/devel/try.c (MPN_ZERO): Add testing. + * tune/speed.c,speed.h,common.c,many.pl (MPN_ZERO): Add measuring. + + * mpn/x86/divrem_1.asm: Update a remark about gcc and "loop". + + * tests/mpq/t-cmp_si.c: New file. + * tests/mpq/Makefile.am: Add it. + + * tests/misc.c,tests.h (mpq_set_str_or_abort): New function. + + * mpq/cmp_si.c: New file. + * Makefile.am, mpq/Makefile.am: Add it. + * gmp-h.in (mpq_cmp_si): Add prototype. + * gmp.texi (Comparing Rationals): Add doco. + + * gmp-h.in (_GMP_H_HAVE_FILE): Add _FILE_DEFINED for microsoft, add + notes on what symbols are for what systems. + +2001-07-06 Torbjorn Granlund + + * longlong.h (ibm032 umul_ppmm): Fix typo. + * longlong.h (sparclite sdiv_qrnnd): Fix typo. + +2001-07-03 Kevin Ryde + + * mpz/bin_ui.c (DIVIDE): Use MPN_DIVREM_OR_DIVEXACT_1. + * mpz/bin_uiui.c (MULDIV): Ditto, and use local variables for size and + pointer. + + * acinclude.m4 (GMP_INCLUDE_GMP_H): New macro, use it everywhere gmp.h + is wanted at configure time. + * acinclude.m4, configure.in (GMP_H_EXTERN_INLINE, GMP_H_HAVE_FILE): + New macros. + + * gmp-h.in (__GMP_EXTERN_INLINE): Set to "inline" for C++. + (mpn_add, mpn_sub): Use new style __GMP_EXTERN_INLINE. + * gmp-h.in, mp-h.in, gmp-impl.h (_EXTERN_INLINE): Remove, unused. + * mpn/generic/add.c, mpn/generic/sub.c: New files. + * mpn/generic/inlines.c: Remove file. + * configure.in, mpn/Makefile.am: Update. + + * gmp.texi (GMP Basics): Note the need for stdio.h to get FILE + prototypes. + +2001-07-01 Kevin Ryde + + * gmp.texi (Build Options, Reentrancy): Updates for new + --enable-alloca behaviour. + (Debugging): Describe --enable-alloca=debug. + (Miscellaneous Integer Functions): Note mpz_sizeinbase ignores signs. + (Low-level Functions): Give a formula for mpn_gcdext cofactor. + (Factorial Algorithm): New section. + (Binomial Coefficients Algorithm): New section. + Misc tweaks elsewhere. + + * mpf/set_prc.c: Merge the two truncation conditionals, misc cleanups, + no functional changes. + + * mpn/*/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Add tuned values. + * gmp-impl.h (DIVEXACT_1_THRESHOLD): Make the default 0 when + 2*UMUL_TIME < UDIV_TIME. + + * mpn/x86/p6/dive_1.asm: New file. + + * mpn/x86/dive_1.asm: New file. + * mpn/x86/gmp-mparam.h (DIVEXACT_1_THRESHOLD): Use it always. + + * tests/refmpn.c, tests.h (refmpn_zero): New function. + * tests/devel/try.c: Use it. + + * tests/refmpn.c (refmpn_sb_divrem_mn): Use refmpn_cmp, not mpn_cmp. + + * tests/mpf/t-get_d.c (main): Use || not |. + + * tests/misc.c, tests/t-modlinv.c, tests/mpq/t-get_str.c, + tests/mpf/reuse.c: Add string.h. + +2001-06-29 Kevin Ryde + + * tune/speed.h (SPEED_ROUTINE_MPN_FIB2_UI, + SPEED_ROUTINE_COUNT_ZEROS_C): Corrections to TMP block handling. + + * gmp-impl.h (MPN_TOOM3_MUL_N_MINSIZE, MPN_TOOM3_SQR_N_MINSIZE): + Corrections to these to account for adding tD into E. + (MPN_INCR_U, MPN_DECR_U) [WANT_ASSERT]: Add size + assertions, since mpn_add_1 and mpn_sub_1 from gmp.h don't get them. + (MPN_DIVREM_OR_DIVEXACT_1): Add an assert of no remainder. + + * assert.c: Add stdlib.h for abort prototype. + * tests/spinner.c, trace.c, t-constants.c, t-count_zeros.c, + t-gmpmax.c, t-modlinv.c: Ditto. + * tests/mpz/t-bin.c, t-cmp.c, t-get_si.c, t-misc.c, t-popcount.c, + t-set_str.c, t-sizeinbase.c: Ditto. + * tests/mpq/t-equal.c, t-get_str.c, t-set_f.c, t-set_str.c: Ditto. + * tests/mpf/t-fits.c, t-get_d.c, t-get_si.c, t-int_p.c, t-misc.c, + t-trunc.c: Ditto. + * tests/mpbsd/allfuns.c, t-misc.c: Ditto. + + * mpn/generic/mul_n.c, mpz/cfdiv_r_2exp.c: Use MPN_INCR_U rather than + mpn_incr_u. + + * tests/devel/try.c (TYPE_SB_DIVREM_MN): More fixes for calling method. + + * mpn/x86/k6/cross.pl: More insn exceptions. + +2001-06-23 Kevin Ryde + + * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1) [i386]: Fix some asm output + constraints. + + * gmp-impl.h (modlimb_invert): Mask after shifting, so mask constant + fits a signed byte. + + * tests/devel/try.c (TYPE_SB_DIVREM_MN): Fix initial fill of quotient + with garbage. + +2001-06-20 Kevin Ryde + + * config.guess (rs6000-*-aix4* | powerpc-*-aix4*): Suppress error + messages if $CC_FOR_BUILD or program don't work. + + * mpz/sqrt.c,sqrtrem.c: Special case for op==0, to avoid TMP_ALLOC(0). + * tests/refmpf.c (refmpf_add, refmpf_sub): Avoid TMP_ALLOC(0). + + * tests/mpn/t-aors_1.c: New file. + * tests/mpn/Makefile.am: Add it. + + * gmp-h.in (__GMPN_ADD_1, __GMPN_SUB_1): New macros, rewrite of + mpn_add_1 and mpn_sub_1, better code for src==dst and/or n==1, + separate versions for gcc x86, gcc generic, and non-gcc. + (mpn_add_1, mpn_sub_1): Use them. + (mpn_add, mpn_sub): Ditto, to get inlines on all compilers. + (extern "C") [__cplusplus]: Let this encompass the extern inlines too. + * mpn/generic/add_1.c,sub_1.c: New files, force code from gmp.h. + * configure.in, mpn/Makefile.am: Add them. + + * acinclude.m4 (GMP_ASM_LSYM_PREFIX): AC_SUBST __GMP_LSYM_PREFIX + rather than AC_DEFINE LSYM_PREFIX. + * gmp-h.in (__GMP_LSYM_PREFIX): New substitution. + (__GMP_ASM_L): New macro. + * gmp-impl.h (ASM_L): Use it. + + * acinclude.m4, configure.in (GMP_C_ATTRIBUTE_MALLOC): New macro. + * gmp-impl.h: Use it for all the malloc based TMP_ALLOCs. + + * stack-alloc.h: Remove file. + * tal-reent.c: New file. + * Makefile.am: Update. + + * acinclude.m4, configure.in (GMP_OPTION_ALLOCA): New macro, add + malloc-reentrant method, use stack-alloc.c as malloc-notreentrant, + make "reentrant" the default. + * gmp-impl.h (__TMP_ALIGN): Moved from stack-alloc.c, use a union to + determine the value, and demand only 4 bytes align on 32-bit systems. + * gmp-impl.h (WANT_TMP_NOTREENTRANT): Move global parts of + stack-alloc.h to here, allow non power-of-2 __TMP_ALIGN in TMP_ALLOC. + * gmp-impl.h: Extend extern "C" to TMP_ALLOC declarations. + * stack-alloc.c (tmp_stack): Move private parts of stack-alloc.h to + here, use gmp-impl.h. + + * gmp-impl.h (TMP_ALLOC_LIMBS_2): New macro. + * mpz/fib_ui.c, mpz/jacobi.c, mpq/cmp.c, mpn/generic/fib2_ui.c: Use it. + + * mpfr/exp2.c: Patch by Paul to match TMP_MARK and TMP_FREE in loop. + * mpfr/sqrt.c: Scope nested TMP_DECL into nested { } block, patch by + Paul, tweaked by me. + * mpfr/agm.c: Ditto, and add a final TMP_FREE(marker2). + + * gmp-h.in (mpn_cmp): Add __GMP_ATTRIBUTE_PURE. + + * INSTALL: Clarify "make install", tweak formatting a bit. + +2001-06-17 Kevin Ryde + + * configure.in, Makefile.am, gmp-impl.h: Add a debugging TMP_ALLOC, + selected with --enable-alloca=debug. + * tal-debug.c: New file. + * configure.in, Makefile.am: Compile stack-alloc.c only for + --disable-alloca. + * assert.c (__gmp_assert_header): New function, split from + __gmp_assert_fail. + + * mpz/lcm.c: Don't TMP_MARK and then just return. Remove unnecessary + _mpz_realloc prototype. + + * mpn/generic/mul.c (mpn_sqr_n): Use __gmp_allocate_func for toom3 + temporary workspace. + +2001-06-15 Kevin Ryde + + * tests/mpz/t-set_f.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add it. + + * mpz/set_f.c: Share MPN_COPY between pad and trunc cases, do exp<=0 + test earlier, store SIZ(w) earlier. + + * tests/t-count_zeros.c: New file. + * tests/t-gmpmax.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add them. + + * mp_clz_tab.c: Compile the table only if longlong.h says it's needed; + add an internal-use-only comment. + * tune/common.c: Force a __clz_tab for convenience when testing. + + * mpn/x86/pentium/gmp-mparam.h, mpn/x86/pentium/mmx/gmp-mparam.h: Add + COUNT_LEADING_ZEROS_NEED_CLZ_TAB, for mod_1.asm. + + * longlong.h (count_leading_zeros) [pentium]: Decide to go with float + method for p54. + (count_leading_zeros) [alpha]: Add COUNT_LEADING_ZEROS_NEED_CLZ_TAB. + (__clz_tab): Provide a prototype only if it's needed. + + * tests/trace.c (mpz_trace): Don't use = on structures. + (mpn_trace): Set _mp_alloc when creating mpz. + +2001-06-12 Kevin Ryde + + * mpn/x86/divrem_1.asm: Amend some comments about P5 speed. + + * tune/README: Clarify reconfigure on gmp-mparam.h update. + + * mpn/x86/p6/copyd.asm: New file. + * mpn/x86/p6/README: Update copyd and mod_1. + * mpn/x86/copyd.asm: Amend some comments. + + * gmp-impl.h (__builtin_constant_p): Add dummy for non-gcc. + (mpn_incr_u, mpn_decr_u): Recognise incr==1 at compile time in the + generic code on gcc. + + * gmp-impl.h (ASSERT_ZERO_P, ASSERT_MPN_NONZERO_P): New macros. + * mpn/generic/gcd_1.c, mpn/generic/mul_fft.c: Use them. + * mpz/get_d.c: Add a private mpn_zero_p. + * mpfr/trunc.c: Use own mpn_zero_p. + * tune/speed.h (SPEED_ROUTINE_MPN_GCD_1N): Use refmpn_zero_p. + * gmp-impl.h (mpn_zero_p): Remove, no longer needed. + + * gmp-h.in, gmp-impl.h: Move MPN_CMP to gmp.h as __GMPN_CMP, leave an + MPN_CMP alias in gmp-impl.h. + * gmp-h.in (mpn_cmp): Add an inline version. + * mpn/generic/cmp.c: Use __GMP_FORCE_mpn_cmp to get code from gmp.h. + + * acinclude.m4 (GMP_C_ATTRIBUTE_MODE): New macro. + * configure.in: Call it. + * gmp-impl.h (SItype etc): Use it. + + * randraw.c (lc): Change mpn_mul_basecase->mpn_mul, + mpn_incr_u->MPN_INCR_U, abort->ASSERT_ALWAYS(0). + + * longlong.h (count_leading_zeros) [pentiumpro]: Work around a partial + register stall on gcc < 3. + + * gmp.texi (Introduction to GMP): Add IA-64. + (Notes for Particular Systems): i386 means generic x86. + + * tests/t-modlinv.c: Use tests_start and tests_end. + +2001-06-10 Kevin Ryde + + * gmp.texi (Number Theoretic Functions): mpz_jacobi only defined for b + odd. Separate the jacobi/legendre/kronecker descriptions. + (Low-level Functions): Document mpn_mul_1 "incr" overlaps. + (Language Bindings): New chapter. + + * mpz/jacobi.c: Don't retaining old behaviour of mpz_jacobi on even b + (it wasn't documented in 3.1.1). + * mpz/jacobi.c, gmp-h.in (mpz_kronecker, mpz_legendre): Remove + separate entrypoints, just #define to mpz_jacobi. + * compat.c (__gmpz_legendre): Add compatibility entrypoint. + + * mpn/generic/mul_1.c: Allow "incr" style overlaps. + * tests/devel/try.c (param_init): Test this. + + * mpf/mul_ui.c: Do size==0 test earlier. + +2001-06-08 Kevin Ryde + + * gmp-impl.h (ULONG_HIGHBIT, UINT_HIGHBIT, USHRT_HIGHBIT): Cast + ULONG_MAX etc to unsigned long etc before attempting to right shift. + + * acinclude.m4 (GMP_ASM_LSYM_PREFIX): Add an AC_DEFINE of LSYM_PREFIX. + * gmp-impl.h (ASM_L): New macro. + (mpn_incr_u, mpn_decr_u, MPN_INCR_U, MPN_DECR_U): Add i386 optimized + versions. + + * mpn/hppa/*.s,S,asm: Use .label so the code works with gas on hppa + GNU/Linux too, reported by LaMont Jones . + * mpn/hppa/README: Add some notes on this. + * acinclude.m4 (GMP_ASM_LABEL_SUFFIX): Ditto. + + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add dive_1.c, + fib2_ui.c. + + * tests/mpn/t-iord_u.c: New file. + * tests/mpn/Makefile.am (check_PROGRAMS): Add it. + + * configure.in (mips*-*-irix[6789]*): Make ABI=n32 the default, same + as in gmp 3.1. + * gmp.texi (ABI and ISA): Update. + + * gmp.texi (Build Options): Misc tweaks. + (Notes for Particular Systems): Describe windows DLL handling. + (Known Build Problems): DJGPP needs bash 2.04. + (Number Theoretic Functions): mpz_invert returns 0<=r + + * configure.in, gmp-h.in, mp-h.in: Add support for windows DLLs. + +2001-05-26 Kevin Ryde + + * gmp.texi (ABI and ISA, Reentrancy): Minor tweaks + (Notes for Package Builds): Note gmp.h is a generated file. + (Notes for Particular Systems): -march=pentiumpro is used for gcc + 2.95.4 and up. + (Assembler Loop Unrolling): Mention non power-of-2 unrolling. + (Internals): New chapter. + * mpf/README: Remove file. + + * demos/expr/README: Miscellaneous rewordings. + + * demos/perl: New directory. + * demos/Makefile.am: Add it. + * demos/perl/INSTALL, Makefile.PL, GMP.pm, GMP.xs, typemap, + GMP/Mpz.pm, GMP/Mpq.pm, GMP/mpf.pm, GMP/Rand.pm, sample.pl, test.pl: + New files. + + * configure, aclocal.m4: Update to autoconf 2.50. + + * configure, aclocal.m4, ltmain.sh: Update to libtool 1.4. + + * configure, aclocal.m4, missing, ansi2knr.c, */Makefile.in: Update to + automake 1.4f. + * Makefile.am: Conditionalize mpfr in $(SUBDIRS) to handle mpfr.info. + * mpfr/Makefile.am (INFO_DEPS): Remove previous mpfr.info handling. + * mpn/Makefile.am (GENERIC_SOURCES): Remove this, just put mp_bases.c + in libmpn_la_SOURCES. + * tests/Makefile.am (tests.h): Move from EXTRA_HEADERS to + libtests_la_SOURCES. + * ltconfig: Remove file, no longer needed. + + * Makefile.am (gmp-impl.h, longlong.h, stack-alloc.h): Move from + EXTRA_DIST to libgmp_la_SOURCES, so they get included in TAGS. + * tests/rand/Makefile.am (gmpstat.h): Move to libstat_la_SOURCES + similarly. + + * config.guess (68k-*-*): Use $SHELL not "sh", tweak some comments. + + * mpfr/mpfr.texi (Introduction to MPFR): Tweak table formatting, note + non-free programs must be able to be re-linked. + +2001-05-20 Kevin Ryde + + * mpn/powerpc64/addmul_1.asm, mpn/powerpc64/mul_1.asm, + mpn/powerpc64/submul_1.asm: Add carry-in entrypoints. + +2001-05-17 Kevin Ryde + + * gmp.texi (ge): Fix definition for info. + (Notes for Particular Systems): Mention 68k dragonball and cpu32. + (Efficiency): Add static linking, more about in-place operations, + describe mpq+/-integer using addmul. + (Reporting Bugs): A couple of words about self-contained reports. + (Floating-point Functions): Note exponent limitations of mpf_get_str + and mpf_set_str. + (Initializing Floats): Clarify mpf_get_prec, mpf_set_prec and + mpf_set_prec_raw a bit. + (Float Comparison): Note current mpf_eq deficiencies. + + * gmp-h.in (__GMP_HAVE_CONST, __GMP_HAVE_PROTOTYPES, + __GMP_HAVE_TOKEN_PASTE): Merge GNU ansidecl.h tests for ANSI compilers. + * demos/expr/expr-impl-h.in: Ditto. + + * gmp-impl.h (BITS_PER_MP_LIMB): Define from __GMP_BITS_PER_MP_LIMB if + not already in gmp-mparam.h. + * tests/t-constants.c (BITS_PER_MP_LIMB, __GMP_BITS_PER_MP_LIMB): + Check these are the same. + + * gmp-h.in (mpf_get_default_prec, mpf_get_prec, mpf_set_default_prec, + mpf_set_prec_raw): Provide "extern inline" versions, use __GMPF on the + macros. + * mpf/get_dfl_prc.c, mpf/get_prc.c, mpf/set_dfl_prc.c, + mpf/set_prc_raw.c: Get code from gmp.h using __GMP_FORCE. + + * gmp-h.in, gmp-impl.h (__gmp_default_fp_limb_precision): Move from + gmp-impl.h to gmp-h.in. + (__GMPF_BITS_TO_PREC, __GMPF_PREC_TO_BITS): Ditto, and use __GMPF + prefix and add a couple of casts. + * gmp-h.in (__GMP_MAX): New macro. + * mpf/init2.c mpf/set_prc.c: Update for __GMPF prefix. + + * gmp-h.in (__GMP_BITS_PER_MP_LIMB): New templated define. + * acinclude.m4 (GMP_C_SIZES): Add AC_SUBST __GMP_BITS_PER_MP_LIMB, + remove AC_DEFINE BITS_PER_MP_LIMB. + +2001-05-13 Kevin Ryde + + * gmp-h.in, gmp.texi, Makefile.am, mpz/Makefile.am, tests/mpz/t-pow.c: + Remove mpz_si_pow_ui, pending full si support. + * mpz/si_pow_ui.c: Remove file. + +2001-05-11 Kevin Ryde + + * mpn/x86/pentium/dive_1.asm: New file. + + * mpn/powerpc32/umul.asm: Use r on registers. + * mpn/powerpc64/umul.asm: New file. + * configure.in (powerpc*-*-*): Enable umul in extra_functions. + + * tests/refmpn.c, tests/tests.h (refmpn_umul_ppmm): Use same arguments + as normal mpn_umul_ppmm. + (refmpn_mul_1c): Update. + * tests/devel/try.c, tune/many.pl: Add some umul_ppmm testing support. + + * mpn/x86/k6/mmx/popham.asm, mpn/x86/k7/mmx/popham.asm: Don't support + size==0. + * mpn/x86/pentium/popcount.asm, mpn/x86/pentium/hamdist.asm: Ditto, + and shave a couple of cycles from the PIC entry code. + + * mpz/mul.c: Use mpn_mul_1 for size==1 and mpn_mul_2 (if available) + for size==2, to avoid copying; do vsize==0 test earlier. + + * mpf/sub.c: Test r!=u before calling mpf_set. + * mpf/add.c: Ditto, and share mpf_set between usize==0 and vsize==0. + + * mpn/generic/tdiv_qr.c, mpq/get_d.c, mpf/div.c, mpf/set_q.c, + mpf/set_str.c, mpf/ui_div.c: Test for high bit set, not for + count_leading_zeros zero. + + * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Print a message if extra + flags are added. + + * tests/mpz/t-mul_i.c: New file. + * tests/mpz/Makefile.am: Add it. + + * mpz/mul_siui.c (mpz_mul_si): Fix for -0x80..00 on long long limb. + + * gmp-h.in (mpf_set_si, mpf_set_ui): Revert last change, set exp to 0 + when n==0. + * mpf/ceilfloor.c, mpf/trunc.c: Fix exp to 0 when setting r to 0. + * gmp-impl.h (MPF_CHECK_FORMAT): Check exp==0 when size==0. + +2001-05-07 Kevin Ryde + + * gmp-h.in (mpf_set_si, mpf_set_ui): Don't bother setting _mp_exp to 0 + when n==0 (use 1 unconditionally). + * tests/mpf/t-misc.c (check_mpf_set_si): Don't demand anything of + _mp_exp when _mp_size is zero. + + * mpn/x86/README: Note gas _GLOBAL_OFFSET_TABLE_ with leal problem. + + * gmp-h.in (mpz_fits_uint_p, mpz_fits_ulong_p, mpz_fits_ushort_p): + Provide these as "extern inline"s. + (__GMP_UINT_MAX, __GMP_ULONG_MAX, __GMP_USHRT_MAX): New macros. + (mpz_popcount): Use __GMP_ULONG_MAX. + * gmp-impl.h (UINT_MAX, ULONG_MAX, USHRT_MAX): Use __GMP_U*_MAX, if + not already defined. + * mpz/fits_u.c: Use the code from gmp.h. + +2001-05-06 Kevin Ryde + + * mpn/x86/k7/dive_1.asm: New file. + * mpn/x86/k7/gcd_1.asm: New file. + * mpn/asm-defs.m4 (m4_count_trailing_zeros): New macro. + + * gmp-h.in (mpz_get_ui, mpz_getlimbn, mpz_set_q, mpz_perfect_square_p, + mpz_popcount, mpz_size, mpf_set_ui, mpf_set_si, mpf_size): Provide + these as "extern inlines". + Use just one big extern "C" block. + * mpz/getlimbn.c, mpz/get_ui.c, mpz/perfsqr.c, mpz/popcount.c + mpz/set_q.c, mpz/size.c, mpf/set_si.c, mpf/set_ui.c, mpf/size.c: Use + __GMP_FORCE to get code from gmp.h. + +2001-05-03 Kevin Ryde + + * extract-dbl.c: Add ASSERT d>=0. + + * gmp.texi (Efficiency): Add mpz_addmul etc for mpz+=integer, add + mpz_neg etc in-place. + (Integer Arithmetic): Add mpz_addmul, mpz_submul, mpz_submul_ui. + (Initializing Rationals): Add mpq_set_str. + (Low-level Functions): mpn_set_str requires strsize >= 1. + + * gmp-h.in (__GMP_EXTERN_INLINE, __GMP_ABS): New macros. + (mpz_abs, mpq_abs, mpf_abs, mpz_neg, mpq_neg, mpf_neg): Provide inline + versions. + * mpz/abs.c, mpq/abs.c, mpf/abs.c, mpz/neg.c, mpq/neg.c, mpf/neg.c: + Add suitable __GMP_FORCE to turn off inline versions. + + * tests/mpz/t-aorsmul.c,t-cmp_d.c,t-popcount,t-set_str.c: New files. + * tests/mpz/Makefile.am: Add them. + + * mpz/aorsmul_i.c: New file, rewrite of addmul_ui.c. Add + mpz_submul_ui entrypoint, share more code between some of the + conditionals, use mpn_mul_1c if available. + * mpz/addmul_ui.c: Remove file. + * mpz/aorsmul.c: New file. + * Makefile.am, mpz/Makefile.am: Update. + * gmp-h.in (mpz_addmul, mpz_submul, mpz_submul_ui): Add prototypes. + * gmp-impl.h (mpz_aorsmul_1): Add prototype. + + * tests/mpq/t-set_str.c: New file. + * tests/mpq/Makefile.am: Add it. + + * mpq/set_str.c: New file. + * Makefile.am, mpq/Makefile.am: Add it. + * gmp-h.in (mpq_set_str): Add prototype. + + * mpz/set_str.c: Fix for trailing white space on zero, eg. "0 ". + * mpn/generic/set_str.c: Add ASSERT str_len >= 1. + + * gmp-h.in, gmp-impl.h (mpn_incr_u, mpn_decr_u): Move to gmp-impl.h. + * gmp-impl.h (MPN_INCR_U, MPN_DECR_U): New macros. + +2001-04-30 Kevin Ryde + + * tests/mpz/t-lcm.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add it. + + * mpz/lcm.c: Add one limb special case. + + * mpz/lcm_ui.c: New file. + * Makefile.am, mpz/Makefile.am: Add it. + * gmp-h.in (mpz_lcm_ui): Add prototype. + * gmp.texi (Number Theoretic Functions): Add mpz_lcm_ui, document lcm + now always positive. + + * mp-h.in (mp_size_t, mp_exp_t): Fix typedefs to match gmp-h.in. + + * gmp-h.in (mpn_add_1, mpn_add, mpn_sub_1, mpn_sub): Remove K&R + function defines (ansi2knr will handle mpn/inline.c, and just ansi is + enough for gcc extern inline). + + * gmp-h.in (__GMP_HAVE_TOKEN_PASTE): New macro. + (__MPN): Use it. + * gmp-impl.h (CNST_LIMB): Ditto. + + * gmp-h.in, mp-h.in (__gmp_const, __gmp_signed, _PROTO, __MPN): Use + ANSI forms on Microsoft C. + (__GMP_HAVE_CONST): New define. + * gmp-impl.h (const, signed): Use it. + + * demos/expr/expr-impl-h.in (): Use this with Microsoft C. + (HAVE_STDARG): New define. + * demos/expr/expr.c,exprz.c,exprq.c,exprf.c,exprfr.c: Use it. + + * acinclude.m4 (GMP_C_STDARG): New macro. + * configure.in: Call it. + * rand.c: Use it. + + * configure.in (AC_PROG_CC_STDC): New test. + +2001-04-25 Kevin Ryde + + * mpn/x86/k6/mmx/dive_1.asm: New file. + * mpn/x86/x86-defs.m4 (Zdisp): Two more insns. + + * mpn/x86/pentium/mul_2.asm: New file. + * mpn/asm-defs.m4: Add define_mpn(mul_2). + * acconfig.h (HAVE_NATIVE_mpn_divexact_1, mul_2): Add templates. + + * configure.in (ABI): Use AC_ARG_VAR. + + * tests/devel/try.c: Run reference function when validate fails. + + * mpq/get_str.c: Fixes for negative bases. + * tests/mpq/t-get_str.c: Check negative bases. + * tests/misc.c,tests.h (__gmp_allocate_strdup, strtoupper): New + functions. + +2001-04-24 Torbjorn Granlund + + * mpz/lcm.c (mpz_lcm): Make result always positive. + + * gmp-h.in (mpz_inp_binary, mpz_out_binary): Remove declarations. + +2001-04-22 Kevin Ryde + + * mpn/powerpc64/addsub_n.asm: Use config.m4 not asm-syntax.m4. + + * mpz/cmp_d.c, mpz/cmpabs_d.c: New files. + * Makefile.am, mpz/Makefile.am: Add them. + * mpf/cmp_d.c, mpf/get_dfl_prec.c: New files. + * Makefile.am, mpf/Makefile.am: Add them. + * gmp-h.in (mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d, mpf_get_default_prec): + Add prototypes. + * gmp.texi: Add documentation. + + * mpf/set_prc.c: Avoid a realloc call if already the right precision. + + * gmp-impl.h (MPF_BITS_TO_PREC, MPF_PREC_TO_BITS): New macros. + * mpf/get_prc.c, init2.c, set_dfl_prec.c, set_prc.c, set_prc_raw.c: + Use them. + +2001-04-20 Kevin Ryde + + * tests/devel/try.c: Don't test size==0 on mpn_popcount and + mpn_hamdist; add testing for mpn_divexact_1; print some limb values + with mpn_trace not printf. + + * mpz/popcount.c, mpz/hamdist.c: Don't pass size==0 to mpn_popcount + and mpn_hamdist. + * mpn/generic/popham.c: Don't support size==0. + + * config.guess (m68k-*-*): Detect m68010, return m68360 for cpu32, + cleanup the nesting a bit. + + * gmp.texi (Integer Division): Fix mpz_congruent_2exp_p "c" type. + (Integer Division): Add mpz_divexact_ui. + (Number Theoretic Functions): Fix mpz_nextprime return type. + (Exact Remainder): Divisibility tests now implemented. + And more index entries in a few places. + + * tests/mpz/dive_ui.c: New file. + * tests/mpz/Makefile.am (check_PROGRAMS): Add it. + + * mpz/dive_ui.c: New file. + * Makefile.am, mpz/Makefile.am: Add it. + * gmp-h.in (mpz_divexact_ui): Add prototype. + + * tune/many.pl, tune/speed.h: Add special mpn_back_to_back for + development. + + * gmp-impl.h (MPN_DIVREM_OR_DIVEXACT_1): New macro. + * mpz/divexact.c: Use it. + + * gmp-impl.h (DIVEXACT_1_THRESHOLD): New threshold. + * tune/tuneup.c: Tune it. + + * tune/speed.c,speed.h,common.c,many.pl: Add measuring of + mpn_divexact_1, mpn_copyi, mpn_copyd. + + * mpn/generic/dive_1.c: New file. + * configure.in (gmp_mpn_functions): Add it. + * gmp-impl.h (mpn_divexact_1): Add prototype. + * mpn/asm-defs.m4: Add define_mpn(divexact_1). + + * tests/mpn: New directory. + * tests/Makefile.am: Add it. + * tests/mpn/Makefile.am: New file. + * configure.in (AC_OUTPUT): Add it. + * tests/mpn/t-asmtype.c: New file. + + * configure, config.in: Update to autoconf 2.49d. + + * configure.in, gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Revert + to generating gmp.h, mp.h and expr-impl.h with AC_OUTPUT and AC_SUBST. + + * configure.in (m68*-*-*): Oops, m683?2 is 68000, m68360 is cpu32. + * mpn/m68k/m68k-defs.m4 (scale_available_p): Ditto. + + * configure.in (underscore, asm_align): Remove these variables, unused. + (GMP_ASM_*): Sort by AC_REQUIREs, to avoid duplication. + * acinclude.m4 (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_LOG): Remove support + for actions, no longer needed. + +2001-04-17 Kevin Ryde + + * config.guess (m68k-*-*): Look for cpu in linux kernel /proc/cpuinfo. + + * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): The -mpentiumpro problem is + fixed in 2.95.4, so test for that. + (GMP_ASM_TYPE): Amend some comments. + + * tune/freq.c (speed_cpu_frequency_sysctl): Avoid having unused + variables on GNU/Linux. + + * mpn/asm-defs.m4 (m4_instruction_wrapper): Fix a quoting problem if + the name of the file is a macro. + +2001-04-15 Kevin Ryde + + * mpn/powerpc64/*.asm: Add speeds on ppc630. + + * acconfig.h: Add dummy templates for _LONG_LONG_LIMB and HAVE_MPFR. + * configure.in: Ensure config.in is the last AM_CONFIG_HEADER, + which autoheader requires. + + * mpn/x86/pentium/popcount.asm: New file. + * mpn/x86/pentium/hamdist.asm: New file. + + * mpn/asm-defs.m4: (m4_popcount): New macro. + Amend a few comments elsewhere. + + * acinclude.m4 (GMP_ASM_RODATA): If possible, grep compiler output for + the right directive. + + * tune/speed.c: Print clock speed in MHz, not cycle time. + + * configure.in (AC_CHECK_HEADERS): Check for sys/processor.h. + * tune/freq.c (speed_cpu_frequency_processor_info): Require + to exist, to differentiate the different + processor_info on Darwin. + (speed_cpu_frequency_sysctlbyname): Remove hw.model test which is in + speed_cpu_frequency_sysctl. + (speed_cpu_frequency_sysctl): Add hw.cpufrequency for Darwin. + + * gmp-impl.h (MPN_LOGOPS_N_INLINE, mpn_and_n ... mpn_xnor_n): Use a + single expression argument for the different operations, necessary for + the Darwin "smart" preprocessor. + + * mpn/m68k/t-m68k-defs.pl: Allow white space in m4_definsn and + m4_defbranch. + + * tune/many.pl: Change RM_TMP_S to RM_TMP to match mpn/Makeasm.am, + avoid a possibly undefined array in a diagnostic, add more renaming to + hamdist. + +2001-04-13 Kevin Ryde + + * ltmain.sh, aclocal.m4, configure, config.in: Update to libtool 1.3d. + * configure.in: Change ac_ to lt_ in lt_cv_archive_cmds_need_lc and + lt_cv_proc_cc_pic. + + * config.guess (m68*-*-*): Detect exact cpu with BSD sysctl hw.model, + detect 68000/68010 with trapf, detect 68302 with bfffo. + +2001-04-11 Kevin Ryde + + * acinclude.m4 (GMP_ASM_M68K_INSTRUCTION, GMP_ASM_M68K_ADDRESSING, + GMP_ASM_M68K_BRANCHES): New macros. + * configure.in: Use them, remove old 68k configs, use mc68020 udiv and + umul. + + * mpn/m68k/m68k-defs.m4: New file. + * mpn/m68k/t-m68k-defs.pl: New file. + * mpn/m68k/*.asm: New files, converted from .S. Merge add_n and sub_n + to aors_n, ditto mc68020 addmul_1 and submul_1 to aorsmul_1. No + object code changes (except .type and .size now used on NetBSD 1.4). + * mpn/m68k/README: New file. + * mpn/m68k/*.S, */*.S, syntax.h: Remove files. + + * configure.in (m68*-*-netbsd1.4*): Pretend getrusage doesn't exist. + * tune/README: Update. + + * configure.in (powerpc*-*-*): For the benefit of Darwin 1.3, add cc + to cclist, make gcc_cflags -Wa,-mppc optional. + +2001-04-06 Kevin Ryde + + * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add | for 68k. + (gmpasm-mode-syntax-table): Add to comments. + + * tests/mpz/reuse.c (dsi_div_func_names): Add names for cdiv_[qr]_2exp. + +2001-04-04 Kevin Ryde + + * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): Fix test so as to actually + detect the problem, add notes on m68k netbsd 1.4.1. + + * gmp.texi (Compatibility with older versions): Note libmp + compatibility. + +2001-04-03 Kevin Ryde + + * tests/mpz/reuse.c: Add mpz_cdiv_q_2exp and mpz_cdiv_r_2exp. + + * tests/mpz/t-pow.c: Drag in refmpn.o when testing mpz_pow_ui etc with + refmpn_mul_2. + + * tune/speed.c,speed.h,common.c,many.pl: Add measuring of mpn_com_n + and mpn_mul_2. + * tests/devel/try.c: Add testing of mpn_mul_2, and a + DATA_MULTIPLE_DIVISOR attribute. + + * gmp.texi (Build Options): List more m68k's. + (Build Options): Add cross reference to tex2html. + (Notes for Particular Systems): Add m68k means 68020 or up. + (Rational Conversions): New section, with mpq_get_d, mpq_set_d and + mpq_set_f from Miscellaneous, and new mpq_set_str. + (Applying Integer Functions): Move mpq_get_num, mpq_get_den, + mpq_set_num and mpq_set_den from Misc. + (Miscellaneous Rational Functions): Remove section. + (Custom Allocation): Partial rewrite for various clarifications. + (References): Improve line breaks near URLs. + + * acinclude.m4 (GMP_GCC_M68K_OPTIMIZE): New macro. + * configure.in (m68*-*-*): Use it to run gcc 2.95.x at -O not -O2. + (m680?0-*-*, m683?2-*-*, m68360-*-*): Add optional gcc -m options. + + * tests/mpz/t-cmp.c: New file. + * tests/mpz/t-sizeinbase.c: New file. + * tests/mpz/Makefile.am: Add them. + + * gmp-impl.h (MPN_CMP): New macro. + * mpz/cmp.c,cmpabs.c: Use it, and minor cleanups too. + + * tests/mpq/t-equal.c: New file. + * tests/mpq/t-get_str.c: New file. + * tests/mpq/Makefile.am: Add them. + + * mpq/get_str.c: New file. + * Makefile.am, mpq/Makefile.am: Add it. + * gmp-h.in (mpq_get_str): Add prototype. + + * mpq/equal.c: Rewrite using inline compare loops. + + * tests/refmpn.c,tests.h (refmpn_mul_2): Fix parameter order. + * mpz/n_pow_ui.c: Fix mpn_mul_2 calls parameter order. + +2001-03-29 Kevin Ryde + + * tests/mpf/t-trunc.c: New file. + * tests/mpf/Makefile.am (check_PROGRAMS): Add it. + * gmp-impl.h (MPF_CHECK_FORMAT): New macro. + + * mpf/trunc.c: New file, rewrite of integer.c, preserve prec+1 in + copy, don't copy if unnecessary. + * mpf/ceilfloor.c: New file likewise, and use common subroutine for + ceil and floor. + * mpf/integer.c: Remove file. + * Makefile.am, mpf/Makefile.am, macos/Makefile.in: Update. + + * acinclude.m4 (GMP_GCC_VERSION_GE): New macro. + (GMP_GCC_MARCH_PENTIUMPRO): Use it, remove CCBASE parameter (don't + bother checking it's gcc). + (GMP_GCC_ARM_UMODSI): New macro. + * configure.in (GMP_GCC_MARCH_PENTIUMPRO): Update parameters. + (arm*-*-*): Use GMP_GCC_ARM_UMODSI. + * gmp.texi (Notes for Particular Systems): Add arm gcc requirements. + +2001-03-28 Kevin Ryde + + * gmp.texi (Converting Integers): Document mpz_getlimbn using absolute + value and giving zero for N out of range, move to end of section. + + * tests/refmpn.c (refmpn_tdiv_qr): Use refmpn_divmod_1 rather than + refmpn_divrem_1. + * tests/tests.h: Add some prototypes that were missing. + + * mpz/tdiv_q_ui.c: Remove a comment that belonged to mpz_tdiv_r_ui. + +2001-03-26 Torbjorn Granlund + + * mpn/generic/gcdext.c: Handle carry overflow after m*n multiply code + in both arms. Partially combine multiply arms. + +2001-03-24 Kevin Ryde + + * longlong.h: Add comments to P5 count_leading_zeros. + + * demos/expr/exprz.c,t-expr.c,README: Add congruent_p and divisible_p. + +2001-03-23 Kevin Ryde + + * gmp.texi (GMPceil, GMPfloor, ge, le): New macros. + (Integer Division, mpn_cmp, mpn_sqrtrem, Algorithms): Use them. + (mpn_bdivmod): Refer to mp_bits_per_limb, not BITS_PER_MP_LIMB, and + improve formatting a bit. + (mpn_lshift, mpn_rshift): Clarify the return values, and use {rp,n} + for the destination. + Miscellaneous minor rewordings in a few places. + + * mpn/arm/arm-defs.m4: New file. + * configure.in (arm*-*-*): Use it. + * mpn/arm/*.asm: Use changecom and registers from arm-defs.m4, use L() + for local labels. + + * mpn/x86/k6/mmx/com_n.asm: Relax code alignment (same speed). + + * gmp-h.in (__GMP_ATTRIBUTE_PURE): Use __pure__ to avoid application + namespace. + + * gmp-impl.h (ABS): Add parens around argument. + +2001-03-20 Kevin Ryde + + * acinclude.m4 (GMP_PROG_M4): Use AC_ARG_VAR on $M4. + + * acinclude.m4 (GMP_M4_M4WRAP_SPURIOUS): New macro. + * configure.in: Use it. + * mpn/asm-defs.m4: Ditto. + +2001-03-18 Kevin Ryde + + * mpn/x86/pentium/logops_n.asm: New file. + + * mpn/x86/k6/k62mmx/copyd.asm: Rewrite, smaller and simpler, faster on + small sizes, slower on big sizes (about half the time). + * mpn/x86/k6/k62mmx/copyi.asm: Remove file, in favour of generic x86. + * mpn/x86/copyi.asm: Add some comments. + * mpn/x86/k6/README: Update. + + * mpn/x86/k6/gcd_1.asm: New file. + + * gmp-impl.h (NEG_MOD): Fix type of __dnorm. + + * acinclude.m4 (GMP_C_SIZES): Fix use of __GMP_WITHIN_CONFIGURE. + +2001-03-15 Kevin Ryde + + * gmp.texi (GMPabs): New macro. + (Float Comparison - mpf_reldiff): Use it. + (Integer Comparisons - mpz_cmpabs): Ditto, puts "abs" in info. + (Reentrancy): Update notes on old random functions. + (Karatsuba Multiplication): Better characterize the effect of basecase + speedups on the thresholds, pointed out by Torbjorn. + + * tune/README: Notes on the 1x1 div threshold for mpn_gcd_1. + + * tests/misc.c (mpz_pow2abs_p, mpz_flipbit, mpz_errandomb, + mpz_errandomb_nonzero, mpz_negrandom): New functions. + (mpz_erandomb, mpz_erandomb_nonzero): Use urandom(). + * tests/spinner.c (spinner_wanted, spinner_tick): Make global. + * tests/tests.h: Update prototypes. + + * tests/mpz/t-cong.c, tests/mpz/t-cong_2exp.c: New files. + * tests/mpz/Makefile.am (check_PROGRAMS): Add them. + + * mpz/cong.c, mpz/cong_2exp.c, mpz/cong_ui.c: New files. + * Makefile.am, mpz/Makefile.am: Add them. + * gmp-impl.h (NEG_MOD): New macro. + * gmp-h.in (mpz_congruent_p, mpz_congruent_2exp_p, + mpz_congruent_ui_p): Add prototypes. + * gmp.texi (Integer Division, Efficiency): Add documentation. + + * mpq/aors.c: No need for ABS on denominator sizes. + + * gmp-impl.h (mpn_divisible_p): Use __MPN. + + * gmp-impl.h (LOW_ZEROS_MASK): New macro. + * mpz/divis_ui.c, mpn/generic/divis.c: Use it. + + * mpz/setbit.c: Fix normalization for case of a negative ending up + with a zero high limb. + * tests/mpz/bit.c (check_single): New test for this problem. + + * configure.in (none-*-*): Fix cclist for default ABI=long. + +2001-03-10 Kevin Ryde + + * mpz/cfdiv_q_2exp.c: Don't scan for non-zero limbs if they don't + matter to the rounding. + + * mpz/get_ui.c: Fetch _mp_d[0] unconditionally, so the code can come + out branch-free. + +2001-03-08 Kevin Ryde + + * tests/devel/try.c (param_init): Fix reference functions for and_n + and nand_n. + + * tune/speed.c, tests/devel/try.c: Seed RANDS, not srandom etc. + * configure.in (AC_CHECK_FUNCS): Remove srand48 and srandom. + * macos/configure (coptions): Remove random/srandom, now unnecessary. + + * configure.in (gmp.h, mp.h, demos/expr/expr-impl.h): Generate using + AM_CONFIG_HEADER. + (_LONG_LONG_LIMB, HAVE_MPFR): Change to AC_DEFINEs. + * gmp-h.in, mp-h.in, demos/expr/expr-impl-h.in: Change to #undef's. + * acinclude.m4 (GMP_FUNC_ALLOCA, GMP_C_SIZES): Use gmp-h.in, not gmp.h. + * Makefile.am (EXTRA_DIST): Remove gmp-h.in and mp-h.in, now done + automatically. + * acinclude.m4 (GMP_FUNC_ALLOCA), gmp-impl.h: Set and use + __GMP_WITHIN_CONFIGURE rather than GMP_FUNC_ALLOCA_TEST. + + * mpf/random2.c: Use _gmp_rand and RANDS instead of random() for the + exponent, ensures full range of values too. + + * tests/mpz/t-div_2exp.c (check_various): Start with d based on i, but + don't let it go negative. + + * tune/tuneup.c (KARATSUBA_MUL_THRESHOLD): Limit probing to + TOOM3_MUL_THRESHOLD_LIMIT, the size of the workspace in mul_n.c. + Use a -1 with this too, so size + + * mpn/cray/cfp/mul_1.c: Don't call mpn_add_n with size 0. + * mpn/cray/cfp/addmul_1.c: Likewise. + * mpn/cray/cfp/submul_1.c: Don't call mpn_sub_n with size 0. + + * tests/mpz/t-div_2exp.c (check_various): Start 2nd d loop from 0 + (avoid problems with Cray compilers). + +2001-03-06 Torbjorn Granlund + + * mpn/cray/ieee/submul_1.c: Don't call mpn_sub_n with size 0. + + * mpn/cray/ieee/mul_basecase.c: New file. + * mpn/cray/ieee/sqr_basecase.c: New file, derived from mul_basecase.c. + +2001-03-06 Kevin Ryde + + * tests/devel/try.c (pointer_setup): Allow dst_size == SIZE_SIZE2 for + the benefit of mpn_tdiv_qr. + + * tune/tuneup.c (all): Start karatsuba probing at size==4, for the + benefit of cray t90 ieee which has speed oddities at size==2. + + * gmp-impl.h (USE_LEADING_REGPARM): Use __GMP_GNUC_PREREQ. + Use __GMP_ATTRIBUTE_PURE and ATTRIBUTE_CONST in a few places. + + * gmp-h.in (__GMP_GNUC_PREREQ) New macro. + (__GMP_ATTRIBUTE_PURE): New macro, use it in many places. + + * gmp-impl.h, gmp-h.in (mpn_jacobi_base): Move prototype to + gmp-impl.h, use ATTRIBUTE_CONST. + + * tune/speed.h (speed_cyclecounter): Inline asm version for i386. + + * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Only reread "up" after second + realloc, first is under w!=u. + +2001-03-05 Torbjorn Granlund + + * mpn/cray/sub_n.c: Rewrite using `majority' logic. + + * mpz/cfdiv_r_2exp.c (cfdiv_r_2exp): Reread `up' after realloc of w. + + * mpn/cray/ieee/mul_1.c: Rewrite. Streamline multiplications; + use `majority' logic. + * mpn/cray/ieee/addmul_1.c: Likewise. + + * mpn/cray/add_n.c: Rewrite using `majority' logic. + +2001-03-04 Torbjorn Granlund + + * longlong.h (CRAY udiv_qrnnd): No longer conditional on CRAYMPP. + (64-bit hppa add_ssaaaa): New. + (64-bit hppa sub_ddmmss): New. + + * mpn/cray/ieee/invert_limb.c: New file. + + * gmp-impl.h (RANDS): Add a `,0' to make it compile on more compilers. + +2001-03-03 Kevin Ryde + + * mpz/n_pow_ui.c (ULONG_PARITY): Move to gmp-impl.h. + * gmp-impl.h (ULONG_PARITY): i386 part from n_pow_ui.c, new generic + form by Torbjorn. + + * tests/mpz/t-div_2exp.c: New file, rewrite of t-2exp.c. + * tests/mpz/t-2exp.c: Remove file. + * tests/mpz/Makefile.am (check_PROGRAMS): Update. + + * gmp-h.in (mpz_cdiv_q_2exp, mpz_cdiv_q_2exp): Add prototypes. + * gmp.texi (Integer Division): Add mpz_cdiv_q_2exp and mpz_cdiv_q_2exp. + + * mpz/cfdiv_q_2exp.c: New file, partial rewrite of fdiv_q_2exp.c, add + mpz_cdiv_q_2exp entrypoint. + * mpz/cfdiv_r_2exp.c: New file, rewrite of fdiv_r_2exp.c, use all mpn, + add mpz_cdiv_r_2exp entrypoint. + * mpz/fdiv_q_2exp.c, mpz/fdiv_r_2exp.c: Remove files. + * mpz/Makefile.am (libmpz_la_SOURCES): Update. + * Makefile.am (MPZ_OBJECTS): Ditto. + + * gmp-impl.h (USE_LEADING_REGPARM): Use __i386__ same as longlong.h + (REGPARM_2_1, REGPARM_3_1, REGPARM_ATTR): New macros. + * mpz/jacobi.c (jac_or_kron): Use them. + + * configure.in (HAVE_ABI_$ABI): Re-enable this for config.m4, with + dots changed to underscores (necessary for hppa). + + * tests/mpz/t-divis.c, tests/mpz/t-divis_2exp.c: New files. + * tests/mpz/Makefile.am (check_PROGRAMS): Add them. + + * gmp-h.in (mpz_divisible_p, mpz_divisible_ui_p, + mpz_divisible_2exp_p): Add prototypes. + * gmp.texi (Integer Division): Add mpz_divisible_p. + (Efficiency): Add remarks about divisibility testing. + + * mpz/divis.c, mpz/divis_ui.c, mpz/divis_2exp.c: New files. + * mpz/Makefile.am (libmpz_la_SOURCES): Add them. + * Makefile.am (MPZ_OBJECTS): Ditto. + + * mpn/generic/divis.c: New file. + * configure.in (gmp_mpn_functions): Add it. + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Ditto. + * gmp-impl.h (mpn_divisible_p): Add prototype. + + * urandom.h: Remove file. + * Makefile.am (EXTRA_DIST): Remove it. + + * tests/mpz/convert.c, dive.c, io.c, logic.c, reuse.c, t-2exp.c, + t-fdiv.c, t-fdiv_ui.c, t-gcd.c, t-jac.c, t-mul.c, t-pow.c, + t-powm.c, t-powm_ui.c, t-root.c, t-sqrtrem.c, t-tdiv.c, + t-tdiv_ui.c: Use RANDS, initialized by tests_rand_start. + + * tests/mpz/t-pow.c: New file, being t-pow_ui renamed and with some + further tests added. + * tests/mpz/t-pow_ui.c: Remove file. + * tests/mpz/Makefile.am (check_PROGRAMS): Update. + + * tests/t-modlinv.c: Don't use urandom.h. + * tests/mpz/bit.c, tests/mpz/t-scan.c: Ditto. + * tests/mpq/t-cmp.c, tests/mpq/t-cmp_ui.c, tests/mpq/t-get_d.c: Ditto. + * tests/mpf/reuse.c, t-add.c, t-conv.c, t-dm2exp.c, t-muldiv.c, + t-sqrt.c, t-sub.c: Ditto. + + * tests/misc.c (tests_rand_start, tests_rand_end): New functions. + (tests_start, tests_end): Use them. + (urandom): New function. + * tests/tests.h: Add prototypes. + + * mpz/random.c: Rewrite using mpz_urandomb and RANDS. + * mpn/generic/random.c: Rewrite using _gmp_rand and RANDS. + * mpn/generic/random2.c: Use RANDS not random() etc. + + * gmp-impl.h (__gmp_rands, __gmp_rands_initialized): Add externs. + (gmp_randstate_ptr): New typedef. + (RANDS, RANDS_CLEAR): New macros. + + * rands.c: New file. + * Makefile.am (libgmp_la_SOURCES): Add it. + + * configure.in (mpn_objs_in_libmp): New AC_SUBST. + * Makefile.am (libmp_la_DEPENDENCIES): Use it. + +2001-03-02 Torbjorn Granlund + + * mpn/pa64/udiv_qrnnd.asm: New file. + +2001-03-01 Kevin Ryde + + * mpbsd/rpow.c: New file. + * mpbsd/Makefile.am (libmpbsd_la_SOURCES): Add it + (nodist_libmpbsd_la_SOURCES): Remove pow_ui.c. + * Makefile.am (MPBSD_OBJECTS): Add rpow.lo, remove pow_ui.lo. + (libmp_la_DEPENDENCIES): Add mpz/n_pow_ui.lo. + + * mpz/ui_pow_ui.c: Rewrite using mpz_n_pow_ui. + * mpz/pow_ui.c: Ditto, and no longer provide rpow for mpbsd. + + * mpz/n_pow_ui.c: New file, rewrite of pow_ui.c and ui_pow_ui.c. Use + less temporary memory, strip factors of 2 from the base, use mpn_mul_2 + if available. + * mpz/si_pow_ui.c: New file. + * mpz/Makefile.am (libmpz_la_SOURCES): Add them. + * Makefile.am (MPZ_OBJECTS): Ditto. + * gmp-impl.h (mpz_n_pow_ui): Add prototype. + * gmp-h.in (mpz_si_pow_ui): Add prototype. + * gmp.texi (Integer Exponentiation): Add mpz_si_pow_ui. + + * acinclude.m4 (GMP_C_SIZES): Add BITS_PER_ULONG. + Correction to mp_limb_t working check. + * configure.in (limb_chosen): New variable. + * tests/t-constants.c (BITS_PER_ULONG): Check this value. + Add some reminders about tests that fail on Cray. + + * tests/refmpn.c (refmpn_mul_2): New function. + * tests/refmpz.c (refmpz_pow_ui): Copied from tests/mpz/t-pow_ui.c + * tests/tests.h: Add prototypes. + + * configure.in (none-*-*): Add ABI=longlong. + * doc/configuration (Long long limb testing): Describe it. + + * gmp.texi (Low-level Functions): Move some commented out remarks ... + * mpn/generic/mul_basecase.c: ... to here. + + * mpn/x86/README: Note "%=" as an alternative to "1:" in __asm__. + + * tests/trace.c (mp_trace_start): Print "bin" for binary. + + * mpn/generic/dump.c: Add a couple of casts to keep gcc quiet. + + * gmp-h.in (mpn_incr_u, mpn_decr_u): Add parens around arguments. + + * mpbsd/mout.c, mpbsd/mtox.c (num_to_text): Remove unused variable. + + * mpfr/set_d.c (mpfr_get_d2): Declare "q" for 64-bit limbs. + +2001-02-28 Torbjorn Granlund + + * mpn/pa64w/udiv_qrnnd.asm: Tune. + +2001-02-27 Torbjorn Granlund + + * mpn/pa64w/udiv_qrnnd.asm: New file. + +2001-02-26 Torbjorn Granlund + + * longlong.h (arm): Optimize sub_ddmmss by testing for constant + operands. + * mpn/arm/invert_limb.asm: New file. + +2001-02-24 Torbjorn Granlund + + * mpn/generic/lshift.c: Rewrite. + * mpn/generic/rshift.c: Rewrite. + + * longlong.h: Use UWtype for external interfaces that expect mp_limb_t. + + * longlong.h (arm): #define invert_limb. + + * mpn/arm: Make labels have local scope. + + * configure.in (arm*-*-*): Set extra_functions. + * longlong.h (arm): #define udiv_qrnnd. + * mpn/arm/udiv.asm: New file. + +2001-02-24 Kevin Ryde + + * tune/many.pl: Add mpn_count_leading_zeros, mpn_count_trailing_zeros + and mpn_invert_limb. Add count_leading_zeros, count_trailing_zeros + from a .h file. Correction to modexact_1_odd prototype. Support + ansi2knr. + * tune/speed.h, tune/common.c: Consequent changes. + + * demos/expr/*: Make a few more functions available in expressions, + create only libexpr.a, misc minor updates. + + * mpn/Makeasm.am: Add some comments about suffix ordering. + + * tests/refmpn.c (rshift_make, lshift_make): No need to compare + unsigned to zero. + + * mpq/mul.c: Detect and optimize squaring. + +2001-02-23 Torbjorn Granlund + + * mpn/mips3: Convert files to `.asm'. + + * mpn/arm: Convert files to `.asm'. Misc cleanups. + * mpn/arm/submul_1.asm: New file. + +2001-02-21 Kevin Ryde + + * tune/tuneup.c (all): Only one compiler print should match, no need + for #undef PRINTED_COMPILER. + + * mpfr/mpfr.h (mpfr_sgn): Use mpfr_cmp_ui (patch from Paul). + + * mpz/fib_ui.c: Update some remarks about alternative algorithms. + * gmp.texi (Fibonacci Numbers Algorithm): Ditto. + (Assigning Floats): Clarify mpf_swap swaps the precisions too. + (Low-level Functions): Try to be clearer about negative cofactors. + +2001-02-21 Torbjorn Granlund + + * mpn/sparc64/copyi.asm: Streamline for small operands. + * mpn/sparc64/add_n.asm: Likewise. + * mpn/sparc64/sub_n.asm: Likewise. + + * mpn/sparc64/copyd.asm: New file. + +2001-02-20 Torbjorn Granlund + + * mpn/sparc64/lshift.asm: Rewrite. + * mpn/sparc64/rshift.asm: Rewrite. + +2001-02-19 Torbjorn Granlund + + * mpn/sparc64/add_n.asm: Rewrite using `majority' logic. + * mpn/sparc64/sub_n.asm: Likewise. + + * tune/tuneup.c (all): Recognise DECC and MIPSpro compilers. + + * mpn/pa64/sqr_diagonal.asm: Use PROLOGUE/EPILOGUE. + * mpn/pa642/sqr_diagonal.asm: Likewise. + + * configure.in (HAVE_ABI_$abi): Disable for now. + + * mpn/asm-defs.m4 (PROLOGUE): Use LABEL_SUFFIX. + + * acinclude.m4 (GMP_ASM_ATTR): New check, for hppa oddities. + +2001-02-18 Torbjorn Granlund + + * mpn/hppa/hppa1_1/gmp-mparam.h: New file. + * mpn/hppa/hppa2_0/gmp-mparam.h: New file. + + * mpn/pa64/sqr_diagonal.asm: New file. + * mpn/pa64w/sqr_diagonal.asm: New file. + * mpn/hppa/hppa1_1/sqr_diagonal.asm: New file. + * mpn/hppa/hppa2_0/sqr_diagonal.asm: New file. + + * mpn/sparc32/v9/add_n.asm: Use `fitod' instead of `fxtod' for dummy + FA-pipeline insns. + * mpn/sparc32/v9/sub_n.asm: Likewise. + +2001-02-18 Kevin Ryde + + * gmp.texi (Known Build Problems): Notes on make, $* and K&R, misc + tweaks elsewhere. + (Low-level Functions): Use {} notation in mpn_sqrtrem. + (Basecase Multiplication): Mention BASECASE_SQR_THRESHOLD. + + * mpfr/isnan.c (mpfr_number_p): Infinity is not a number. + * mpfr/out_str.c: Pass strlen+1 for the block size to free. + * mpfr/get_str.c: Correction for realloc to strlen+1. + + * acinclude.m4 (GMP_C_SIZES): Generate an error if mp_limb_t doesn't + seem to work for some reason. + +2001-02-16 Torbjorn Granlund + + * mpn/sparc32/v9/gmp-mparam.h: Retune. + + * mpn/sparc32/v9/add_n.asm: New file. + * mpn/sparc32/v9/sub_n.asm: New file. + + * mpn/sparc32/v9/mul_1.asm: Tune function entry. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + + * mpn/sparc32/v9/sqr_diagonal.asm: New file. + +2001-02-16 Kevin Ryde + + * configure.in: Fix flags selection when $CC is a compiler known to us. + + * demos/expr/exprfr.c (e_mpfr_cos, e_mpfr_sin): mpfr_sin_cos now + allows NULL for one parameter. + + * mpfr/*: Update to 20010215. + * mpfr/trunc.c: Use -DOPERATION scheme, and gmp mpn_zero_p. + * mpfr/sqrt.c: Use plain mpn_sqrtrem, not mpn_sqrtrem_new. + * mpfr/sqrtrem.c: Remove file. + * mpfr/Makefile.am (libmpfr_a_SOURCES): Add isnan.c and set_ui.c, + remove sqrtrem.c and srandom.h. + + * configfsf.guess: Update to 2001-02-13. + * configfsf.sub: Update to 2001-02-16. + * config.sub (j90, t90): Remove special handing, configfsf.sub now ok. + + * Makefile.am (MPF_OBJECTS): Add a couple of missing $U's. + + * tune/tuneup.c: Identify compiler used (GCC and Sun C so far). + +2001-02-15 Torbjorn Granlund + + * mpn/sparc32/v9/mul_1.asm: Change `ld' to `lduw' and `st' to `stw'. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + +2001-02-14 Torbjorn Granlund + + * mpn/mips3/mips.m4: New file. + * configure.in (mips*-*-irix[6789]*): Use mips3/mips.m4. + + * mpn/powerpc64/sqr_diagonal.asm: New file. + + * mpn/mips3/sqr_diagonal.asm: New file. + +2001-02-12 Torbjorn Granlund + + * mpn/powerpc32/sqr_diagonal.asm: New file. + + * mpn/generic/sqr_basecase.c: Remove declaration of mpn_sqr_diagonal. + Fix typo in header comment. + +2001-02-12 Kevin Ryde + + * mpn/generic/mul.c, mpn/generic/mul_n.c, gmp-impl.h: Use + mpn_mul_basecase for squaring below new BASECASE_SQR_THRESHOLD. + * tune/tuneup.c gmp-impl.h: Tune BASECASE_SQR_THRESHOLD. + + * Makefile.am (libgmp.la, libmp.la): Revert change to build from + mpn/libmpn.la etc, go back to explicitly listed objects. + + * configure.in: Recognise sparc64-*-*, not just sparc64-*-linux*. + +2001-02-11 Torbjorn Granlund + + * mpn/asm-defs.m4 (sqr_diagonal): New define_mpn. + + * mpn/alpha/sqr_diagonal.asm: New file. + +2001-02-11 Kevin Ryde + + * gmp.texi (Low-level Functions): Note mpn_get_str clobbers its input + plus 1 extra limb. + + * mpfr/add.c,agm.c,exp2.c,exp3.c,generic.c,log2.c,pi.c,print_raw.c, + set_d.c,sin_cos.c,sqrtrem.c,sub.c: Apply some tweaks for K&R. + * tests/mpz/reuse.c, tests/mpq/t-md_2exp.c, demos/pexpr.c, + demos/expr/t-expr.c: Ditto. + + * configure.in (HAVE_ABI_$abi): New define in config.m4. + + * gmp-impl.h (mpn_sqr_diagonal): Add prototype and define. + * tune/speed.c,speed.h,common.c,many.pl: Add measuring of + mpn_sqr_diagonal. + + * gmp.texi, acinclude.m4: Mention x86 solaris 2.7 has the reg->reg + movq bug the same as 2.6. + + * mpfr/Makefile.am (EXTRA_DIST): Add mpfr-test.h and mpf2mpfr.h. + + * mpn/x86/README: Merge contents of README.family. + * mpn/x86/README.family: Remove file. + + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add mode1o, gcd_finda, + invert_limb, sqr_diagonal; remove mod_1_rs; sort alphabetically. + +2001-02-10 Torbjorn Granlund + + * configure.in (gmp_mpn_functions_optional): List sqr_diagonal. + + * mpn/powerpc32/aix.m4: Use unnamed csects. + * mpn/powerpc64/aix.m4: Likewise. + + * acconfig.h: Add #undef of mpn_sqr_diagonal. + Remove lots of spacing. + + * configure.in (syntax testing section): Match power* instead of + powerpc*. + * mpn/power: Convert files to `.asm'. + Prefix umul_ppmm and sdiv_qrnnd. + Update some comments. + +2001-02-09 Kevin Ryde + + * acconfig.h: Add HAVE_NATIVE_mpn_modexact_1_odd and + HAVE_NATIVE_mpn_modexact_1c_odd. + + * configure.in (CCAS): Don't override a user selection. + + * mpq/cmp_ui.c: DIVIDE_BY_ZERO if den2==0. + +2001-02-08 Torbjorn Granlund + + * mpn/generic/sqr_basecase.c: Use mpn_sqr_diagonal when appropriate. + +2001-02-07 Kevin Ryde + + * gmp.texi (Low-level Functions): mpn_preinv_mod_1 now undocumented. + + * mpn/generic/random2.c (myrandom): Use rand() on mingw. + + * mpn/alpha/gmp-mparam.h: Update tuned parameters. + +2001-02-05 Torbjorn Granlund + + * mpn/alpha/ev6/gmp-mparam.h: Retune. + +2001-02-05 Kevin Ryde + + * Makefile.am (libgmp, libmp): Construct from mpn/libmpn.la etc rather + than explicitly listed objects. + + * urandom.h: Use rand() on mingw. + + * mpn/powerpc64/lshift.asm,addsub_n.asm: Use r1 not 1. + +2001-02-04 Torbjorn Granlund + + * mpn/ia64/copyi.asm: New file. + * mpn/ia64/copyd.asm: New file. + +2001-02-04 Kevin Ryde + + * mpn/alpha/ev5/gmp-mparam.h, mpn/mips3/gmp-mparam.h, + mpn/powerpc32/gmp-mparam.h, mpn/powerpc64/gmp-mparam.h, + mpn/sparc64/gmp-mparam.h, mpn/x86/*/gmp-mparam.h: + Update tuned parameters. + + * mpn/x86/i486: New directory. + * configure.in (i486-*-*): Use it. + * mpn/x86/i486/gmp-mparam.h: New file. + + * mpn/x86/pentium/mode1o.asm: New file. + * mpn/x86/p6/mode1o.asm: New file. + + * tune/many.pl: Use $(ASMFLAGS_PIC) and $(CFLAGS_PIC). + + * gmp.texi (Integer Division): Another rewording of 2exp divisions. + +2001-02-03 Torbjorn Granlund + + * mpn/arm/gmp-mparam.h: Tune. + + * mpn/ia64/popcount.asm: Put a `;;' break at end of main loop. + + * configure.in (arm*-*-*): Set gcc_cflags in order to pass + $fomit_frame_pointer. + + * tests/mpz/t-mul.c (base_mul): Remove an unused variable. + +2001-02-02 Torbjorn Granlund + + * demos/pexpr.c (TIME): New macro. + (main): Use TIME--print timing more accurately. + (setup_error_handler): Increase RLIMIT_DATA to 16 Mibyte. + + * longlong.h (arm): Add __CLOBBER_CC to add_ssaaaa and sub_ddmmss. + +2001-02-02 Kevin Ryde + + * configure.in: Don't remove gmp-mparam.h and mpn source links under + --no-create since in that case they're not re-created. + + * demos/expr: New directory. + * Makefile.am (SUBDIRS, allprogs): Add it. + * demos/expr/README, Makefile.am, expr.c, exprv.c, exprz.c, exprza.c, + exprq.c, exprqa.c, exprfa.c, exprf.c, exprfr.c, exprfra.c, expr.h, + expr-impl-h.in, run-expr.c, t-expr.c: New files. + * configure.in: Generate demos/expr/Makefile & demos/expr/expr-impl.h. + + * Makefile.am: Remove mpfr from main libgmp. + * mpfr/Makefile.am: Build and install separate libmpfr.a. + * mpfr/*: Update to mpfr 2001. + + * gmp-h.in (__GNU_MP_VERSION_MINOR): Bump to 2. + * Makefile.am (libtool -version-info): Bump appropriately. + * NEWS: Updates. + + * tune/divrem1div.c, tune/divrem1inv.c, tune/divrem2div.c, + tune/divrem2inv.c: Renamed from divrem_1_div.c, divrem_1_inv.c, + divrem_2_div.c, divrem_2_inv.c, to be unique in DOS 8.3 filenames. + * tune/Makefile.am (libspeed_la_SOURCES): Update. + + * mpn/x86/*/README, mpn/x86/README.family: Misc updates. + * tune/README: Misc updates. + * doc/configuration: Misc updates. + + * mpn/x86/pentium/mmx/gmp-mparam.h: Change UDIV_PREINV_TIME to + UDIV_NORM_PREINV_TIME. + + * mpz/pprime_p.c: Use ASSERT_ALWAYS instead of abort. + + * rand.c (__gmp_rand_lc_scheme): Add "const". + (struct __gmp_rand_lc_scheme_struct): Make astr "const char *". + + * demos/calc/calc.y, demos/calc/calclex.l: Add kron function. + + * tests/devel/try.c: Partial rewrite, new scheme of function types, + allow result validation functions, add sqrtrem and jacobi testing. + * tune/many.pl: Corresponding updates. + * tests/devel/Makefile.am: Add a convenience rule for libtests.la. + + * tests/refmpz.c: New file. + * tests/Makefile.am: Add it. + * tests/misc.c (mpz_erandomb, mpz_erandomb_nonzero): New functions. + * tests/tests.h: Add prototypes. + + * mpn/x86/k6/cross.pl: Add a couple more exceptions. + + * gmp.texi: Don't use @nicode{'\0'}, it doesn't come out right in tex. + (Introduction to GMP): Mention Cray vector systems. + (Build Options): Describe --enable-mpfr, refer to its manual. Add + Crays under supported CPUs. + (Debugging): Add notes on source file paths. + (Autoconf): New section. + (Assigning Integers): Note truncation by mpz_set_d, mpz_set_q and + mpz_set_f. + (Converting Integers): Note the size mpz_get_str allocates. + (Floating-point Functions): Rewrite introduction, clarifying some + points about precision handling. + (Converting Floats): Note the size mpf_get_str allocates, and that it + gives an empty string for zero. Add mpf_get_si and mpf_get_ui. + (Float Comparison): Give the formula mpf_reldiff calculates. + (Miscellaneous Float Functions): Add mpf_integer_p and mpf_fits_*_p. + (Random Number Functions): Misc rewordings for clarity. + (Random State Initialization): Ditto. + (Custom Allocation): Remove note on deallocate_function called with 0, + misc rewording and clarifications. + (Exact Remainder): New section. + (Binary GCD): A few words on initial reduction using division. + (Accelerated GCD): Refer to exact remainder section. + (Extended GCD): Extra remarks on single versus double selection. + (Jacobi Symbol): Update for mpz/jacobi.c rewrite and modexact_1_odd. + (Modular Powering Algorithm): Refer to exact remainder section. + (Assembler SIMD Instructions): Update remarks on MMX. + (Contributors): Amend to "Divide and Conquer" division. + (References): Tweak some formatting. Add "Proof of GMP Fast Division + and Square Root Implementations" by Paul Zimmermann. + +2001-01-31 Torbjorn Granlund + + * configure.in: Don't ever pass -mips3; let ABI flags imply ISA. + +2001-01-31 Kevin Ryde + + * tune/time.c: Remove unnecessary longlong.h. + (speed_endtime): Add some extra diagnostics. + + * tests/mpz/t-fdiv_ui.c, tests/mpz/t-tdiv_ui.c: Use unsigned long for + the divisor, not mp_limb_t. + * tests/mpz/t-jac.c (try_base): Use %llu for long long limb. + * tests/trace.c: Add for strlen. + + * tune/freq.c (speed_cpu_frequency_proc_cpuinfo): Ignore "cycle + frequency" of 0, allow "BogoMIPS" as well as "bogomips". + + * macos/Makefile.in: Add mpf/fits_s.c and mpf/fits_u.c objects. + +2001-01-30 Torbjorn Granlund + + * longlong.h: Add add_ssaaaa and sub_ddmmss for 64-bit sparc. + +2001-01-29 Torbjorn Granlund + + * mpn/powerpc64/addmul_1.asm: Prefix registers with an `r'. + * mpn/powerpc64/submul_1.asm: Likewise. + * mpn/powerpc64/mul_1.asm: Likewise. + + * configure.in (alpha*-*-*): Amend last change to handle pca*. + +2001-01-29 Kevin Ryde + + * tune/speed.h (SPEED_ROUTINE_INVERT_LIMB_CALL): Don't let the + compiler optimize everything away. + + * tune/speed.c, tune/speed.h, tune/common.c, tune/Makefile.am: Measure + operator_div, operator_mod, mpn_divrem_2_div, mpn_divrem_2_inv, + mpn_sb_divrem_m3, mpn_sb_divrem_m3_div, mpn_sb_divrem_m3_inv, + mpn_dc_divrem_sb_div, mpn_dc_divrem_sb_inv. + * tune/divrem_2_div.c, tune/divrem_2_inv.c, tune/sb_div.c, + tune/sb_inv.c: New files. + + * tune/tuneup.c, gmp-impl.h, tune/speed.h, tune/common.c, + tune/Makefile.am: Tune SB_PREINV_THRESHOLD and DIVREM_2_THRESHOLD. + + * mpn/generic/divrem_2.c: Use new DIVREM_2_THRESHOLD. + * mpn/generic/sb_divrem_mn.c: Use new SB_PREINV_THRESHOLD. + + * mpn/x86/p6/mmx/lshift.asm, mpn/x86/p6/mmx/rshift.asm: New files, + just m4 include()ing the P55 code. + * configure.in (pentium[23]-*-*): Remove x86/pentium/mmx from path. + +2001-01-27 Kevin Ryde + + * configure.in (AC_CHECK_FUNCS): Add srand48. + * tune/speed.c: Use this test. + + * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): Allow "egcs-" prefix on gcc + --version, warn if the format is unrecognised. + (GMP_COMPARE_GE): Guard against empty $1 not only on last arg. + (GMP_INIT, GMP_FINISH, GMP_PROG_M4): Obscure or eliminate literal + "dnl"s since autoconf thinks they indicate faulty macros. + + * mpz/get_str.c, mpf/get_str.c: Make allocated string block exactly + strlen(str)+1 bytes. + * mpz/dump.c, mpf/dump.c, tests/mpz/convert.c: Use this size when + freeing. + * tests/mpf/t-conv.c: Ditto, and ensure x==0 is exercised. + + * tests/mpz/t-fits.c: New file. + * tests/mpz/Makefile.am: Add it. + + * tests/mpf/t-fits.c: New file. + * tests/mpf/t-get_si.c: New file. + * tests/mpf/t-int.c: New file. + * tests/mpf/Makefile.am: Add them. + + * mpf/fits_s.c: New file. + * mpf/fits_u.c: New file. + * mpf/get_si.c: New file. + * mpf/get_ui.c: New file. + * mpf/int_p.c: New file. + * Makefile.am, mpf/Makefile.am: Add them. + * gmp-h.in (mpf_fits_*_p, mpf_get_si, mpf_get_ui, mpf_integer_p): Add + prototypes. + + * tests/memory.c (tests_allocate, tests_reallocate): Guard against + size==0. + + * tests/mpz/*.c, tests/mpq/*.c, tests/mpf/*.c: Uses tests_start and + tests_end. + + * gmp-impl.h (USE_LEADING_REGPARM): Fix conditionals. + +2001-01-23 Kevin Ryde + + * configure.in, mpn/Makeasm.am (ASMFLAGS_PIC): New substitution, + allowing -DPIC to be suppressed on cygwin. + (CFLAGS_PIC): New substitution, use it and $(CCAS) directly, rather + than $(LIBTOOL), avoiding a problem with FreeBSD 2.2.8. + + * mpn/x86/k6/mode1o.asm, mpn/x86/k7/mode1o.asm: Remove an unnecessary + +[.-L(here)] from _GLOBAL_OFFSET_TABLE_, avoids a segv from gas 1.92.3. + * mpn/x86/README.family: Add notes on the problem. + +2001-01-20 Torbjorn Granlund + + * configure.in (alpha*-*-*): Default `flavour' to ev4. + +2001-01-19 Kevin Ryde + + * assert.c, gmp-impl.h (__gmp_assert_fail): Change return type to + void, since it's no longer used in expressions. + + * mpn/x86/addsub_n.S: Remove file, since it doesn't work and it upsets + tune/many.pl. + + * mpz/jacobi.c: Rewrite, but still binary algorithm; accept zero and + negative denominators; merge mpz_jacobi and mpz_legendre, add + mpz_kronecker; use mpn directly, add special cases for size==1. + * gmp.texi (Number Theoretic Functions): Update. + * gmp-h.in (mpz_kronecker): Add prototype. + * gmp-impl.h (USE_LEADING_REGPARM): New macro. + * tests/mpz/t-jac.c: Test mpz_kronecker. + * mpz/legendre.c: Remove file. + * Makefile.am, mpz/Makefile.am: Update. + + * longlong.h (alpha count_leading_zeros): Use __attribute__ ((const)) + when possible, add parameter to prototype. + (ia64 udiv_qrnnd): Use for all compilers, not just gcc. + (pentium count_trailing_zeros): Use count_leading_zeros. + + * acinclude.m4 (GMP_C_ATTRIBUTE_CONST, GMP_C_ATTRIBUTE_NORETURN): New + macros. + * configure.in: Use them. + * gmp-impl.h (ATTRIBUTE_CONST, ATTRIBUTE_NORETURN): New macros. + (mpn_invert_limb): Add ATTRIBUTE_CONST. + (__gmp_assert_fail): Add ATTRIBUTE_NORETURN. + +2001-01-18 Kevin Ryde + + * gmp-h.in, gmp-impl.h (__gmp_allocate_func, __gmp_reallocate_func, + __gmp_free_func): Move prototypes from gmp-impl.h to gmp-h.in, for the + benefit of gmp++.h. + + * gmp-impl.h, tests/misc.c, tests/tests.h: Move MPZ_SET_STR_OR_ABORT + and MPF_SET_STR_OR_ABORT to mpz_set_str_or_abort and + mpf_set_str_or_abort in libtests. + * tests/mpz/convert.c, tests/mpz/t-bin.c, tests/mpz/t-get_si.c, + tests/mpz/t-jac.c, tests/mpz/t-misc.c, tests/mpq/t-md_2exp.c, + tests/mpq/t-set_f.c, tests/mpf/t-conv.c, tests/mpf/t-misc.c: Update. + + * mpn/generic/sqrtrem.c: Use MPN_COPY_INCR (for when rp==NULL). + + * tests/mpz/reuse.c: Only run mpz_divexact_gcd on positive divisors. + +2001-01-18 Torbjorn Granlund + + * demos/pexpr.c (main): Accept -vml option. + (fns): List `hamdist', `pow', `nextprime'. + (mpz_eval_expr): Return -1 for `popc' of negative. + (mpz_eval_expr): Handle `hamdist', `pow', `nextprime'. + +2001-01-15 Kevin Ryde + + * mpn/alpha/ev5/mode1o.c: New file. + + * tune/freq.c (speed_cpu_frequency_measure): Check cycles_works_p + before running speed_cyclecounter. + * tune/speed.h (cycles_works_p): Add prototype. + +2001-01-13 Torbjorn Granlund + + * tests/rand/t-rand.c (farr): Fix typo. + (zarr): Fix typo. + +2001-01-12 Kevin Ryde + + * mpz/kronsz.c: Don't depend on right shifting a negative. + + * mpn/x86/gmp-mparam.h: New file. + + * mpn/x86/pentium/mmx/mul_1.asm: New file. + +2001-01-11 Torbjorn Granlund + + * mpz/kronsz.c: Temporary workaround for Cray right shift oddities. + Explicitly compare against zero in tests. + +2001-01-10 Kevin Ryde + + * mpz/kronzs.c: Don't depend on right shifting a negative. + +2001-01-09 Torbjorn Granlund + + * tests/t-constants.c: Disable some undefined tests. + (CHECK_MAX_S): Remove workaround for gcc 2.95.2 bug recently added. + +2001-01-09 Kevin Ryde + + * tests/t-constants.c: Add more diagnostics. + (CHECK_MAX_S): Fix for gcc 2.95.2 -mpowerpc64 -maix64. + + * mpn/x86/k6/mode1o.asm: New file. + * mpn/x86/k7/mode1o.asm: New file. + + * mpn/asm-defs.m4 (modexact_1_odd, modexact_1c_odd): New define_mpn's. + (__clz_tab, modlimb_invert_table, PROLOGUE, EPILOGUE): Add asserts for + GSYM_PREFIX. + * mpn/x86/x86-defs.m4 (Zdisp): Add a movzbl. + + * tests/mpz/t-jac.c (check_a_zero): New test. + (check_squares_zi): Fix to use (a^2/b), not (a*b/b); revert last + change avoiding a,b=0, both are fine. + (try_2den): Don't use mpz_kronecker_ui for the expected answer. + (try_*): Call abort rather than exit. + + * mpz/kronzu.c, mpz/kronzs.c: Fix for a=0. + + * tune/tuneup.c (USE_PREINV_MOD_1): Fix to use new DATA_HIGH_LT_R. + +2001-01-08 Torbjorn Granlund + + * urandom.h: Amend 2000-11-21 change to also handle cygwin. + +2001-01-08 Kevin Ryde + + * tune/many.pl: Updates for move to tests/devel, add modexact_1_odd, + don't assume C files can't have carry-in entrypoints, remove + $(TRY_TESTS_OBJS) now in libtests. + + * tests/devel/try.c, tests/refmpn.c, tests/tests.h: Remove + mpn_mod_1_rshift testing. + + * tune/tuneup.c (fft_step_size): Test for overflow using the actual + mp_size_t, don't use BITS_PER_INT. + + * tune/speed.c (r_string): "r" is a limb, use BITS_PER_MP_LIMB and + change LONG_ONES to LIMB_ONES. + * tune/time.c (M_2POWU): Use INT_MAX rather than BITS_PER_INT. + + * extract-dbl.c (BITS_PER_PART): Use BITS_PER_MP_LIMB not + BITS_PER_LONGINT. + + * mpz/inp_raw.c, mpz/out_raw.c: Add private defines of BITS_PER_CHAR. + * mpz/fac_ui.c, tests/mpz/t-fac_ui.c: Don't use BITS_PER_LONGINT. + * tests/mpz/t-get_si.c: Don't use BITS_PER_LONGINT, do the LONG_MAX + tests with some explicit code. + + * mpn/*/gmp-mparam.h, acinclude.m4, tests/t-constants.c + (BITS_PER_LONGINT, BITS_PER_INT, BITS_PER_SHORTINT, BITS_PER_CHAR): + Remove defines, remove probings, remove tests. + + * tune/tuneup.c (MODEXACT_1_ODD_THRESHOLD): Add tuning. + + * tune/speed.c,speed.h,common.c: Add measuring of mpn_modexact_1_odd, + mpn_gcd_finda, and an "N" form for mpn_gcd_1. + + * tests/mpz/t-jac.c (check_squares_zi): Ensure random a,b != 0. + +2001-01-07 Kevin Ryde + + * configure.in (gmp_mpn_functions): Add mode1o, remove mod_1_rs. + + * mpn/generic/mod_1_rs.c: Remove file, no longer needed. + * gmp-h.in (mpn_mod_1_rshift): Remove prototype and define. + + * mpq/set_f.c: Use MPN_STRIP_LOW_ZEROS_NOT_ZERO. + + * mpz/kronzu.c, mpz/kronzs.c, mpz/kronuz.c, mpz/kronsz.c: Use + mpn_modexact_1_odd, new style MPN_STRIP_LOW_ZEROS_NOT_ZERO, and new + JACOBI macros. Various rearrangements supporting all this. + + * mpn/generic/gcd_1.c: Use mpn_modexact_1_odd, reduce u%v if u much + bigger than v when size==1, some rearrangements supporting this. + + * gmp-impl.h (JACOBI_*): More macros, add some casts to "int". + (MPN_STRIP_LOW_ZEROS_NOT_ZERO): Add a "low" parameter. + (mpn_modexact_1_odd, mpn_modexact_1c_odd): Add prototype and defines. + (MODEXACT_1_ODD_THRESHOLD): New threshold. + (MPN_MOD_OR_MODEXACT_1_ODD, JACOBI_MOD_OR_MODEXACT_1_ODD): New macros. + + * mpn/generic/mode1o.c: New file. + + * tests/mpz/reuse.c: Add testing of mpz_divexact_gcd. + * tests/mpz/t-fac_ui.c: Use libtests for memory leak checking. + * tests/mpz/t-fib_ui.c: Add a usage comment. + + * tests/mpz/bit.c: Use libtests. + * tests/mpz/t-scan.c: Remove unused subroutines. + * tests/devel/try.c: Use libtests, define PROT_NONE if the system + doesn't. + + * tests/spinner.c, tests/x86check.c: Use tests.h. + * tests/trace.c: Use tests.h, add mpf_trace. + * tests/refmpn.c: Use tests.h, add refmpn_malloc_limbs_aligned, + refmpn_tstbit, refmpn_neg. + + * tune/common.c, tune/speed.h: Update for functions moved to + tests/misc.c. + + * tune/Makefile.am, tests/mpz/Makefile.am, tests/mpq/Makefile.am, + tests/mpf/Makefile.am: Use tests/libtests.la. + + * configure.in (AC_OUTPUT): Update for new directories. + (x86 CALLING_CONVENTIONS_OBJS): Use .lo for libtests.la, allow + ansi2knr on x86check.c. + + * tests/Makefile.am: Establish new libtests.la convenience library, + add mpz, mpq, mpf, mpbsd subdirectories. + * tests/tests.h: New file. + * mpn/tests/ref.h,try.h: Remove files, now in tests.h. + + * tests/mpf/ref.c: Move to tests/refmpf.c, rename functions to refmpf. + * tests/mpf/t-add.c, tests/mpf/t-sub.c: Use libtests. + * tests/mpf/Makefile.am: Update. + + * tests/memory.c: New file. + * tests/misc.c: New file, a few subroutines from the test programs. + + * mpz/tests, mpq/tests, mpf/tests, mpbsd/tests: Move directories to + tests/mpz etc. + * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpbsd/Makefile.am + (SUBDIRS): Remove. + + * tests/devel: New directory. + * mpn/tests/*.c: Move programs to tests/devel. + * mpn/tests/Makefile.am, mpn/tests/README: Move to tests/devel, update. + + * mpn/tests/ref.c: Move to tests/refmpn.c. + * mpn/tests/spinner.c,trace.c,x86call.asm,x86check.c: Move to tests + directory. + + * tests/t-constants.c: Add checks of HIGHBIT, MAX and MIN constants, + simplify ANSI vs K&R stringizing, use correct printf format types, do + all tests before aborting. + +2001-01-05 Torbjorn Granlund + + * mpn/cray/ieee/gmp-mparam.h: Retune. + +2001-01-05 Kevin Ryde + + * configure.in (mp.h): Only create this under --enable-mpbsd. + + * demos/calc: New subdirectory, move demos/calc* to it. + * demos/calc/Makefile.am: New file, split from demos/Makefile.am. + * demos/Makefile.am: Update. + * configure.in (AC_OUTPUT): Add demos/calc/Makefile. + + * tests/t-constants.c (CALC_BITS_PER_TYPE etc): Use a run-time test + for how many bits work in a give type, don't assume bits==8*sizeof. + +2001-01-04 Kevin Ryde + + * mpz/fits_s.c, mpz/fits_u.c: New files, split from fits.c, use plain + UINT_MAX etc, not MPZ_FITS_UTYPE_SDT etc. + * mpz/fits.c: Remove file. + * mpz/Makefile.am, macos/Makefile.in: Update. + + * gmp-impl.h (UNSIGNED_TYPE_MAX etc): Remove these generic forms. + (MPZ_FITS_[SU]TYPE_SDT): Remove these. + (UINT_MAX etc): Provide a full set of defaults. + * gmp-h.in (__GMP_MP_SIZE_T_INT): New define. + + * mpz/tests/t-scan.c: New file. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. + + * mpz/scan0.c, mpz/scan1.c: Rewrite, don't read beyond allocated + memory, support negatives, return ULONG_MAX for no bit found. + * gmp.texi (Integer Logic and Bit Fiddling): Update. + +2001-01-03 Torbjorn Granlund + + * mpz/tests/dive.c: Generate test operands using new random functions. + * mpz/tests/io.c: Likewise. + * mpz/tests/logic.c: Likewise. + * mpz/tests/t-2exp.c: Likewise. + + * stack-alloc.c (__gmp_tmp_alloc): Round `now' to required alignment. + + * stack-alloc.h (__TMP_ALIGN): Append `L'. + + * gmp-impl.h: For Cray, #include limits.h. + (LONG_MIN): New #define. + (ULONG_HIGHBIT): #define in terms of ULONG_MAX. + (LONG_HIGHBIT): #define as LONG_MIN. + (USHRT_MAX): New name for USHORT_MAX. + (SHRT_MAX): New name for SHORT_MAX. + (SHRT_MIN): New #define. + (USHORT_HIGHBIT,SHORT_HIGHBIT): Removed. + + * mpbsd/tests/t-misc.c (check_itom [data]): *SHORT* => *SHRT*; + remove code disabling a test for Cray. + + * tests/t-constants.c (CHECK_CONSTANT): Cast parameters to long. + + * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove unused variable `t'. + (mpn_kara_mul_n): Likewise. + + * mpz/fac_ui.c (MPZ_SET_1_NZ): Actually use `__z'. + + * mpz/tests/t-jac.c + (main, check_squares_zi): Generate test operands using new random + functions. + + All changes below on this date for enabling `make; make check' + with C++ compilers: + + * mpz/tests/t-pow_ui.c (debug_mp, ref_mpz_pow_ui): Provide prototypes. + + * mpz/tests/t-mul.c (debug_mp, base_mul, ref_mpz_mul): + Provide prototypes. + (dump_abort): Provide prototype and declare properly for C++. + + * mpz/tests/t-jac.c: #include stdlib.h and sys/time.h. + + * mpz/tests/t-fdiv.c + (dump_abort): Provide prototype and declare properly for C++. + (debug_mp): Provide prototype. + * mpz/tests/t-fdiv_ui.c: Likewise. + * mpz/tests/t-gcd.c: Likewise. + * mpz/tests/t-powm.c: Likewise. + * mpz/tests/t-powm_ui.c: Likewise. + * mpz/tests/t-sqrtrem.c: Likewise. + * mpz/tests/t-tdiv_ui.c: Likewise. + * mpz/tests/t-tdiv.c: Likewise. + + * mpz/tests/t-2exp.c: #include stdlib.h and sys/time.h. + Remove #include of longlong.h. + + * mpz/tests/io.c: #include config.h, stdlib.h, sys/time.h, and + conditionally unistd.h. + + * mpz/tests/dive.c: #include stdlib.h and sys/time.h. + (dump_abort): Provide prototype and declare properly for C++. + (debug_mp): Provide prototype. + * mpz/tests/logic.c: Likewise. + + * mpz/tests/convert.c (debug_mp): Provide prototype. + * mpz/tests/t-root.c (debug_mp): Likewise. + + * mpz/tests/bit.c: #include stdlib.h and sys/time.h. + + * mpq/tests/t-get_d.c: #include stdlib.h and sys/time.h. + (dump): Provide prototype and declare properly for C++. + + * mpq/tests/t-cmp_ui.c: #include stdio.h, stdlib.h and sys/time.h. + (ref_mpq_cmp_ui): Declare properly for C++. + + * mpq/tests/t-cmp.c: #include stdlib.h and sys/time.h. + (ref_mpq_cmp): Declare properly for C++. + (dump): Delete unused function. + + * mpf/random2.c (myrandom): New function. + (mpf_random2): Use it. + + * mpn/generic/random2.c: #include stdlib.h (for random/mrand48). + (myrandom): New function. + (mpn_random2): Use it. + + * mpf/tests/t-add.c: #include stdlib.h and sys/time.h. + (oo): Remove unused function. + * mpf/tests/t-conv.c: Likewise. + * mpf/tests/t-sub.c: Likewise. + * mpf/tests/t-dm2exp.c: Likewise. + * mpf/tests/t-muldiv.c: Likewise. + * mpf/tests/t-sqrt.c: Likewise. + + * mpf/tests/reuse.c: #include stdlib.h and sys/time.h. + Use PROTO on some typedefs. + (oo): Remove function. + (dump_abort): Call mpf_dump instead of oo. + + * mpf/set_str.c: #include stdlib.h (for strtol). + + * mpf/random2.c: #include stdlib.h (for random/mrand48). + * mpn/alpha/udiv_arnnd: File deleted. + + * Remove K&R function headers. + +2001-01-02 Torbjorn Granlund + + * mpn/generic/mul.c: Clean up spacing and indentation. + + * mpn/generic/mul_fft.c (mpn_fft_add_modF): Use mpn_decr_u. + Clean up spacing and indentation. + + * extract-dbl.c: Generalize to handle smaller limb sizes. + +2001-01-01 Torbjorn Granlund + + * mpbsd/mout.c: Output newline after "0". + +2000-12-31 Torbjorn Granlund + + * ltmain.sh: Remove space between `#!' and `$SHELL' when generating + `libtool'. + + * mpbsd/tests/t-misc.c (check_itom): Exclude test for all Cray + vector systems. Correct comment. + +2000-12-31 Kevin Ryde + + * gmp.texi (ABI and ISA): New enough gcc needed for mips n32 etc, gcc + 2.95 needed for sparc 64-bit ABI, gcc 2.8 needed for -mv8plus. + + * configure.in ([cjt]90,sv1-cray-unicos*): Preserve user specified + MPN_PATH, amend test program indenting. + (none-*-*): Add -DNO_ASM to gcc to disable longlong.h asm macros in + generic C. + + * config.sub (j90, t90): Preserve these, don't let configfsf.sub turn + them into c90. + + * config.guess (m68k-*-nextstep*,m68k-*-openstep*): Don't transform + m68k to m68020, since m68k is already interpreted as 68020. + +2000-12-30 Kevin Ryde + + * mpq/neg.c: Rewrite, use mpn, avoid denominator copy if unnecessary. + + * mpz/tstbit.c: Rewrite, slightly simplified. + * mpz/tests/bit.c (check_tstbit): New test, and add a couple more + diagnostics elsewhere. + + * configure.in (x86 gcc_cflags_cpu): Add -m486 for gcc 2.7.2. + (ccbase): Only use a known compiler in eval statements (avoids + problems with non-symbol characters). + (ccbase): Use GMP_PROG_CC_IS_GNU to identify gcc installed under a + different name. + (cclist): Use same style $abi as other variables. + + * acinclude.m4 (GMP_PROG_CC_IS_GNU): New macro. + (GMP_GCC_MARCH_PENTIUMPRO): Use $ccbase to identify gcc. + (GMP_ASM_TYPE): Define TYPE to empty, not "dnl", when no .type needed. + (GMP_ASM_SIZE): Ditto for SIZE, which ensures EPILOGUE on the last + line of a file doesn't leave a tab and no newline. + (GMP_ASM_UNDERSCORE): Add a prototype for C++. + + * configure.in (sys/mman.h, mprotect): New tests. + * mpn/tests/try.c: Use them, and HAVE_UNISTD_H too. + + * configure.in (getopt.h): Remove test. + * tune/speed.c, mpn/tests/try.c (getopt.h): Remove include, since + plain getopt() is in . + + * configure.in, gmp-h.in (mips*-*-irix6*): Set limb_n32=longlong + rather than using _ABIN32. + +2000-12-29 Torbjorn Granlund + + * mpz/tests/reuse.c: Rename dump_abort => dump. + * mpz/tests/reuse.c: Generate operands using gmp_rand*. + * mpz/tests/convert.c: Likewise. + + * configure.in: Detect T90-ieee systems; move Cray path + selection to after AC_PROG_CC. Invoke AC_PROG_CPP. + * mpn/cray/cfp: New directory. Move cfp specific files here. + * mpn/cray/cfp/mulwwc90.s: New file. + * mpn/cray/cfp/mulwwj90.s: New file. + * mpn/cray/mulww.s: Delete. + +2000-12-27 Torbjorn Granlund + + * mpn/cray/ieee/mul_1.c: New file. + * mpn/cray/ieee/addmul_1.c: New file. + * mpn/cray/ieee/submul_1.c: New file. + * mpn/cray/ieee/gmp-mparam.h: New file. + + * mpn/cray/gmp-mparam.h: Disable UMUL_TIME and UDIV_TIME. + + * mpn/cray/hamdist.c: New file. + * mpn/cray/popcount.c: New file. + * mpn/cray/rshift.c: New file. + * mpn/cray/lshift.c: New file. + + * longlong.h: Add count_leading_zeros for _CRAY. + Reorganize _CRAY stuff. + +2000-12-24 Kevin Ryde + + * configure.in (alpha*-cray-unicos*): Disable SPEED_CYCLECOUNTER_OBJ, + as tune/alpha.asm doesn't suit. + + * mpn/generic/sqrtrem.c, mpz/pow_ui.c, mpz/powm_ui.c, mpf/get_str.c, + mpf/set_str.c: Use mpn_sqr_n when applicable, not mpn_mul_n. + +2000-12-23 Torbjorn Granlund + + * mpn/generic/mul_fft.c: Reformat. + (mpn_fft_neg_modF): Remove. + (mpn_fft_mul_2exp_modF): Inline mpn_fft_neg_modF. + + * mpn/cray/gmp-mparam.h: Retune. + + * configure.in (*-cray-unicos*): Pass `-O3 -htask0'. + (vax*-*-*): Fix typo. + + * mpn/cray/mul_1.c: Use dynamic arrays, get rid of TMP_*. + * mpn/cray/addmul_1.c: Likewise. + * mpn/cray/submul_1.c: Likewise. + * mpn/cray/add_n.c: Likewise. + * mpn/cray/sub_n.c: Likewise. + + * configure.in (default cc_cflags,cc_64_cflags): Remove -g/add -O. + (mips*-*-irix[6789]*]): Remove -g from cc_*_cflags. + +2000-12-22 Torbjorn Granlund + + * mpn/generic/mul_n.c: Delete K&R function headers. + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Clean up type confusion + between mp_limb_t and mp_size_t. + (mpn_kara_sqr_n): Likewise. + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Use mpn_incr_u. + (mpn_kara_sqr_n): Likewise. + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Change handling of `sign' + to work around GCC 2.8.1 MIPS bug. + + * configure.in (implied alpha*-cray-unicos*): Remove -g from cc_cflags. + +2000-12-21 Torbjorn Granlund + + * mpn/alpha/invert_limb.asm: Simplify a bit. + Add handling of bigend systems. + * mpn/alpha/unicos.m4: Define `bigend'. + * mpn/alpha/default.m4: Define `bigend' (to expand to nothing). + + * tests/t-constants.c (CHECK_CONSTANT): Print using %lx. + + * mpn/alpha/gmp-mparam.h: Remove sizes for plain C types. + * mpn/alpha/ev5/gmp-mparam.h: Likewise. + * mpn/alpha/ev6/gmp-mparam.h: Likewise. + + * mpn/alpha/unicos.m4: Define LEA. + * mpn/alpha/default.m4: Likewise. + * mpn/alpha/invert_limb.asm: Use LEA for loading symbolic addresses. + * mpn/alpha/cntlz.asm: Likewise. + + * mpn/alpha/cntlz.asm: Don't use `ldbu', use slightly slower + `ldq_u' + `extbl' instead. + + * mpn/alpha/unicos.m4: Define EXTERN. + * mpn/alpha/default.m4: Define EXTERN (to expand to nothing). + * mpn/alpha/cntlz.asm: Declare __clz_tab usign `EXTERN' (for the + benefit of Unicos). + +2000-12-21 Kevin Ryde + + * mpn/alpha/unicos.m4 (GSYM_PREFIX): Define for the benefit of + __clz_tab. + +2000-12-20 Torbjorn Granlund + + * longlong.h: Add udiv_qrnnd and count_leading_zeros for _CRAYMPP + systems. + +2000-12-19 Torbjorn Granlund + + * configure.in (*sparc*-*-*): Remove -g from cc_cflags and acc_cflags. + + * mpn/generic/sqrtrem.c (mpn_sqrtrem): Separate `limb' values from + `size' values. + + * configure.in (*-cray-unicos*): Add `-Wa,-B' to cc_cflags. + + * demos/pexpr.c (rstate): New variable. + (main): Initialize rstate. + (enum op_t): Add RANDOM. + (fns): Add field for RANDOM. + (mpz_eval_expr): Handle RANDOM. + +2000-12-19 Kevin Ryde + + * mpn/generic/sqrtrem.c: Rewrite by Paul Zimmermann, based on his + Karatsuba Square Root algorithm. + * gmp.texi (Square Root Algorithm): Update. + + * tune/many.pl: New file. + + * mpn/tests/try.c,ref.[ch] (mpn_preinv_mod_1, mpn_sb_divrem_mn, + mpn_tdiv_qr, mpn_gcd_finda, mpn_kara_mul_n, mpn_kara_sqr_n, + mpn_toom3_mul_n, mpn_toom3_sqr_n): Add testing. + * mpn/tests/ref.c: Cast some "0"s in function calls. + + * mpn/x86/k7/mmx/mod_1.asm: Add preinv_mod_1 entrypoint, remove extra + variable for loop termination. + + * mpn/x86/p6/mmx/mod_1.asm: Remove file, in favour of the following. + * mpn/x86/p6/mod_1.asm: New file. + + * mpn/x86/pentium/mod_1.asm: New file. + +2000-12-18 Torbjorn Granlund + + * configure.in (mips*-*-irix[6789]*): Pass options to compiler using + `-Wc'. + +2000-12-18 Kevin Ryde + + * mpn/x86/k6/pre_mod_1.asm: New file. + + * tune/tuneup.c (USE_PREINV_MOD_1): Tune this, rearrange mpn_divrem_1 + and mpn_mod_1 handling in support of it. + * tune/Makefile.am: Consequent changes to divrem_1.c and mod_1.c. + + * gmp-impl.h (USE_PREINV_MOD_1, MPN_MOD_OR_PREINV_MOD_1): New macros. + * mpn/generic/perfsqr.c, mpz/pprime_p.c: Use MPN_MOD_OR_PREINV_MOD_1. + + * configure.in: Let an asm mod_1 provide a preinv_mod_1 entrypoint. + + * mpn/alpha/default.m4: Remove some newlines, add some asserts. + (r0 etc, f0 etc): Use defreg and deflit. + (PROLOGUE, PROLOGUE_GP, EPILOGUE): Use GSYM_PREFIX. + * mpn/alpha/unicos.m4: Remove some newlines, add some asserts. + * mpn/alpha/invert_limb.asm: Remove unused second DATASTART parameter. + * mpn/alpha/cntlz.asm: Use mpn_count_leading_zeros and __clz_tab. + + * mpn/asm-defs.m4 (changecom): Comments on portability. + (__clz_tab, modlimb_invert_table): New macros, matching gmp-impl.h. + (count_leading_zeros, count_trailing_zeros): New define_mpn's. + (PROLOGUE etc): Comments on usage, add some asserts. + (OPERATION_[lr]shift): Use m4_not_for_expansion, for the benefit of + lorrshift multifunc. + + * mpn/Makeasm.am (RM_TMP): New variable controlling tmp-*.s + removal, for development purposes. + + * mpz/fac_ui.c: Fix for long long limb by using mpn_mul_1 not + mpz_mul_ui, and note some possible enhancements. + + * mpz/tests/t-fac_ui.c: New test. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. + * macos/Makefile.in: Ditto, and add t-fib_ui too. + + * mpn/generic/[lr]shift.c: Remove some DEBUG code adequately covered + by new parameter ASSERTs. + + * longlong.h (count_trailing_zeros): Assert x!=0. + + * doc/configuration: Updates for new configure things, add some notes + on test setups. + +2000-12-16 Torbjorn Granlund + + * configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc also for 64-bit + compiles. + * configure.in: Disable shared libs for *-*-ultrix*. + +2000-12-15 Torbjorn Granlund + + * configure.in (powerpc*-*-*): Pass -Wa,-mppc when using gcc. + + * gmp-impl.h (_EXTERN_INLINE): #define different for GCC and other + compilers. + + * gmp-h.in (__gmp_inline): Remove. + * mp-h.in: Likewise. + * mpn/generic/gcd.c: Use `inline' instead of `__gmp_inline'. + + * configure.in (mips*-*-irix[6789]*): Define *_ldflags. + +2000-12-14 Torbjorn Granlund + + * mpn/generic/pre_mod_1.c: Use proper type for udiv_qrnnd + parameter `dummy'. + + * mpn/generic/divrem_1.c: Use explicit `!= 0' in if statement. + * mpn/generic/mod_1.c: Likewise. + +2000-12-14 Kevin Ryde + + * config.guess (mips-*-irix[6789]*): Transform to mips64. + (m68k-*-nextstep* | m68k-*-openstep*): Transform to m68020. + +2000-12-13 Torbjorn Granlund + + * tests/t-constants.c (main): Conditionalize use of PP_INVERTED. + + * mpn/mp_bases.c: Handle 4-bit limbs. + (main): Add code for generating tables. + + * mpn/generic/popham.c: Handle limb bitsizes of 4, 8, 16. + Suffix all 32-bit constant with `L'. + Use CNST_LIMB for 64-bit constants. + +2000-12-13 Kevin Ryde + + * gmp-impl.h (FIB_THRESHOLD): Defaults for 4,8,16 bits per limb, and + an arbitrary fallback default. + (modlimb_invert): Add efficient code for 8,16 (or 4) bits per limb. + + * configure.in (mips3, mips64): Don't bother with o32 (mips2 32-bit + limb) on IRIX 6. + + * Makefile.am (SUBDIRS): Put "tests" first so tests/t-constants.c is + run first, to pick up any limb size mismatch. + + * tune/tuneup.c (DIVREM_1, MOD_1): Fix result values, were off by 1. + + * mpz/fib_ui.c (table1, table2): Add data for 4,8,16 bits per limb. + +2000-12-12 Torbjorn Granlund + + * gmp-impl.h (LIMBS_PER_DOUBLE): Define for any limb bitsize. + +2000-12-11 Torbjorn Granlund + + * mpn/mp_bases.c: Add tables for 8-bit and 16-bit limbs. + Round existing `double' values properly. + + * gmp-h.in (__gmp_randstate_struct): Prefix field names with _mp_ + to keep out of user name space. + (__gmp_randata_lc): Likewise. + * randclr.c, randlc.c, randlc2x.c, randraw.c, randsd.c, randsdui.c: + Corresponding changes. + + * gmp-impl.h (PP): #define for machines with BITS_PER_MP_LIMB + of 2, 4, 8, and 16. + (PP_FIRST_OMITTED): New, define for various BITS_PER_MP_LIMB. + (PP_MASK): Remove. + (PP_MAXPRIME): Remove. + + * mpn/generic/perfsqr.c: Generalize PP handling for machines with + limbs of < 32 bits. Allow PP_INVERTED to be undefined. + * mpz/pprime_p.c: Likewise. + +2000-12-10 Torbjorn Granlund + + * mpn/generic/mul_1.c: Declare parameters in C89 style. + +2000-12-10 Kevin Ryde + + * tune/Makefile.am (speed_LDFLAGS, speed_ext_LDFLAGS, tune_LDFLAGS): + Don't use -all-static, as gcc 2.95.2 on i386 solaris 8 doesn't like + it. + + * configure.in (mips3,mips64): Add ABI=64, name the others ABI=n32 and + ABI=o32. + * mpn/mips3/gmp-mparam.h (BITS_PER_LONGINT): Remove #define and let + configure determine it, since it varies with ABI=64 or ABI=n32. + * gmp.texi (ABI and ISA): Update. + (mpz_mod_ui): Remark that it's identical to mpz_fdiv_r_ui. + (mpn_divexact_by3): Qualify a statement needing mp_bits_per_limb even. + + * mul_fft.c (mpn_fft_mul_modF_K etc): Patch by Paul Zimmermann to fix + results in certain cases of recursing into a further FFT. + +2000-12-09 Torbjorn Granlund + + * mpz/cmpabs.c: Remove unused variable. + * mpz/rrandomb.c: Likewise. + * mpz/xor.c: Likewise. + +2000-12-07 Torbjorn Granlund + + * mpn/generic/gcdext.c: Handle double carry when computing s1. + Merge two code blocks for computing s0 and s1. + +2000-12-07 Kevin Ryde + + * configure.in (hppa*-*-*): Remove -Aa -D_HPUX_SOURCE from + cc_cflags/cppflags, and instead let AM_C_PROTOTYPES add it, or -Ae, + whichever works. + + * configure.in (*-*-aix[34]*): Disable shared by default, but let + the user override that, if desired. + * gmp.texi (Notes for Particular Systems): Update. + +2000-12-06 Torbjorn Granlund + + * mpq/cmp_ui.c: Streamline. + +2000-12-06 Kevin Ryde + + * tune/divrem_1_div.c,divrem_1_inv.c,mod_1_div.c,mod_1_inv.c, + gcdext_double.c: New files for measuring. + * tune/Makefile.am (libspeed_la_SOURCES): Add them. + * tune/speed.c,speed.h,common.c: Add measuring of them. + (mpn_preinv_mod_1, mpz_jacobi, mpz_powm_ui): Add measuring. + + * speed.c (getopt_long): Don't use this, just plain getopt. + * configure.in (getopt_long): Remove test. + + * gmp-impl.h (MPN_KARA_MUL_N_TSIZE, MPN_KARA_MUL_N_MINSIZE, + MPN_TOOM3_MUL_N_TSIZE, MPN_TOOM3_MUL_N_MINSIZE): New macros, and + assume toom3 square tsize was meant to be the same as the mul (both + are overestimates). + * tune/tuneup.c, mpn/generic/mul.c, mpn/generic/mul_n.c: Use them. + * mpn/generic/mul_n.c (mpn_toom3_sqr_n): Fix an ASSERT to use + TOOM3_SQR_THRESHOLD not TOOM3_MUL_THRESHOLD, add a few that might + be more realistic size checks. + * tune/speed.h (SPEED_ROUTINE_MPN_MUL_N_TSPACE etc): Use minsize. + + * mpn/generic/divrem_1.c: Partial rewrite, merge fractional part + calculation, skip a divide step in more cases, introduce + DIVREM_1_NORM_THRESHOLD and DIVREM_1_UNNORM_THRESHOLD. + * mpn/generic/mod_1.c: Partial rewrite, skip a divide step in more + cases, introduce MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD. + * longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64. + * tune/tuneup.c (DIVREM_1_NORM_THRESHOLD, DIVREM_1_UNNORM_THRESHOLD, + MOD_1_NORM_THRESHOLD, MOD_1_UNNORM_THRESHOLD): Tune these. + * gmp-impl.h [TUNE_PROGRAM_BUILD]: Support for this. + * tune/Makefile.am (TUNE_MPN_SRCS): Add divrem_1.c and mod_1.c. + + * gmp-impl.h (UDIV_NORM_PREINV_TIME): Renamed from UDIV_PREINV_TIME. + * mpn/generic/perfsqr.c, mpn/generic/sb_divrem_mn.c, + mpn/x86/*/gmp-mparam.h: Ditto. + * gmp-impl.h (UDIV_UNNORM_PREINV_TIME): New define. + + * configure.in (AC_C_INLINE, HAVE_INLINE): New test and define. + * gmp-impl.h (inline): Remove, use config.h. + (_EXTERN_INLINE): Redefine based on HAVE_INLINE. + (mpn_zero_p): Use HAVE_INLINE. + + * acinclude.m4 (GMP_PROG_AR, GMP_PROG_NM): Don't add flags to a user + selected $AR or $NM. + + * tune/tuneup.c (all): Print how long the tuning took. + + * configure.in (AM_C_PROTOTYPES): Use this, not GMP_ANSI2KNR. + * acinclude.m4 (GMP_ANSI2KNR): Remove. + + * Makefile.am (gmp.h, mp.h): In DISTCLEANFILES not CLEANFILES. + + * gmp-h.in (mpn_divmod, mpn_divmod_1, mpn_divexact_by3): Cast some + zeros, for the benefit of K&R if long!=int. + + * mpn/lisp/gmpasm-mode.el (gmpasm-comment-start-regexp): Add "*" for + the benefit of cray. + + * compat.c (mpn_divexact_by3, mpn_divmod_1): Return types should be + mp_limb_t, not int, and need an actual "return". + +2000-12-05 Torbjorn Granlund + + * mpn/sparc32/v8/supersparc/gmp-mparam.h: Retune. + * mpn/alpha/gmp-mparam.h: Tune for 21064. + + * longlong.h: Reformat to avoid newlines within strings. + + * gmp-impl.h (inline): Disable if GCC has defined __STRICT_ANSI__. + + * configure.in: Do a `mkdir tune' before creating tune/sqr_basecase.c. + + * Makefile.am: Treat mp.h analogously to gmp.h. + + configure.in (*-*-aix): Pass -qmaxmem=20000 to xlc. + + * mp-h.in: Renamed from mp.h. + Add #define for _LONG_LONG_LIMB. + Move some other fixes from gmp-h.in. + * mp.h: Removed. + * configure.in: Generate mp.h from mp-h.in like we handle + gmp-h.in/gmp.h. + +2000-12-04 Torbjorn Granlund + + * acinclude.m4: Fix typo testing for bad HP compiler. + +2000-12-03 Torbjorn Granlund + + * mpbsd/tests/t-misc.c (check_itom): Exclude some tests for Cray + CFP systems. + + * longlong.h (CRAYIEEE umul_ppmm): New. + + * mpn/cray/gmp-mparam.h (BITS_PER_SHORTINT): 32 => 64. + (*_THRESHOLD): Tune. + + * configure.in: Disable shared libs for *-*-unicos*. + +2000-12-03 Kevin Ryde + + * configure.in, tune/Makefile.am: Create tune/sqr_basecase.c during + configure, and use it unconditionally in $(nodist_tuneup_SOURCES). + Fixes a problem with sqr_basecase.lo under --disable-static. + +2000-12-01 Torbjorn Granlund + + * mpf/tests/t-get_d.c (LOW_BOUND,HIGH_BOUND): #define for non-IEEE + Cray systems. + + * gmp-impl.h (union ieee_double_extract): Test for _CRAYIEEE. + +2000-11-30 Torbjorn Granlund + + * mpz/tests/t-mul.c (base_mul): Fix re-evaluation problems in macro + invocations. + (ref_mpz_mul): New name from mpz_refmul. Make static. + (base_mul): New name for _mpn_mul_classic. + +2000-11-30 Kevin Ryde + + * configure.in: Rewrite of CC/CFLAGS selection scheme, introduce a + notion of ABI, merge compiler and mpn path selection, add flags + selection for AR and NM, let CC without CFLAGS work. + (AC_PROG_CC): Use this, not GMP_SELECT_CC. + * acinclude.m4 (GMP_PROG_CC_WORKS): Don't use AC_TRY_COMPILE, combine + cc/cflags parameter. + (GMP_PROG_CC_FIND, GMP_CHECK_CC_64BIT, GMP_PROG_CC_SELECT): Remove. + * gmp.texi (Installing GMP): Updates for new scheme. + + * configure.in (AC_CANONICAL_HOST): Use this and $host, not $target. + * acinclude.m4, acconfig.h, longlong.h, mpn/x86/x86-defs.m4, + mpn/x86/k7/mmx/popham.asm: Ditto, renaming HAVE_TARGET_CPU to + HAVE_HOST_CPU. + * gmp.texi (Build Options, and elsewhere): Update. + + * acinclude.m4 (GMP_COMPARE_GE): New macro. + (GMP_GCC_MARCH_PENTIUMPRO): Use it, add CC parameter, check for GCC. + (GMP_HPC_HPPA_2_0): New macro, adapted from GMP_CHECK_CC_64BIT. + + * acinclude.m4 (GMP_PROG_AR): New macro, using AC_CHECK_TOOL, adding + GMP flags. + * configure.in: Use it + + * gmp-h.in: Renamed from gmp.h. + (@define_LONG_LONG_LIMB@): Placeholder for instantiation. + (__GNU_MP__): Bump to 3. + * acinclude.m4 (GMP_VERSION): Get version from gmp-h.in. + * configure.in: Create gmp.h from gmp-h.in to set _LONG_LONG_LIMB. + * gmp.texi.h (ABI and ISA): Mention this. + * acconfig.h (_LONG_LONG_LIMB): Remove undef. + * Makefile.am: Distribute gmp-h.in, not gmp.h. + + * configure.in (AC_PROG_CPP, AC_PROG_INSTALL, AC_PROG_LN_S): Remove, + dragged in by other macros. + (gmp_asm_syntax_testing): Renamed from gmp_no_asm_syntax_testing. + (AC_EXEEXT, AC_OBJEXT): Remove, done automatically by libtool. + * configure.in, acinclude.m4: Remove "" from "`foo`", being + unnecessary and not portable. + + * configure.in (GMP_LDFLAGS): New AC_SUBST flags for libtool link. + (powerpc64*-*-aix*): Use for -Wc,-maix to fix shared library creation, + but can't build shared and static at the same time. + * Makefile.am (libgmp_la_LDFLAGS, libmp_la_LDFLAGS): Use + $(GMP_LDFLAGS). + * gmp.texi (Notes for Particular Systems): Update AIX problem + + * configure.in (AC_CONFIG_LINKS): Use where needed, not via gmp_links. + (gmp_srclinks): Build up as needed, not via gmp_links. + + * acinclude.m4 (GMP_INIT): Do CONFIG_TOP_SRCDIR and asm-defs.m4 here. + * configure.in (asm-defs.m4): Consequent changes. + + * acinclude.m4 (GMP_INCLUDE_MPN): Using include_mpn(), replacing + GMP_INCLUDE and GMP_SINCLUDE. + * configure.in (gmp_m4postinc): Remove this scheme, use + GMP_INCLUDE_MPN instead. + + * configure.in (*-*-sco3.2v5*): Force ac_cv_archive_cmds_need_lc=no, + until libtool does this itself. + * gmp.texi (Known Build Problems): Remove SCO -lc problem. + + * configure, INSTALL.autoconf, etc: Update to autoconf 2000-11-29. + * acinclude.m4 (GMP_C_SIZES): Use AC_CHECK_SIZEOF. + * gmp.texi (Known Build Problems): Remove version.c sed/config.h + problem, fixed. + + * ltmain.sh, aclocal.m4: Update to libtool 2000-11-25. + * ltconfig: No longer required, but leave an empty dummy for automake. + * gmp.texi (Known Build Problems): Remove SunOS native ar ranlib + problem, fixed. + + * */Makefile.in, aclocal.m4: Update to automake 2000-11-25. + * mpbsd/tests/Makefile.am, mpfr/tests/Makefile.am (check_PROGRAMS): + Remove dummy, no longer required. + * mpbsd/tests/dummy.c, mpfr/tests/dummy.c: Remove files. + * depcomp: Remove file, no longer required (with no-dependencies). + + * texinfo.tex: Update to 2000-11-09. + * gmp.texi (Build Options): Mention PDF from gmp.texi. + * Makefile.am (MOSTLYCLEANFILES): Add gmp.tmp, from new texinfo.tex. + + * gmp.texi (Build Options): List alphaev56, alphapca56, alphaev67, + hppa2.0n and power among supported CPUs. + +2000-11-30 Torbjorn Granlund + + * mpz/tests/t-mul.c: Increase max operand size from 2^17 bits + to 2^19 bits. Misc cleanups. + +2000-11-26 Kevin Ryde + + * tune/tuneup.c (FIB_THRESHOLD): Cope better with different speeds of + odd and even sizes. + + * longlong.h (alpha): Use udiv_qrnnd and count_leading_zeros on all + compilers, not just gcc. + + * pre_mod_1.c: Use conditional subtract to always skip a division. + (UMUL_TIME, UDIV_TIME): Remove defaults, now in longlong.h. + +2000-11-22 Torbjorn Granlund + + * mpn/pa64w/gmp-mparam.h: Retune. + * mpn/pa64/gmp-mparam.h: Retune. + * mpn/sparc64/gmp-mparam.h: Retune. + +2000-11-22 Kevin Ryde + + * gmp-impl.h (ABOVE_THRESHOLD, BELOW_THRESHOLD): New macros. + * mpn/generic/gcdext.c: Use them. + + * mpn/generic/gcdext.c [WANT_GCDEXT_ONE_STEP]: Force only one step. + * tune/gcdextos.c, tune/gcdextod.c: New files, one step gcdext, single + and double. + * tune/Makefile.am (libspeed_la_SOURCES): Add them. + (TUNE_MPN_SRCS): Remove gcdext.c. + * tune/speed.h, tune/common.c, tune/speed.c: Add measuring. + * tune/tuneup.c: Use for GCDEXT_THRESHOLD, plus check if double limb + is ever better. Should be more accurate, and hopefully faster. + + * tune/gcdext_single.c: New file, gcdext forced to single limbs. + * tune/Makefile.am: Add it. + * tune/speed.h, tune/common.c, tune/speed.c: Add measuring, and of + invert_limb. + + * tune/speed.h (speed_params r): Use mp_limb_t, not long. + * tune/speed.h, tune/common.c: Don't "switch" on "r". + * tune/speed.c (r_string): Accept limb sized constants. + (choice scale): Add a scale factor (eg. "2.33*mpn_add_n"). + * tune/common.c (SPEED_ROUTINE_UDIV_QRNND_A): Default r to + __mp_bases[10].big_base, being a full limb value. + + * configure.in (alphapca56*-*-*): Use ev5 mpn path. + (am29000*-*-*): Remove this, leave the canonical a29k. + (z8k*-*-*, z8kx*-*-*): Changed from z8000, since z8k is canonical. + (gmp_mpn_functions_optional): Add invert_limb, use for alpha and ia64. + + * configure.in (alloca): Accept yes/no/detect, generate an error if + "yes" but not available. + * gmp.texi (Build Options): Update. + + * acinclude.m4 (GMP_TRY_ASSEMBLE): Make conftest.out available. + (GMP_ASM_ALIGN_FILL_0x90): Use it. + + * acinclude.m4 (GMP_ASM_X86_MMX) [*-*-solaris*]: Check for solaris + 2.6 "as" movq bug. + * gmp.texi (Notes for Particular Systems): Update x86 MMX note. + +2000-11-21 Torbjorn Granlund + + * tune/Makefile.am (EXTRA_DIST): List hppa2w.asm. + + * tune/hppa2.asm: Change level directive to "2.0n". + * tune/hppa2w.asm: New file. + * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Separate out hppa2.0w. + + * mpn/pa64/gmp-mparam.h (BITS_PER_LONGINT): 64 => 32. + +2000-11-21 Kevin Ryde + + * urandom.h (random): No prototype if glibc stdlib.h has already + provided it (avoids an int32_t/long conflict). + + * tune/Makefile.am (LDFLAGS): Use -all-static. + (speed-dynamic): Dynamic linked version of speed.c. + * tune/README: Update. + + * mpn/generic/gcd.c (find_a): Use native version if available. + * acconfig.h (HAVE_NATIVE_mpn_gcd_finda): Add #undef. + * gmp-impl.h (mpn_gcd_finda): Add prototype and define. + * mpn/asm-defs.m4 (mpn_gcd_finda): New define_mpn. + * tune/gcd_finda_gen.c: #undef any HAVE_NATIVE_mpn_gcd_finda. + * configure.in (gmp_mpn_functions_optional): Add gcd_finda. + * mpn/x86/k6/gcd_finda.asm: New file. + + * tune/tuneup.c (POWM_THRESHOLD): Slightly bigger size steps. + + * gmp-impl.h (__GMP_IMPL_H__): Protect against multiple inclusion. + * tune/gcd_bin.c, tune/powm_mod.c, tune/powm_redc.c: Use #undef after + gmp-impl.h to force thresholds. + * tune/tuneup.c (print_define, fft): No need for #ifndefs on + thresholds any more. + +2000-11-20 Torbjorn Granlund + + * mpz/tests/t-powm.c: Analogous changes as made 2000-11-12 to t-mul.c. + * mpz/tests/t-powm_ui.c: Likewise. + * mpz/tests/t-pow_ui.c: Likewise. + * mpz/tests/t-root.c: Likewise. + + * configure.in [compiler switch]: Pass "-Aa -D_HPUX_SOURCE" to cc for + all hppa versions. + + * mpn/hppa/hppa1_1/udiv_qrnnd.S: Reference data using PC relative + addressing (was r19 relative addressing). + +2000-11-18 Torbjorn Granlund + + * rand.c: (__gmp_rand_lc_scheme): Convert strings to hexadecimal. + (gmp_randinit): Expect strings in hexadecimal. + +2000-11-18 Kevin Ryde + + * configfsf.guess, configfsf.sub: Update to 2000-11-16. + * config.guess (alpha*-*-openbsd*): Do exact cpu detection. + +2000-11-14 Torbjorn Granlund + + * mpz/tests/t-fdiv.c: Analogous changes as made 2000-11-12 to t-mul.c. + * mpz/tests/t-tdiv_ui.c: Likewise. + * mpz/tests/t-fdiv_ui.c: Likewise. + * mpz/tests/t-sqrtrem.c: Likewise. + * mpz/tests/t-gcd.c: Likewise. + +2000-11-13 Kevin Ryde + + * mpn/Makeasm.am: New file, splitting out assembler rules. + * mpn/Makefile.am, tune/Makefile.am: Use it. + + * mpn/Makefile.am (@CPP@): Remove this, automake already gives it. + + * configure.in (AC_CHECK_LIBM): New test, and AC_SUBST it. + * Makefile.am (MPFR_LIBADD_OPTION): Use it. + * demos/Makefile.am (qcn_LDADD): Ditto. + * tune/Makefile.am (libspeed_la_LIBADD): Ditto. + * tests/rand/Makefile.am (libstat_la_LIBADD): Ditto. + + * tune/time.c (timeval_diff_secs): Better calculation. + (read_real_time): New measuring method for AIX power/powerpc. + (speed_endtime): Protect against negative times. + * tune/common.c (speed_measure): Protect against big reps. + * tune/freq.c (speed_cpu_frequency_measure_one): Better timeval diff. + * tune/speed.h (TIMEVAL_DIFF_SEC,USEC): Remove macros. + * configure.in: (sys/systemcfg.h, read_real_time): New tests. + +2000-11-13 Torbjorn Granlund + + * mpz/tests/t-mul.c: Remove #include urandom.h. + * mpz/tests/t-tdiv.c: Likewise. + + * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: + Declare hppa.asm as just 32 bits (cyclecounter_size=1). + +2000-11-12 Torbjorn Granlund + + * mpz/tests/t-mul.c + (main): Generate random numbers using gmp_rand* functions. + (main): Distribute random numbers non-uniformly. + (main): Seed by current time if GMP_CHECK_RANDOMIZE is set. + (_mpn_mul_classic): Streamline. + * mpz/tests/t-tdiv.c: Analogous changes. + + * demos/pexpr.c (HAVE_sigaltstack): Fix typo in testing for _UNICOS. + Also test for __hpux. + +2000-11-11 Torbjorn Granlund + + * mpn/alpha/ev5/gmp-mparam.h: Retune. + + * mpn/alpha/ev6/gmp-mparam.h: Retune. + + * mpn/alpha/ev6/add_n.asm: Misc cleanups. + + * mpn/alpha/ev6/sub_n.asm: New file. + +2000-11-10 Torbjorn Granlund + + * configure.in [path switch] (alphaev6*-*-*): Add alpha/ev5 to path. + + * mpn/alpha/ev6/add_n.asm: New file. + +2000-11-10 Kevin Ryde + + * mpz/powm.c (redc): Make global under WANT_REDC_GLOBAL. + * tune/powm_mod.c, tune/powm_redc.c: New files. + * tune/Makefile.am (libspeed_la_SOURCES): Add them. + * tune/*: Add measuring of redc, mpz_mod, mpz_powm_mod, mpz_powm_redc. + + * tune/tuneup.c (POWM_THRESHOLD): Determine from redc and mpz_mod. + * tune/Makefile.am (TUNE_MPZ_SRCS): Remove powm. + +2000-11-10 Torbjorn Granlund + + * mpn/mips3/gmp-mparam.h: Retune. + + * configure.in (os_64bit): Rename to check_64bit_compiler. + +2000-11-09 Torbjorn Granlund + + * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Choose hppa/hppa2 code + depending on $CC64. + +2000-11-09 Kevin Ryde + + * mpn/x86/pentium/mul_1.asm: Unroll 2x, saving 1 c/l when in L1. + Add 1c entrypoint. + * mpn/x86/pentium/aorsmul_1.asm: Add 1c entrypoints, shave a couple + of cycles at entry and exit. + + * configure.in (power1,2,2sc): Support these as synonyms for plain + power. + + * acinclude.m4 (GMP_ASM_X86_SHLDL_CL): GMP_DEFINE WANT_SHLDL_CL here. + (GMP_ASM_X86_MMX, GMP_ASM_X86_SHLDL_CL): Add X86 into the names. + * configure.in: Consequent changes. + + * gmp.texi (Notes for Particular Systems): Remarks about power/powerpc. + (Reentrancy): Remarks about simultaneous writing. + (Reporting Bugs): Ask for configfsf.guess. + +2000-11-08 Kevin Ryde + + * acinclude.m4 (GMP_FUNC_ALLOCA): New macro. + * configure.in: Use it. + * gmp-impl.h (alloca): Conditionals and setups as per autoconf + (should make alloca available on more non-gcc compilers). + + * acinclude.m4: Misc reformatting, simplify some quoting. + (GMP_ASM_UNDERSCORE, GMP_ASM_X86_MCOUNT): Use $CC $CFLAGS $CPPFLAGS. + (GMP_ASM_UNDERSCORE, GMP_ASM_ALIGN_FILL_0x90, GMP_ASM_RODATA): Put + AC_REQUIREs outside AC_CACHE_CHECK. + (GMP_C_SIZES): Use $srcdir/gmp.h, not -I; use $CPPFLAGS. + (GMP_ASM_UNDERSCORE): Use "gmp_compile" variable, and only rm + conftes1* conftes2*. + (GMP_PROG_NM): New macro, require it in appropriate GMP_ASM_*. + (GMP_TRY_ASSEMBLE): New macro, use it in various GMP_ASM_*. + * configure.in: Use GMP_PROG_NM. + + * mpn/tests/spinner.c (spinner_signal): Use RETSIGTYPE. + (spinner_init): Force output to unbuffered. + + * mpn/x86/README.family: Notes about GOT table and imul, misc updates. + * mpn/x86/k7/diveby3.asm: Change to 3 operands for immediate imul. + * mpn/x86/k6/diveby3.asm: Ditto. + +2000-11-06 Torbjorn Granlund + + * urandom.h: Simplify and make it work properly for 64-bit + machines also in environments without `random'. + +2000-11-04 Torbjorn Granlund + + * configure.in [path switch]: Don't match rs6000-*-*, in + particular don't assume POWER. + + * tune/tuneup.c (fft): Remove usleep calls. + + * config.guess: Don't pass "$@" when it is known to be empty. + + * Makefile.am (EXTRA_DIST): List configfsf.guess and configfsf.sub. + +2000-11-04 Kevin Ryde + + * configfsf.guess, configfsf.sub: Moved from config.guess and + config.sub. + * config.guess, config.sub: New files, wrappers around around + configfsf versions. + * configfsf.guess: Update to FSF 2000-10-23. + * configfsf.sub: Update to FSF 2000-10-25. + + * acinclude.m4 (GMP_ASM_POWERPC_R_REGISTERS): New macro. + * mpn/powerpc32/powerpc-defs.m4: New file, regmap.m4 r0 etc macros + conditionalized by GMP_ASM_POWERPC_R_REGISTERS. + * mpn/powerpc32/regmap.m4: Remove file. + * configure.in (powerpc*-*-*): Use all this. + + * mpz/divegcd.c: New file, providing mpz_divexact_gcd. + * Makefile.am, mpz/Makefile.am: Add it. + * gmp-impl.h (mpz_divexact_gcd): Add prototype. + * mpq/aors.c,canonicalize.c,div.c,mul.c: Use it. + + * longlong.h [pentium] (count_leading_zeros): New macro. + (__clz_tab): Always provide prototype. + * acconfig.h (HAVE_TARGET_CPU_): Add x86s. + + * tune/speed.[ch],common.c (count_leading_zeros, + count_trailing_zeros, __udiv_qrnnd_c): Add measuring. + + * configure.in (X86_PATTERN): Move from here ... + * acinclude.m4 (X86_PATTERN): ... to here. + (GMP_ASM_RODATA): Use it. + + * configure.in (srandom): New test. + * mpn/tests/try.c: Use it. + * tune/speed.c: Ditto, and conditionalize getrusage and headers. + +2000-11-02 Kevin Ryde + + * mpn/Makefile.am (nodist_libdummy_la_SOURCES): Add udiv_qrnnd.c + and udiv_w_sdiv.c. + + * mpn/generic/mul_n.c (mpn_kara_sqr_n): Remove a duplicate + subtract at the evaluate stage. + +2000-11-01 Torbjorn Granlund + + * configure.in [compiler switch] (sparc64-*-linux*): Spell + gmp_xoptcflags_gcc properly, and pass same options as for other + sparcv9 configs. + + * tune/speed.h (SPEED_ROUTINE_MPN_GET_STR): Fix type of wsize. + +2000-10-31 Torbjorn Granlund + + * configure.in [compiler switch] (sparc64-*-linux*): Remove -mvis + from gmp_xoptflags_gcc, this might not be an ultrasparc. + Remove -m32 from gmp_cflags_gcc; add -Wa,-xarch=v8plus. + +2000-10-29 Torbjorn Granlund + + * mpn/ia64/lorrshift.asm: New file. + + * configure.in: New mulfunc `lorrshift' for lshift and rshift. + +2000-10-29 Kevin Ryde + + * mpn/generic/mul_n.c (mpn_kara_sqr_n): Delete code performing + superfluous mpn_sub_n calls. + + * configure.in (found_asm, M4): Account for SPEED_CYCLECOUNTER_OBJ, + for the benefit of targets whose only .asm is a cycle counter. + + * tune/tuneup.c (fft): Remove bogus usleep calls. + +2000-10-28 Torbjorn Granlund + + * mpn/ia64/invert_limb.asm: Get return value for 0x800...00 right. + + * tune/Makefile.am (EXTRA_DIST): Add ia64.asm. + + * tune/ia64.asm: Fix typo. + + * add_n.asm addmul_1.asm mul_1.asm popcount.asm sub_n.asm: + Preserve ar.lc as required by ABI. + * longlong.h (ia64 udiv_qrnnd): New. + + * configure.in [path switch] (ia64*-*-*): Set extra_functions. + * mpn/ia64/invert_limb.asm: New file. + +2000-10-27 Torbjorn Granlund + + * configure.in [compiler switch]: + Get rid of c89 for all hppa flavours--it is an evil compiler! + + * tune/speed.h (SPEED_ROUTINE_MPN_SET_STR): Fix type of xp. + (SPEED_ROUTINE_MPN_GET_STR): Fix type of wp. + +2000-10-27 Kevin Ryde + + * gmp.texi (Fibonacci Number Algorithm): New section. + + * mpz/tests/t-fib_ui.c: New file. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. + + * mpz/fib_ui.c: Rewrite, same formulas but using mpn functions and + some lookup tables, much faster at small to moderate sizes. + * gmp-impl.h (MPZ_FIB_SIZE): New macro. + (FIB_THRESHOLD): Establish default here. + * tune/tuneup.c (FIB_THRESHOLD): Start search after the new table + data. + + * mpn/x86/x86-defs.m4 (mcount_movl_GOT_ebx): Rename from movl_GOT_ebx, + and don't use GSYM_PREFIX with _GLOBAL_OFFSET_TABLE_. + + * tune/freq.c (speed_cpu_frequency_measure): New test comparing + gettimeofday and speed_cyclecounter, should cover many systems. + +2000-10-27 Torbjorn Granlund + + * mpn/ia64/gmp-mparam.h: Retune. + +2000-10-26 Torbjorn Granlund + + * longlong.h (ia64): Set UMUL_TIME and UDIV_TIME. + + * mpn/ia64/submul_1.c: Fix typo. + +2000-10-25 Kevin Ryde + + * tune/freq.c (speed_cpu_frequency_sysctl): New test, supporting + hw.model for BSD flavours. + * configure.in (sysctl, sys/param.h): New tests. + +2000-10-24 Torbjorn Granlund + + * tune/freq.c: Explicitly #include config.h before other include files. + + * mpz/tests/reuse.c (FAIL2): New #define. + (main): Use FAIL2. Now this test properly returns non-zero exit + status when it fails. + + * mpn/powerpc32/gmp-mparam.h: Retune. + * mpn/powerpc64/gmp-mparam.h: Retune. + +2000-10-24 Kevin Ryde + + * mpn/x86/k6/cross.pl: Support 8 and 16 byte code alignment. + + * mpq/aors.c, mpq/canonicalize.c: Skip two mpz_divexact calls if + gcd gives 1, which should be 60% of the time. + * gmp-impl.h (MPZ_EQUAL_1_P): New macro. + * mpq/mul.c, mpq/div.c: Use it, and a new DIV_OR_SET. + + * tune/tuneup.c (xp_block, yp_block): Initialize these with random + data. Fixes GCD_ACCEL and GCDEXT thresholds, and latest POWM. + +2000-10-23 Torbjorn Granlund + + * configure.in [SPEED_CYCLECOUNTER_OBJS switch]: Add ia64 case. + + * mpn/ia64/gmp-mparam.h: Fill in some parameters. + + * mpn/ia64/submul_1.c: New file. + + * tune/ia64.asm: New file. + + * gmp-impl.h (union ieee_double_extract): Handle ia64. + + * mpn/mp_bases.c: Decrease chars_per_bit_exactly for entry 1 to + work around buggy ia64-linux. + + * longlong.h (ia64 umul_ppmm): Update register flags to match new GCC. + +2000-10-22 Torbjorn Granlund + + * mpn/alpha/ev6/gmp-mparam.h (DC_THRESHOLD): Update. + * mpn/alpha/ev6/submul_1.asm: New file. + +2000-10-22 Kevin Ryde + + * tune/gcd_bin.c: New file. + * tune/gcd_finda_gen.c: New file. + * tune/Makefile.am (libspeed_la_SOURCES): Add them. + * tune/speed.[ch],common.c (mpn_gcd_binary, find_a): Add measuring. + + * * (__gmp_allocate_func etc): Rename from _mp_allocate_func etc. + (__gmp_default_allocate etc): Rename from _mp_default_allocate etc. + * gmp-impl.h (__GMP_REALLOCATE_FUNC_TYPE, + __GMP_REALLOCATE_FUNC_LIMBS): New macros. + + * gmp-impl.h (DC_THRESHOLD): Establish default here, set to 3*KARA + since that's the measured average. + * mpn/generic/dc_divrem_n.c, mpn/generic/tdiv_qr.c (DC_THRESHOLD): + Remove default. + +2000-10-21 Torbjorn Granlund + + * mpn/Makefile.am (TARG_DIST): Add ia64. + +2000-10-21 Kevin Ryde + + * *: Change BZ -> DC. + * mpn/generic/dc_divrem_n.c: Renamed from bz_divrem_n.c. + + * doc/multiplication: Remove file, now in the manual. + * doc/assembly_code: Ditto. + * tune/README: Remove some parts now in the manual. + + * gmp.texi (@m etc): Add and use some new macros. + (Integer Division - mpz_[cft]div_*): Merge descriptions, for brevity + and to emphasise similarities. + (Low-Level Functions - mpn_[lr]shift): Specify count as 1 to + mp_bits_per_limb-1. + (Algorithms): New chapter. + (References): Add some papers. + + * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Remove some + unused variables. + * mpn/generic/mul_fft.c (mpn_fft_best_k): Ditto. + + * tune/freq.c: New file, split from time.c. + * tune/time.c: Rewrite, now more automated. + * configure.in, tune/*: Consequent changes. + +2000-10-20 Torbjorn Granlund + + * mpn/ia64/default.m4: New file. + * configure.in [config.m4 switch] (ia64*-*-*): Use ia64/default.m4. + + * mpn/ia64/mul_1.asm: New file. + * mpn/ia64/addmul_1.asm: New file. + * mpn/ia64/add_n.asm: New file. + * mpn/ia64/sub_n.asm: New file. + * mpn/ia64/popcount.asm: New file. + * mpn/ia64/README: New file. + + * mpn/alpha/cntlz.asm: Override `.set noat' from ASM_START. + + * configure.in (HAVE_TARGET_CPU_*): Support hppa1.0, hppa1.1, hppa2.0 + by sed'ing the period into `_'. + + * acconfig.h: Add #undefs for hppa targets. + + * longlong.h (udiv_qrnnd): Fix typo in last change. + + * mpz/tstbit.c: Rewrite (partly to work around GCC 2.95.2 HPPA bug). + + * configure.in [path switch]: + (hppa2.0*-*-*): For non-CC64 case, update path. + + * configure.in [compiler switch]: + (hppa2.0w-*-*): Match with same regexp in both places. + (hppa*-*-*): New case. + (all hppa alternatives): Don't inherit default gmp_cflags_cc, + gmp_cflags_c89. + +2000-10-18 Torbjorn Granlund + + * configure.in (alpha*-*-*): Define gmp_xoptcflags_gcc like for + alpha*-*-osf*. + + * longlong.h (x86 udiv_qrnnd): Change `d' => `dx' to avoid K&R C + stringification. + +2000-10-15 Kevin Ryde + + * doc/configuration: Updates. + + * demos/calc.y: Remove some comments. + +2000-10-14 Kevin Ryde + + * gmp.texi (Parameter Conventions, Memory Management): New sections + split from "Variable Conventions". + (Efficiency, Debugging, Profiling): New sections in "GMP Basics". + (Reentrancy): Some rewording, add note on standard I/O. + (Build options): Add --enable-assert and --enable-profiling. + + * configure.in (--enable-profiling): New option. + * acinclude.m4 (GMP_ASM_X86_MCOUNT): New macro, finding how to profile. + * mpn/x86/x86-defs.m4 (PROLOGUE_cpu, call_mcount): Profiling support. + + * acinclude.m4, configure.in (GMP_ASM_*): Rename from GMP_CHECK_ASM_*, + to follow autoconf conventions. + + * configure.in: Run GMP_CHECK_ASM tests only if needed. + * acinclude.m4 (GMP_CHECK_ASM_MMX): Don't use GMP_CHECK_ASM_TEXT. + + * mpn/x86/x86-defs.m4 (ASSERT): Allow no condition, to just emit code. + +2000-10-13 Kevin Ryde + + * mpq/md_2exp.c: New file. + * mpq/Makefile.am (libmpq_la_SOURCES): Add it. + * Makefile.am (MPQ_OBJECTS): Ditto. + * gmp.h (mpq_mul_2exp, mpq_div_2exp): Add prototypes. + * gmp.texi (Rational Arithmetic): Add documentation. + + * mpq/tests/t-md_2exp.c: New file. + * mpq/tests/Makefile.am (check_PROGRAMS): Add it. + + * mpn/generic/perfsqr.c: Add/amend some comments. + + * gmp.texi (Known Build Problems): Note VERSION problem with old + sed, do some minor rewording. + (Build Options): Add cygwin and djgpp URLs, mention INSTALL.autoconf, + mention HTML. + (Getting the Latest Version of GMP): Move this ... + (Introduction to GMP): ... to here. + (Compatibility with older versions): Just refer to 2.x and 3.x, not + every minor version. + (Initializing Integers): Note restrictions on mpz_array_init'ed + variables. + (Integer Logic and Bit Fiddling): Note bits are numbered from 0. + + * INSTALL.autoconf: New file. + * Makefile.am (EXTRA_DIST): Add it. + + * tune/Makefile.am, tune/tuneup.c, configure.in, gmp-impl.h: New + scheme for recompiled objects used by tune program. Don't use + libgmptune.a, make better use of libtool, work with ansi2knr. + + * tune/speed.h,common.c (SPEED_ROUTINE_MPZ_POWM): Use s->yp and + s->xp_block, make exponent a fixed size. + +2000-10-07 Torbjorn Granlund + + * mpn/mips3/gmp-mparam.h: Retune. + + * mpn/generic/mul_n.c (USE_MORE_MPN): Revert last change. + +2000-10-06 Torbjorn Granlund + + * mpn/mips3/add_n.s: Decrease carry recurrence from 4 to 3 cycles. + * mpn/mips3/sub_n.s: Likewise. + +2000-10-04 Torbjorn Granlund + + * configure.in (sparc64-*-linux*): Set path according to CC64. + +2000-10-04 Kevin Ryde + + * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Use LABEL_SUFFIX, not a + hard-coded ":". + + * config.sub: Don't demand "86" in CPU name for SCO. + + * configure.in (supersparc-*-*): Remove -DSUPERSPARC. + * longlong.h: Use HAVE_TARGET_CPU_supersparc. + + * configure.in (HAVE_TARGET_CPU_*): AC_DEFINE from $target_cpu. + * acconfig.h: Add #undefs, but only for targets of interest. + +2000-10-03 Torbjorn Granlund + + * mpn/alpha/cntlz.asm: Rewrite. + + * mp_clz_tab.c (__clz_tab): Half table size to 128 entires. + * longlong.h (count_leading_zeros): Demand just 128 entries from + __clz_tab. + + * configure.in (mips-sgi-irix6.*): Pass -mips3 in addition to options + for n32 ABI. + + * longlong.h: Move NO_ASM test around all assembly code. + From gcc: + * longlong.h (count_leading_zeros): Sparclite scan instruction was + being invoked incorrectly. + Replace __mc68332__ with __mcpu32__. + Add ARC support. + +2000-10-02 Torbjorn Granlund + + * mpn/mips3/gmp-mparam.h: Retune for both gcc and cc. + + * mpn/generic/mul_n.c (USE_MORE_MPN): Remove exception for __mips. + (interpolate3): Cast mp_limb_t variables to mp_limb_signed_t + when testing sign bit. + + * mpn/alpha/ev6/gmp-mparam.h: Retune. + * mpn/powerpc32/gmp-mparam.h: Retune. + * mpn/powerpc64/gmp-mparam.h: Retune. + * mpn/x86/pentium/gmp-mparam.h: Retune. + * mpn/x86/pentium/mmx/gmp-mparam.h: Retune. + * mpn/sparc32/v9/gmp-mparam.h: Retune. + * mpn/x86/k6/gmp-mparam.h: Retune. + * mpn/x86/p6/gmp-mparam.h: Retune. + * mpn/x86/k7/gmp-mparam.h: Retune. + * mpn/sparc64/gmp-mparam.h: Retune. + + * mpn/m68k/gmp-mparam.h: New file. + * mpn/alpha/ev5/gmp-mparam.h: New file. + + * gmp-impl.h (default MPN_COPY): Remove final `;'. + + * tune/time.c (speed_endtime): Rewrite. + + * tune/speed.h (SPEED_ROUTINE_MPZ_POWM): Set base to a large value, + not 2. + + * demos/pexpr.c (setup_error_handler): Fix typo. + + * mpz/powm.c (redc): New function, based on old mpz_redc. Don't + multiply here. + (mpz_redc): Remove. + (mpz_powm): Major changes, partially reverting to mpn calls. + Multiply before calling redc. + (mpz_powm): Use TMP_ allocation. + (mpz_powm): Refine calculation of k (width of exponent window). + (mpz_powm): Cast constants to mp_limb_t before left shifting. + + * longlong.h: Use ia64 count_leading_zeros just when __GNUC__. + +2000-09-29 Kevin Ryde + + * acinclude.m4 (GMP_C_SIZES): New macro. + * configure.in: Use it. + * acconfig.in (BYTES_PER_MP_LIMB etc): Add #undefs. + * mpn/generic/gmp-mparam.h (BYTES_PER_MP_LIMB etc): Remove #defines. + * gmp.texi (Known Build Problems): Remove 64-bit generic C + gmp-mparam.h problem, now fixed. + + * configure.in: Only run GMP_PROG_M4 if it's actually needed. + +2000-09-27 Torbjorn Granlund + + * demos/pexpr.c: Clean up code for systems not supporting + sigaltstack. Handle old Linux without sigaltstack. Properly + disable all stuff related to sigaltstack under Unicos. + + * mpn/alpha/ev6/addmul_1.asm: Use explicit offset for all load and + store insns. Helps old gas. + + * longlong.h (count_leading_zeros): Define for ia64. + +2000-09-27 Paul Zimmermann + + * mpn/generic/bz_divrem_n.c: Fix qhl handling, simplify. + +2000-09-27 Kevin Ryde + + * mpn/Makefile.in (.SUFFIXES): Regenerate with patched automake to + get .s before .c, which is needed to override ansi2knr .c rules. + + * gmp.texi (mpn_sqrtrem): Fix r2p==NULL return value description + to match the code (change by Torbjorn). + (mpn_gcd, mpn_gcdext, mpn_sqrtrem, mpn_tdiv_qr): Note most + significant limbs must be non-zero. + (mpn_gcd, mpn_gcdext, mpn_sqrtrem): Clarify destination size + requirements. + (mpn_gcd_1): Clarify value must be non-zero, not just size. + + * gmp-impl.h (mpn_zero_p): New inline function. + * mpn/generic/inlines.c: Add gmp-impl.h. + * mpf/integer.c, mpz/get_d.c, mpn/generic/mul_fft.c: Use it. + + * mpn/generic/gcd.c: Use MPN_COPY_INCR not MPN_COPY. + * mpf/add_ui.c: Ditto. + * mpf/add.c: Ditto, and fix test to skip copy. + +2000-09-26 Kevin Ryde + + * gmp-impl.h, longlong.h, mpn/generic/*.c: Add ASSERTs for various + parameter restrictions. + + * gmp-impl.h (UDIV_PREINV_TIME): New macro. + * mpn/generic/sb_divrem_mn.c: Use it. + * mpn/generic/perfsqr.c: Ditto. + * mpn/x86/*/gmp-mparam.h (UDIV_PREINV_TIME): Add values. + + * macos/Makefile.in: Add mpz/tests/t-get_si.c, mpf/tests/t-set_f.c, + and new multi-function mpz and mpq files. + +2000-09-25 Kevin Ryde + + * randlc.c, randlc2x.c, randsd.c, mpz/urandomb.c, mpz/urandomm.c: + Use mpz_ptr and mpz_srcptr for parameters. + * gmp.h (gmp_randinit_lc, gmp_randinit_lc_2exp, gmp_randseed, + mpz_urandomb, mpz_urandomm): Corresponding change to prototypes. + * randsdui.c: Remove wrong K&R parameters part. + +2000-09-12 Kevin Ryde + + * gmp-impl.h (mpn_tdiv_qr): Move prototype from here ... + * gmp.h (mpn_tdiv_qr): ... to here. + + * gmp.texi (Miscellaneous Rational Functions): Comment-out and + move version 1 compatibility note to "Compatibility" section. + (Rational Number Functions): Ditto for canonicalization note. + +2000-09-10 Kevin Ryde + + * mpn/x86/pentium/com_n.asm: New file. + + * gmp.texi (Rational Arithmetic): Add mpq_abs. + (Miscellaneous Rational Functions): Merge and simplify descriptions of + mpq_get_num, mpq_get_den, mpq_set_num, mpq_set_den. + + * mpq/abs.c: New file. + * mpq/Makefile.am (libmpq_la_SOURCES): Add it. + * Makefile.am (MPQ_OBJECTS): Add it. + * gmp.h (mpq_abs): Add prototype. + + * mpq/set_den.c: Don't discard sign when copying, this makes the + code match the manual. + +2000-09-07 Torbjorn Granlund + + * tune/alpha.asm: Rewrite to actually work right. + +2000-09-07 Kevin Ryde + + * tune/common.c,speed.[ch]: Add measuring of mpn_sqrtrem, + mpn_get_str, mpn_set_str. + * tune/README: Various updates. + +2000-09-06 Torbjorn Granlund + + * mpz/fits.c: Correct type of `data'. + +2000-09-06 Kevin Ryde + + * gmp.texi (Build Options): Clarify where to find CFLAGS. + (Known Build Problems): Note SCO -lc problem. + + * tune/speed.h (SPEED_ROUTINE_MPN_GCD_CALL): Fix for sizes > 512 limbs. + + * doc/multiplication: Corrections and additions suggested by Paul. + + * tune/modlinv.c: New file with alternate modlimb_inverts. + * tune/Makefile.am, tune/speed.[ch]: Add measuring of them. + * tune/speed.c (FLAG_NODATA): New attribute, use for mpz_bin_uiui, + mpz_fib_ui, mpz_fac_ui. + + * mpn/x86/t-zdisp.sh: New file. + + * tests/t-modlinv.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add it. + + * mpq/tests/t-set_f.c: New file. + * mpq/tests/Makefile.am (check_PROGRAMS): Add it. + + * gmp-impl.h (MPQ_CHECK_FORMAT): New macro. + * mpq/tests/t-get_d.c: Use it. + + * mpq/set_f.c: New file. + * mpq/Makefile.am (libmpq_la_SOURCES): Add it. + * Makefile.am (MPQ_OBJECTS): Ditto. + * gmp.h: Add prototype. + * gmp.texi (Miscellaneous Rational Functions): Document mpq_set_f, + correct return type of mpq_set_d. + +2000-09-03 Kevin Ryde + + * mpz/aors_ui.c: New file merging add_ui.c and sub_ui.c, no object + code changes. + * mpz/add_ui.c, mpz/sub_ui.c: Remove files. + * mpz/Makefile.am: Update. + + * gmp-impl.h (MPZ_FITS_STYPE_SDT, MPZ_FITS_UTYPE_SDT): New macros. + * mpz/fits.c: New file merging six separate fits*.c. + * mpz/fits_sshort_p.c, fits_sint_p.c, fits_slong_p.c, fits_ushort_p.c, + fits_uint_p.c, fits_ulong_p.c: Remove files + * mpz/Makefile.am: Use new fits.c, change object names from + fits_*_p.lo to fits_*.lo to avoid SunOS 4 native "ar" warnings. + * Makefile.am (MPZ_OBJECTS): Change from fits_*_p.lo to fits_*.lo. + + * acinclude.m4 (GMP_CHECK_ASM_RODATA): New macro, defining RODATA. + * configure.in: Use it. + * mpn/x86/k[67]/mmx/popham.asm: Use it. + + * mpn/x86/*/*.asm: Use "TEXT" not ".text". + +2000-09-02 Kevin Ryde + + * mpq/aors.c: New file merging add.c and sub.c, no object code changes. + * mpq/add.c, mpq/sub.c: Remove files. + * mpq/Makefile.am: Update. + + * mpz/aors.c: New file merging add.c and sub.c, no object code changes. + * mpz/add.c, mpz/sub.c: Remove files. + * mpz/Makefile.am, mpbsd/Makefile.am: Update. + + * configure.in: Re-apply "PROLOGUE.*" regexp change for the + benefit of alpha PROLOGUE_GP, lost in path search reorganisation. + + * mpn/x86/x86-defs.m4 (jadcl0, cmov_simulate, ASSERT, + movl_text_address): Don't use "1:" style labels. + (Zdisp): Rearrange a bit, switch to all hex. + * mpn/x86/README.family: Note SCO "as" doesn't support "1:" style + local labels, misc rewordings. + +2000-08-29 Torbjorn Granlund + + * demos/primes.c: Include string.h. + + * config.guess (x86 variant recog code): Remove dummy*.o files + generated by some compilers. + +2000-08-28 Kevin Ryde + + * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix Solaris 2.8 + warning message suppression, add notes about SCO. + + * Makefile.am (MPZ_OBJECTS etc): Move some comments. + +2000-08-25 Kevin Ryde + + * mpz/pprime_p.c (mpz_millerrabin): Fix a TMP_FREE. + + * gmp.texi (Copying): Refer to Lesser not Library GPL. + (GMP and Reentrancy): Note stack-alloc.c is not reentrant, and + that SCO is potentially not reentrant. + + * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Test by attempting to + link with or without an underscore. + * gmp.texi (Known Build Problems): Remove SunOS 4 native grep + GSYM_PREFIX problem, now fixed. + + * gmp-impl.h (MODLIMB_INVERSE_3): New constant. + * mpn/generic/diveby3.c: Use it instead of own INVERSE_3. + * mpn/generic/mul_n.c: Ditto. + * tests/t-constants.c: Check it, and PP_INVERTED too. + + * acinclude.m4 (GMP_GCC_MARCH_PENTIUMPRO): New macro. + * configure.in [p6 and athlon] (gmp_optcflags_gcc): Use it to + possibly add -march=pentiumpro. + + * gmp-impl.h (MPZ_SET_STR_OR_ABORT, MPF_SET_STR_OR_ABORT): New macros. + * mpz/tests/t-bin.c, mpz/tests/t-get_si.c, mpz/tests/t-jac.c, + mpz/tests/t-misc.c: Use them. + * mpf/tests/t-conv.c, mpf/tests/t-misc.c: Ditto. + * mpz/tests/convert.c: Ditto and amend diagnostics slightly. + * mpz/tests/t-misc.c (check_mpz_set_si): Remove a superfluous init. + * mpz/tests/io.c: Differentiate between I/O and data conversion errors. + + * mpn/generic/aors_n.c: New file merging add_n and sub_n, no + object code changes. + * mpn/generic/add_n.c: Remove file. + * mpn/generic/sub_n.c: Remove file. + + * mpn/generic/aorsmul_1.c: New file merging addmul_1 and submul_1, + no object code changes. + * mpn/generic/addmul_1.c: Remove file. + * mpn/generic/submul_1.c: Remove file. + + * mpn/generic/popham.c: New file merging popcount and hamdist, no + object code changes. + * mpn/generic/popcount.c: Remove file. + * mpn/generic/hamdist.c: Remove file. + +2000-08-24 Torbjorn Granlund + + * gmp-impl.h (mpn_com_n): Fix typo. + +2000-08-23 Torbjorn Granlund + + * demos/primes.c (main): Don't call mpz_probab_prime_p for numbers + that are known to be prime after sieving. + (main): Declare and initialize max_s_prime_squared. + (MAX_S_PRIME): Increase. + (ST_SIZE): Increase. + +2000-08-23 Kevin Ryde + + * gmp-impl.h (ASSERT_ALWAYS): Change to statement style. + (JACOBI_TWO_U_BIT1): Remove ASSERT. + (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS as a statement. + +2000-08-21 Torbjorn Granlund + + * gmp-impl.h (ASSERT): Use do..while for dummy version. + + * mpf/get_str.c: Don't set n_digits from digits_computed_so_far + when the converted operand becomes zero. Misc cleanups. + +2000-08-21 Kevin Ryde + + * mpz/fdiv_r_2exp.c, mpz/lcm.c, mpz/urandomm.c: Add missing + TMP_MARK/FREE, avoiding memory leak when using stack-alloc.c. + +2000-08-20 Kevin Ryde + + * mpz/set.c [BERKELEY_MP] (move): Add conditionals to build as + "move" for libmp. + * mpbsd/Makefile.am: Use mpz/set.c, not move.c. + * Makefile.am (MPBSD_OBJECTS): Corresponding change. + * mpbsd/move.c: Remove file. + + * mpn/Makefile.am, mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, + mpbsd/Makefile.am (-DOPERATION_foo): Use "foo" even for ansi2knr + "foo_" objects. Do this with the makefiles to keep the sources + cleaner. + * mpz/mul_siui.c, mpf/integer.c: Revert to plain OPERATION_* forms. + + * mpn/lisp/gmpasm-mode.el (gmpasm-remove-from-list): Renamed from + gmpasm-delete-from-list, because it's non-destructive. + (gmpasm-font-lock-keywords): Add some more keywords. + +2000-08-16 Kevin Ryde + + * tune/mul_n_mpn.c, tune/mul_n_open.c: New files, being forced + open-coded and mpn #includes of mpn/generic/mul_n.c. + * tune/*: Add measuring of them. + * tune/speed.c: Print command line into *.gnuplot file. + + * mpn/generic/mul_n.c (USE_MORE_MPN): Change to #if not #ifdef for + using the value, add #ifndef for providing the default. + * mpn/sparc64/gmp-mparam.h (USE_MORE_MPN): Add #ifndef. + + * tests/t-constants.c: New file. + * tests/Makefile.am (check_PROGRAMS): Add it. + + * mpz/get_si.c: Use LONG_MAX, not BITS_PER_MP_LIMB, so the result + doesn't depend on limb size when outside the range of a long + (though such results are not actually documented). + * mpz/tests/t-get_si.c: New file. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. + + * mpn/tests/try.c (call): Cast popcount and hamdist calls, + for the benefit of long long limb. + +2000-08-15 Kevin Ryde + + * mp.h (mp_set_memory_functions): Add missing #define. + * mpbsd/tests/allfuns.c (mp_set_memory_functions): Verify its + existence. + + * mpf/tests/t-misc.c (check_mpf_getset_prec): New test, verifying + reverted behaviour of mpf_get_prec. + + * mpn/tests/ref.c (refmpn_strip_twos): Use refmpn_copyi, not + MPN_COPY_INCR. + + * mpz/mul_siui.c, mpf/integer.c: Recognise OPERATION_*_ forms + produced under ansi2knr. + + * configure.in (mpn_objects, mpn_objs_in_libgmp): Add $U to .c + objects when ansi2knr in use. + + * mpn/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr. + (libdummy.la): Add this, not built, to create ansi2knr style rules + for all potential .c files. + * mpz/Makefile.am, mpq/Makefile.am, mpf/Makefile.am, mpfr/Makefile.am, + mpbsd/Makefile.am, mpq/tests/Makefile.am, tests/Makefile.am + (AUTOMAKE_OPTIONS): Enable ansi2knr (now everywhere). + * Makefile.am (MPZ_OBJECTS, MPQ_OBJECTS, MPF_OBJECTS, MPFR_OBJECTS, + MPBSD_OBJECTS, libmp_la_DEPENDENCIES): Add $U to all .lo filenames. + +2000-08-03 Torbjorn Granlund + + * mpn/alpha/ev6/addmul_1.asm: Correct number of cycles to 3.5/28. + +2000-08-02 Torbjorn Granlund + + * Version 3.1 released. + + * gmp.texi: Rephrase mpf_urandomb documentation. + + * mpn/alpha/ev6: New directory with ev6/21264 optimized code. + * mpn/alpha/ev6/addmul_1.asm: New file. + * mpn/alpha/ev6/gmp-mparam.h: New file. + +2000-08-02 Kevin Ryde + + * demos/factorize.c (random): Don't use "inline". + + * mpfr/log.c, mpfr/mul_ui.c, mpfr/round.c, mpfr/set.c, mpfr/set_d.c: + Corrections to K&R parts. + + * Makefile.am (EXTRA_HEADERS): Omit $(MPFR_HEADERS_OPTION). + * mpfr/Makefile.am (EXTRA_DIST): Add mpfr.h. + + * gmp.texi (Known Build Problems): Note problem stripping libgmp.a. + +2000-08-02 Kent Boortz + + * mpfr: Integrated experimental version of mpfr-0.4. + * configure.in: Changes for option --enable-mpfr. + * Makefile.am: Changes for option --enable-mpfr. + +2000-08-01 Torbjorn Granlund + + * mpn/generic/popcount.c: Disable SPARC v9 popc_limb pattern. + * mpn/generic/hamdist.c: Likewise. + +2000-08-01 Kevin Ryde + + * mpn/tests/try.c (try_init): Account for ALIGNMENTS when sizing + source and dest regions. + +2000-07-31 Torbjorn Granlund + + * mpf/get_str.c: Develop three extra digits, not just one. + +2000-07-31 Kevin Ryde + + * gmp.texi (References): Add URL for invariant division. + +2000-07-30 Kevin Ryde + + * tune/time.c (speed_cpu_frequency_proc_cpuinfo): Add support for + alpha linux "cycle frequency". + + * mpn/sparc64/gmp-mparam.h: Re-run tune program for FFT thresholds. + +2000-07-29 Kevin Ryde + + * gmp.texi (ABI and ISA): Add sparc64-*-linux*. + * configure.in [sparc64-*-linux*] (gmp_cflags64_gcc): Same flags + as under solaris. + + * configure.in (--enable-fft): New option, default "no". + * gmp.texi (Build Options): Describe it. + * mpn/generic/mul.c, mpn/generic/mul_n.c [WANT_FFT]: Use it. + * tune/tuneup.c [WANT_FFT]: By default don't probe FFTs if not enabled. + * NEWS: Multiplication optionally using FFT. + + * tune/README: Notes on FFT and GCD thresholds, other minor updates. + + * Makefile.am: Expunge the macos generated files update stuff. + +2000-07-28 Kevin Ryde + + * mpn/x86/*/gmp-mparam.h: Add some FFT thresholds. + +2000-07-28 Kent Boortz + + * macos/Asm*, macos/CmnObj, macos/Mp*: Delete directories. + * macos/Makefile: Delete file. + * macos/Makefile.cw: Delete file. + * macos/config.h: Delete file. + * macos/Asm/*.s: Delete files. + * macos/configure: Create target directories. Don't transform + '(C)' to '(;)' in a 'dnl' line comment in .asm file. + * Makefile.am: Delete macos targets. + * macos/README: Reflect that we reverted back to a build + process that require ""macos/configure" to run on MacOS. + This imply that MacPerl is needed for a build in MacOS. + +2000-07-27 Kevin Ryde + + * mpn/generic/mul_fft.c: New file, by Paul Zimmermann, minor mods + applied. + * configure.in (gmp_mpn_functions): Add it. + * mpn/generic/mul.c, mpn/generic/mul_n.c: Use it. + * doc/multiplication: Describe it (briefly). + + * gmp-impl.h (FFT_MUL_THRESHOLD etc): New thresholds. + (mpn_fft_best_k, mpn_fft_next_size, mpn_mul_fft, mpn_mul_fft_full): + New functions. + (numberof, TMP_ALLOC_TYPE etc, _MP_ALLOCATE_FUNC_TYPE etc, + UNSIGNED_TYPE_MAX etc): New macros. + + * tune/*: Add FFT threshold tuning and speed measuring. + * tune/common.c: Avoid huge macro expansions for umul and udiv. + + * mpz/tests/t-bin.c, mpz/tests/t-jac.c, mpz/tests/t-misc.c, + mpbsd/tests/t-misc.c, mpf/tests/t-misc.c, mpn/tests/try.c, + mpn/tests/spinner.c: Use new gmp-impl.h macros. + + * demos/Makefile.am (BUILT_SOURCES): Don't need calc.c etc under this. + +2000-07-27 Torbjorn Granlund + + * mpn/ia64/gmp-mparam.h: New file. + +2000-07-26 Torbjorn Granlund + + * demos/isprime.c: Handle any number of arguments and print + classification for each. Add `-q' option for old behaviour. + +2000-07-26 Kevin Ryde + + * gmp.texi (Build Options): Mention djgpp stack size. + (Notes for Package Builds): New section. + (Compatibility with older versions): Update for 3.1, add mpf_get_prec. + + * demos/factorize.c [__GLIBC__]: Don't declare random() under glibc. + + * gmp.h (gmp_version): Add prototype and define. + + * Makefile.am: Keep macos directory generated files up-to-date + during development and on a "make dist". + +2000-07-25 Torbjorn Granlund + + * mpn/hppa/gmp-mparam.h: Update threshold values from new `tune' run. + + * mpn/pa64/gmp-mparam.h: Fill in values from `make tune' run. + * mpn/pa64w/gmp-mparam.h: Likewise. + * mpn/mips3/gmp-mparam.h: Likewise. + + * tune/hppa2.asm: Fix typo in .level directive. + + * configure.in: Add sparc64-*-linux* support (from Jakub Jelinek). + * configure: Regenerate. + + * mpn/sparc64/rshift.asm: Use %g5 instead of volatile stack frame area + for return value (from Jakub Jelinek). + * mpn/sparc64/lshift.asm: Likewise. + + * mpf/get_prc.c: Revert Aug 8, 1996 change. + + * version.c: No longer static. + + * mpn/pa64/gmp-mparam.h: Only #define *_THRESHOLD if not already + defined. + * mpn/pa64w/gmp-mparam.h: Likewise. + * mpn/arm/gmp-mparam.h: Likewise. + * mpn/mips3/gmp-mparam.h: Likewise. + +2000-07-25 Kevin Ryde + + * INSTALL: It's "info -f ./gmp.info" to be sure of hitting the + gmp.info in the current directory. + + * Makefile.am (libmp_la_DEPENDENCIES): Add mpz/cmp.lo, for last + mpz/powm.c fix. + + * mpn/sparc64/addmul1h.asm, mpn/sparc64/submul1h.asm: Renamed from + addmul_1h.asm, submul_1h.asm to avoid name conflicts on an 8.3 + filesystem. + * mpn/sparc64/addmul_1.asm, mpn/sparc64/submul_1.asm, + mpn/sparc64/mul_1.asm: Update include_mpn()s. + +2000-07-24 Torbjorn Granlund + + * Update header of all files previously under the Library GPL + to instead be under the Lesser GPL. + + * COPYING.LIB: Now Lesser GPL. + * demos/primes.c: Change license to GPL (was Library GPL). + * demos/isprime.c: Change license to GPL (was Library GPL). + + * gmp.h (error code enum): Add GMP_ERROR_BAD_STRING (currently unused). + + * mpz/tests/t-mul.c: Default SIZE to a function of TOOM3_MUL_THRESHOLD. + Improve error messages. Decrease reps. + +2000-07-22 Kevin Ryde + + * tune/speed.h: Decrease the amount of data used for gcd and powm + measuring, to make the tune go a bit faster. + +2000-07-21 Kent Boortz + + * macos/Asm*, macos/CmnObj, macos/Mp*: Directories no longer created + from configure script, now part of dist. + * macos/Makefile + * macos/Makefile.cw + * macos/config.h + * macos/Asm/*.s + New files and directories that is the output from configure. This way + no Perl installation is required to build on MacOS, just MPW. + * macos/configure: Added prefix '__g' to exported assembler labels. + Changed to handle new m4 syntax instead of the old cpp syntax in asm. + * macos/Makefile.in: Corrected 'clean' target, added 'distclean' + and 'maintainer_clean'. Added "mpn/mp_bases.c" to build. + * macos/README: Reflect the new build process without configure. + Corrected the file structure for Apple MPW installation. + +2000-07-21 Torbjorn Granlund + + * mpf/tests/t-muldiv.c: Relax error limit. Make precision depend + on SIZE. Misc changes. + + * configure: Regenerate. + +2000-07-20 Kent Boortz + + * macos/Makefile.in: Removed hard coded targets, added special + targets found in Makefile.am files. + * macos/configure: Generate targets from top configure script and + Makefile.am files. Made script runnable from Unix for testing. + * macos/README: Notes about search paths for includes, contributed + by Marco Bambini. + * configure.in: Added comment about lines that the "macos/configure" + script depend on. + +2000-07-20 Torbjorn Granlund + + * mpz/powm.c (mpz_powm): After final mpz_redc call, subtract `mod' + from result if it is greater than `mod'. + +2000-07-19 Torbjorn Granlund + + * mpn/hppa/gmp-mparam.h: Fill in values from `make tune' run. + * mpn/alpha/gmp-mparam.h: Likewise. + * mpn/powerpc32/gmp-mparam.h: Likewise. + + * tune/hppa.asm: New file. + * tune/hppa2.asm: New file. + * configure.in (SPEED_CYCLECOUNTER_OBJS): Set for hppa2*-*-* and + hppa*-*-*. + * tune/Makefile.am (EXTRA_DIST): Add hppa.asm and hppa2.asm. + + * tune/speed.h (SPEED_ROUTINE_MPN_BZ_DIVREM_CALL): Declare `marker'; + invoke TMP_FREE. + + * mpn/hppa/hppa1_1/udiv_qrnnd.S: Use "%" instead of "'" for + reloc/symbol delimiter. + +2000-07-16 Torbjorn Granlund + + * mpn/powerpc64/gmp-mparam.h: Update with output from tune utility. + * mpn/powerpc64/copyi.asm: New file. + * mpn/powerpc64/copyd.asm: New file. + +2000-07-16 Kevin Ryde + + * tune/*: Add measuring for umul_ppmm and udiv_qrnnd. + +2000-07-14 Kevin Ryde + + * mpn/x86/k6/k62mmx: New directory. + * configure.in (k6[23]*-*-*): Use it. + * mpn/x86/k6/k62mmx/copyi.asm, mpn/x86/k6/k62mmx/copyd.asm: Move from + mmx directory, improve code alignment a bit. + * mpn/x86/k6/k62mmx/lshift.asm, mpn/x86/k6/k62mmx/rshift.asm: Ditto, + and improve addressing modes for pre-CXT cores. + * mpn/x86/x86-defs.m4 (Zdisp): Add an instruction. + * mpn/x86/k6/mmx/lshift.asm, mpn/x86/k6/mmx/rshift.asm: New files, + suiting plain K6. + * mpn/x86/README, mpn/x86/k6/README: Updates. + * mpn/x86/k6/mmx/*.asm: Update some comments. + + * mpn/tests/Makefile.am: Use $(MAKE) in .asm rules, not "m". + * tune/Makefile.am: Use $(EXEEXT) and libtool --config objdir, for + the benefit of djgpp. + + * */Makefile.in: Regenerate with patched automake that adds + $(EXEEXT) to EXTRA_PROGRAMS. + + * mpn/tests/try.c: Add #ifdef to SIGBUS, for the benefit of djgpp. + * config.guess: Recognise pc:*:*:* as an x86, for djgpp. + + * configure: Regenerate with patched autoconf to fix temp file + ".hdr" which is invalid on a DOS 8.3 filesystem, and to fix two + sed substitutes that clobbered a ":" in $srcdir (eg. a DOS drive + spec). + + * mpz/tests/io.c: Use one fp opened "w+", since separately opened + input and output doesn't work on MS-DOS 6.21. + + * tests/rand/Makefile.am (allprogs): Pseudo-target to build everything. + (CLEANFILES): Add EXTRA_PROGRAMS and EXTRA_LTLIBRARIES. + (manual-test, manual-bigtest): Add $(EXEEXT) to dependencies. + + * tests/rand/*/Makefile.in: Regenerate with patched automake that adds + $(EXEEXT) to EXTRA_PROGRAMS. + +2000-07-13 Torbjorn Granlund + + * mpz/tests/t-root.c: Also test mpz_perfect_power_p. + Generate `nth' so that there will be fewer trivial values. + + * mpz/root.c: Reverse return value in tests for detecting root of +1 + and -1. + + * mpz/perfpow.c: Use TMP_ALLOC interface. + +2000-07-12 Torbjorn Granlund + + * mpz/perfpow.c (primes): Make it const. + +2000-07-06 Kevin Ryde + + * mpn/x86/k6/cross.pl: New file. + + * mpn/x86/*/gmp-mparam.h: Updates to thresholds, conditionalize + all _TIME defines. + * mpn/x86/pentium/mmx/gmp-mparam.h: New file. + * mpn/sparc64/gmp-mparam.h: Update thresholds. + * mpn/sparc32/v9/gmp-mparam.h: Ditto. + +2000-07-04 Kevin Ryde + + * NEWS: Updates. + * mpn/x86/*/README: Miscellaneous updates. + + * tune/speed-ext.c: New file. + * tune/Makefile.am: Add it. + * tune/README: Updates. + * tune/speed.h (SPEED_ROUTINE_MPN_DIVREM_2): Bug fixes. + + * demos/calc.y,calclex.l: New files. + * demos/calc.c,calc.h,calclex.c: New files, generated from .y and .l. + * demos/Makefile.am: Add them. + + * gmp.h (mpq_swap, mpf_swap): Add prototypes and defines. + +2000-07-01 Kevin Ryde + + * gmp.texi (ABI and ISA): New section, bringing together ABI notes. + (Build Options): Add MPN_PATH, various updates. + (Build Options): Add note on setting CFLAGS when setting CC. + (Notes for Particular Systems): Add -march=pentiumpro problem. + (Known Build Problems): Note on gmp-mparam.h for 64-bit generic C. + (GMP Variable Conventions): Add some info on user defined functions. + (Reporting Bugs): Minor rewording. + + * configure.in (MPN_PATH): Renamed from mpn_path. + + * gmp-impl.h (ULONG_MAX,ULONG_HIGHBIT,...,SHORT_MAX): New defines. + * mp[zf]/tests/t-misc.c: Use them. + + * mpbsd/tests/t-misc.c: New file. + * mpbsd/tests/Makefile.am: Add it. + + * Makefile.am (LIBGMP_LT_*, LIBMP_LT_*): Bump version info. + * gmp.h (__GNU_MP_VERSION_*): Bump to 3.1. + + * mpf/tests/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. + + * Makefile.am (libmp_la_SOURCES): Add mp_set_fns.c, accidentally + omitted in gmp 3.0.x. + * gmp.texi (Custom Allocation): Note this is available in mpbsd, + and some minor rewording. + +2000-06-30 Torbjorn Granlund + + * demos/factorize.c (random): New function, defined conditionally. + (factor_using_pollard_rho): Use it, not mrand48. + + * mpn/cray/README: New file. + +2000-06-30 Kevin Ryde + + * mpn/x86/pentium/aorsmul_1.asm: Add MULFUNC_PROLOGUE. + + * mpz/tests/t-jac.c: Test limbs on mpn_jacobi_base, not just ulongs. + + * gmp-impl.h, mpn/tests/try.c, mpn/tests/spinner.c, tune/speed.c: + Use config.h unconditionally, not under HAVE_CONFIG_H. + + * demos/pexpr.c [__DJGPP__]: Patch by Richard Dawe to not use + setup_error_handler on djgpp. + + * tune/*: Locate data to help direct-mapped caches, add measuring + of mpz_init/clear, mpz_add and mpz_bin_uiui, various cleanups. + * configure.in (AC_CHECK_FUNCS): Add popen. + +2000-06-29 Torbjorn Granlund + + * mpf/mul_2exp.c: Streamline criterion for whether to use mpn_lshift or + mpn_rshift. Increase precision when exp is a multiple of + BITS_PER_MP_LIMB primarily to make exp==0 be a noop. + * mpf/div_2exp.c: Analogous changes. + + * mpf/tests/t-dm2exp.c: Set u randomly in loop. Perform more + mpf_mul_2exp testing. + + * configure.in: Recognize cray vector processors with a broad `*'; + move after alpha* not to match that. + +2000-06-28 Kevin Ryde + + * mpz/tests/io.c: Use a disk file, not a pipe, switch to ansi2knr + style, switch from MP_INT to mpz_t, add a couple of error checks. + * mpz/tests/Makefile.am (CLEANFILES): Add io.tmp, in case io.c fails. + +2000-06-27 Torbjorn Granlund + + * mpf/tests/t-get_d.c: Be more lax about relative error, to handle Cray + floating point format. + + * mpq/tests/t-get_d.c: Decrease default reps to 1000. + + * mpf/tests/t-conv.c: Correct type of `bexp'. + + * configure.in (cray vector machines): Don't inherit gmp_cflags_cc. + + * tune/Makefile.am (EXTRA_DIST): Delete sparc64.asm. + + * configure.in (cray vector machines): Set extra_functions. + + * mpn/cray/mulww.f: New file with vectorizing cray code. + * mpn/cray/mulww.s: Generated from mulww.f. + * mpn/cray/mul_1.c: New file. + * mpn/cray/addmul_1.c: New file. + * mpn/cray/submul_1.c: New file. + * mpn/cray/add_n.c: New file. + * mpn/cray/sub_n.c: New file. + +2000-06-26 Kevin Ryde + + * acinclude.m4 (GMP_CHECK_ASM_ALIGN_FILL_0x90): Fix so it actually + detects solaris 2.6, and also suppress warning on solaris 2.8. + * configure.in (SPEED_CYCLECOUNTER): Remove spurious "athlon" from + sparc case. + + * mpn/lisp/gmpasm-mode.el: Move keymap to the top of the docstring. + +2000-06-21 Kevin Ryde + + * mpn/generic/mul_n.c (mpn_kara_mul_n, mpn_kara_sqr_n): Use + mp_size_t for n2. + (mpn_toom3_mul_n, mpn_toom3_sqr_n): Use mp_size_t for size + parameters and "l" variables. + * gmp-impl.h (mpn_toom3_mul_n, mpn_toom3_sqr_n): Update prototypes. + + * mpbsd/itom.c, mpbsd/sdiv.c: Add casts for correct handling of + -0x80...00 on systems with sizeof(short)==sizeof(int). + + * mpz/tests/t-misc.c: Move "bin" test from here ... + * mpz/tests/t-bin.c: ... to here, and add a new (2k,k) test too. + * mpz/tests/Makefile.am (check_PROGRAMS): Add t-bin. + + * mpz/bin_ui.c [_LONG_LONG_LIMB]: Use mpn_divrem_1, since kacc is + a limb not a ulong. + * mpz/bin_uiui.c [_LONG_LONG_LIMB]: Ditto, and use mpn_mul_1 too, + since nacc is a limb. + + * mpf/tests/t-misc.c (check_mpf_set_si, check_mpf_cmp_si): + New file, testing mpf_set_si, mpf_init_set_si, and mpf_cmp_si. + * mpf/tests/Makefile.am (check_PROGRAMS): Add it. + + * mpz/tests/t-misc.c (check_mpz_set_si, check_mpz_cmp_si): + New tests, for mpz_set_si, mpz_init_set_si, and mpz_cmp_si. + + * mpz/set_si.c, mpz/iset_si.c, mpz/cmp_si.c [_LONG_LONG_LIMB]: Fix + handling of -0x80..00. + * mpf/set_si.c, mpf/iset_si.c, mpf/cmp_si.c [_LONG_LONG_LIMB]: Ditto. + +2000-06-19 Torbjorn Granlund + + * demos/primes.c: Properly handle arguments `m +n'. + +2000-06-17 Torbjorn Granlund + + * config.sub: Recognize k5 and k6 with common pattern. + + * mpq/tests/t-get_d.c: Also test mpq_set_d. Misc improvements. + + * mpq/set_d.c: Special case 0.0. Don't call mpn_rshift with 0 count. + Allocate correct amount of memory for numerator. Delete spurious + ASSERT_ALWAYS(1). + +2000-06-17 Kevin Ryde + + * mpz/perfsqr.c: Fix so that zero is considered a perfect square. + (Was wrongly calling mpn_perfect_square_p with size==0.) + +2000-06-16 Kevin Ryde + + * configure.in: Set k5*-*-* to use basic i386 code until there's + something specific. Add path=x86 as a default for x86s. + + * acinclude.m4 (GMP_CHECK_ASM_ALIGN_LOG): Generate + ALIGN_LOGARITHMIC setting, not a full ALIGN definition. + (GMP_CHECK_ASM_ALIGN_FILL_0x90): New test. + * configure.in [x86-*-*]: Use GMP_CHECK_ASM_ALIGN_FILL_0x90. + * mpn/asm-defs.m4 (ALIGN): New macro. + * mpn/x86/x86-defs.m4 (ALIGN): Remove supplementary definition. + + * tune/*: Plain "unsigned" for speed_cyclecounter. + * configure.in: Use tune/sparcv9.asm for 32 and 64 bit modes. + * tune/sparc64.asm: Remove file. + +2000-06-15 Torbjorn Granlund + + * mpn/x86/k7/mmx/copyi.asm: Use `testb' instead of `test'. + * mpn/x86/k7/mmx/copyd.asm: Likewise. + + * mpn/x86/k7/mmx/lshift.asm: Avoid using `~' (Solaris as problems). + * mpn/x86/k7/mmx/rshift.asm: Likewise. + * mpn/x86/k6/aors_n.asm: Likewise. + * mpn/x86/k7/aors_n.asm: Likewise. + * mpn/x86/k7/mul_basecase.asm: Likewise. + +2000-06-13 Torbjorn Granlund + + * tune/sparcv9.asm: Tune, deleting two instructions. + + * tune/alpha.asm: Update to unified speed_cyclecounter. + +2000-06-11 Kevin Ryde + + * mpz/tests/reuse.c (FAIL): Add a K&R version. + Use _PROTO on some typedefs. + * mpz/tests/t-misc.c: Add gmp-impl.h for "const". + + * configure.in: Rework mpn multi-function and optional files. + Names standardized, no need for explicit declarations, all picked + up in one $path traversal. + * doc/configuration: Updates. + + * tests/rand/t-rand.c (main): Change "usage" to work with K&R. + +2000-06-10 Kevin Ryde + + * mpn/x86/pentium/mmx/popham.asm, mpn/x86/p6/mmx/popham.asm, + mpn/x86/p6/p3mmx/popham.asm, mpn/x86/p6/diveby3.asm: Add + MULFUNC_PROLOGUE for correct HAVE_NATIVE_* matching. + + * mpn/x86/x86-defs.m4 (cmov_bytes_tttn): Use eval() on expressions. + (cmov_available_p): Switch to list CPUs which do have cmov. + * mpn/x86/p6/sqr_basecase.asm, mpn/x86/k6/sqr_basecase.asm, + mpn/x86/k7/sqr_basecase.asm: Use eval() for multiplication. + * mpn/x86/README.family: Various updates. + +2000-06-09 Kevin Ryde + + * mpbsd/tests/allfuns.c (main): Call exit() instead of doing return. + + * doc/tasks.html, doc/projects.html: Moved from projects directory. + * doc/multiplication: New file. + * Makefile.am (EXTRA_DIST): Remove projects, add doc. + + * Makefile.am (libgmp_la_LIBADD, libmp_la_LIBADD): Remove + unnecessary -lm. + * INSTALL: Remove -lm from instructions. + * demos/Makefile.am (qcn_LDADD): Add -lm. + + * tune/*: Add measuring for mpn_divrem_2 and modlimb_invert, + improve addsub_n. Switch to unified speed_cyclecounter. + * configure.in: Update configs for speed_cyclecounter. + + * gmp-impl.h (MP_LIMB_T_MAX, MP_LIMB_T_HIGHBIT): New macros. + * mpn/generic/diveby3.c, mpn/generic/mul_n.c, mpn/generic/gcd.c, + tune/speed.c, mpn/tests/ref.c: Use them. + + * mpn/tests/spinner.c: Remove setitimer, just alarm is enough. + * configure.in (AC_CHECK_FUNCS): Remove setitimer. + * mpn/tests/x86call.asm: Start with junk in %eax, %ecx, %edx. + * mpn/tests/ref.[ch] (refmpn_addsub_nc): New function. + * mpn/tests/try.c: Add some support for mpn_addsub_nc. + * mpn/tests/Makefile.am (EXTRA_PROGRAMS): Remove addsub_n and + addsub_n_2 which don't currently build. + * mpn/tests/copy.c: Test MPN_COPY_INCR, not __gmpn_copy. + + * tests/rand/Makefile.am (libstat_la_LIBADD): Add -lm, no longer on + libgmp.la. + (findlc_LDADD): Use libstat.la. + (AUTOMAKE_OPTIONS): Use ansi2knr. + +2000-06-08 Torbjorn Granlund + + * configure.in (alpha*-*-osf*): Default `flavour' to ev6 for ev6 and + higher. + (alpha*-*-*): Likewise. + (alpha*-*-osf*: gmp_optcflags_cc): Move -arch/-tune flags from + gmp_xoptcflags_gcc. + + * mpn/Makefile.am (TARG_DIST): Add pa64w. + + * longlong.h: Wrap 64-bit hppa code in #ifndef LONGLONG_STANDALONE. + +2000-06-07 Torbjorn Granlund + + * mpz/remove.c: Fail for `src' being zero. + + * mpz/tests/reuse.c: Test more functions. + (FAIL): New define. + + * mpz/tests/t-powm.c: Loop during operand generation while they + are mathematically ill-defined (used to just skip such tests). + + * mpz/powm.c (mpz_redc): Clean up argument declarations. + + * configure.in (gmp_cflags64_gcc): Don't add bogus -mWHAT option. + (sparcv9-*-solaris2.[7-9]], gmp_cflags64_gcc): + Inherit from previous gmp_cflags64_gcc; pass `-m64 -mptr64'. + (ia64*-*-*): New. + + * mpn/generic/dump.c: Make it work when an mp_limb_t is not `long'. + + * mpf/set_prc.c: MPN_COPY => MPN_COPY_INCR. + +2000-06-06 Torbjorn Granlund + + * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): + Use mpn_incr_u for final carry propagation. + + * mpz/tests/t-gcd.c: Add calls to mpz_gcdext with argument t == NULL. + + * mpz/tests/reuse.c: Major rewrite; test many more functions. + + * mpz/powm_ui.c: When exp is 0, change res assign order in order + to handle argument overlap. + * mpz/powm.c: When exp is 0, change res assign order in order + to handle argument overlap. Handle negative exp and mod arguments. + + * mpz/gcdext.c: Rework code after mpn_gcdext call to handle + argument overlap. + + * mpz/fdiv_qr.c: Read dividend->_mp_size before calling mpz_tdiv_qr + in order to handle argument overlap. + * mpz/cdiv_qr.c: Likewise. + + * mpf/tests/reuse.c: Fix typo that effectively disabled `dis_funcs' + tests. Clean up test for mpf_ui_div. + +2000-06-06 Kevin Ryde + + * mpn/x86/p6/sqr_basecase.asm: New file. + * mpn/x86/mod_1.asm: Avoid one conditional jump. + * mpn/x86/p6/gmp-mparam.h: Update thresholds, #ifndef UMUL_TIME + and UDIV_TIME, add COUNT_TRAILING_ZEROS_TIME. + + * mp_minv_tab.c: New file. + * Makefile.am (libgmp_la_SOURCES, libmp_la_SOURCES): Add it. + * gmp-impl.h (modlimb_invert): New macro. + * mpz/powm.c: Remove mpz_dmprepare, use modlimb_invert instead. + * mpn/generic/bdivmod.c: Use modlimb_invert instead of a loop. + * mpn/generic/gcd.c: Inline two small mpn_bdivmod calls, use + MPN_COPY_INCR not MPN_COPY in one place. + +2000-06-05 Torbjorn Granlund + + * mpf/tests/reuse.c (dsi_funcs): Add mpf_mul_2exp and mpf_div_2exp. + (main): Clean up test for mpf_div_ui. + + * mpf/mul_2exp.c: Correct criterion for whether to use mpn_lshift or + mpn_rshift. MPN_COPY => MPN_COPY_INCR. Coerce the two assignments to + r->_mp_size. + + * mpf/div_2exp.c: Use mpn_rshift instead of mpn_lshift when overlap + so requires. MPN_COPY => MPN_COPY_INCR. + + * mpf/tests/t-dm2exp.c: Correct type of res_prec. + +2000-06-04 Kevin Ryde + + * mpz/bin_uiui.c: Fix result for n==0 and n==k. + * mpz/bin_ui.c: Fix result for k>n, add support for n<0. + * gmp.texi (Number Theoretic Functions): Update mpz_bin_ui to + note n<0 is supported. + + * mpz/tests/t-misc.c: New file. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. + +2000-05-31 Kevin Ryde + + * tune/speed.* (FLAG_R_OPTIONAL): New option for routines, use on + mpn_gcd_1 and mpn_mul_basecase. + * tune/README: Update. + + * tune/alpha.asm: New file, by Torbjorn. + * tune/Makefile.am (EXTRA_DIST): Add it. + * configure.in (alpha*-*-*): Use it. + +2000-05-31 Linus Nordberg + + * doc/configuration: New file. + +2000-05-30 Torbjorn Granlund + + * mpn/generic/mul_basecase.c: Call mpn_mul_2 and mpn_addmul_2 + if available. Don't include longlong.h. + + * doc/isa_abi_headache: New file. + +2000-05-30 Linus Nordberg + + * configure.in (NM): Use AC_PROG_NM rather than AC_CHECK_TOOL to + find `nm'. (AC_PROG_NM comes with Libtool and is needed to get + the `-B' option (BSD compatible output) included in $NM.) + (AR): Use AC_CHECK_PROG rather than AC_CHECK_TOOL to find `ar'. + (Now that NM isn't a cross compilation tool, don't give the + impression that we know how to cross compile.) + (CCAS): Remove spurious comment. + + * gmp.texi (Notes for Particular Systems): Remove comment about + using GNU `nm' on AIX since system nm now works. + +2000-05-29 Torbjorn Granlund + + * mpn/power/mul_1.s: Remove [PR] from first word in function + descriptor. + * mpn/power/addmul_1.s: Likewise. + * mpn/power/submul_1.s: Likewise. + +2000-05-28 Kevin Ryde + + * configure.in, tune/*: Change pentium rdtsc cycle scheme to + HAVE_SPEED_CYCLECOUNTER and SPEED_CYCLECOUNTER_OBJS. + * tune/pentium.asm: Renamed and converted from rdtsc.asm. + * tune/sparcv9.asm: New file, by Torbjorn. + * tune/sparc64.asm: New file. + * tune/tuneup.c: Put a limit on gcdext search. + + * gmp.h (mp_set_memory_functions): Add extern "C". + * mp.h (__GNU_MP__): Bump to "3". + * mpz/add.c,mul.c,powm.c,sub.c,sqrtrem.c,tdiv_qr.c [BERKELEY_MP]: + Include mp.h for mpbsd compile. + * mpz/gcd.c: Ditto, and remove _mpz_realloc declaration. + + * gmp.texi (Integer Functions): Flatten @subsections into @sections. + (Floating-point Functions): Ditto. + (Integer Random Numbers): Split from miscellaneous as a sep section. + (Installing GMP): Make nodes for the sections. + Add more "@cindex"s. + (Known Build Problems): Remove SunOS get_d problem, believed fixed. + (Notes for Particular Systems): Remove HPPA note since now PIC. + (References): URL for Jebelean. + +2000-05-27 Torbjorn Granlund + + * mpn/pa64w: New directory, contents based on corresponding mpn/pa64 + files. + * configure.in (hppa2.0w-*-*): New. + * mpz/tests/io.c (_INCLUDE_POSIX_SOURCE): Define when __hpux before + including stdio.h. + * gmp-impl.h: Always define DItype and UDItype. + +2000-05-27 Kevin Ryde + + * tune/common.c (speed_measure): Correction to array sorting, + better diagnostic when measuring fails. + * tune/time.c: Add microsecond accurate getrusage method. + + * tune/time.c (speed_cpu_frequency_processor_info): New function. + * configure.in (AC_CHECK_FUNCS): Add processor_info. + +2000-05-26 Linus Nordberg + + * gmp.texi (Installing GMP): Shared libraries work for AIX < 4.3 + if using GNU nm. + +2000-05-26 Torbjorn Granlund + + * tune/tuneup.c (SIGNED_TYPE_MAX): Shift `-1' instead of `1' to + avoid signed overflow. + + * demos/pexpr.c (setup_error_handler): Don't call sigaltstack on + Unicos. + +2000-05-25 Torbjorn Granlund + + * insert-dbl.c: Work around GCC 2.8 bug. + * extract-dbl.c: Likewise. + + * config.sub: Allow i586, i686, i786 again. + + * config.guess: Use X86CPU for lots more systems. + +2000-05-25 Linus Nordberg + + * mpbsd/tests/dummy.c (main): Call exit() instead of doing return + (some old SysV machines don't get this correct, I've heard.) + +2000-05-25 Kevin Ryde + + * mpf/iset_str.c: Initialize _mp_size and _mp_exp to 0, in case no + digits in string, so it's the same as a separate init and set_str. + +2000-05-24 Torbjorn Granlund + + * mpz/tests/reuse.c: Use mpz_random2 instead of mpz_random. + + * mpz/divexact.c: Read pointers after reallocation. + Compare `quot' and `den' instead of `qp' and `dp' in overlap check. + Use MPN_COPY_INCR for copying from `np'. + + (*-*-aix4.[3-9]*): Disable shared libs just for problematic AIX + versions. + * configure.in (*-cray-unicos*): Disable asm syntax checking; set + compiler explicitly. + * configure.in (hppa*-*-*): Remove code disabling shared libs. + +2000-05-24 Linus Nordberg + + * acinclude.m4 (GMP_PROG_CC_WORKS): Don't report progress to user + when doing the AIX specific test to avoid "nested output". + +2000-05-22 Kevin Ryde + + * mp.h (_PROTO): Copy from gmp.h, use on prototypes. + Add extern "C" too. + * mpbsd/tests/Makefile.am (AUTOMAKE_OPTIONS): Enable ansi2knr. + * mpbsd/tests/allfuns.c: Don't execute mout, just link to it. + (main): ANSI style definition. + + * gmp-impl.h (MP_BASE_AS_DOUBLE): Change the expression to + something that works on SunOS native cc. Seems to fix the + mp*_get_d problems. + + * mpn/tests/ref.c (refmpn_strip_twos): Use MPN_COPY_INCR. + * mpn/tests/Makefile.am: Let .asm.o rules work with absolute $srcdir. + +2000-05-21 Kevin Ryde + + * mpn/x86/k7/sqr_basecase.asm: Replace file with K7 specific code. + * mpn/x86/k7/README: Update. + * mpn/x86/k7/gmp-mparam.h: Tune thresholds. + (COUNT_TRAILING_ZEROS_TIME): New define. + * mpn/x86/k6/gmp-mparam.h: Ditto. + + * mpn/x86/pentium/mmx/popham.asm: New file (include_mpn of K6 version). + * mpn/x86/p6/diveby3.asm: New file (include_mpn of P5 version). + * mpn/x86/p6/mmx/popham.asm: New file (include_mpn of K6 version). + * mpn/x86/p6/p3mmx/popham.asm: New file (include_mpn of K7 version). + * configure.in (pentium3-*-*): Add p3mmx to $path. + + * gmp.texi (Integer Arithmetic): Clarify mpz_jacobi op2; add + mpz_*_kronecker_*. + (Miscellaneous Integer Functions): Add mpz_odd_p and mpz_even_p. + (Low-level Functions): Put mpn_divmod_1 with mpn_divrem_1 and note + it's now a macro. + (References): Add Henri Cohen. + + * gmp.h (mpn_addmul_1c, mpn_divrem_1c, mpn_mod_1c, mpn_mul_1c, + mpn_submul_1c): Add prototypes. + (mpz_odd_p, mpz_even_p): New macros. + + * mpn/asm-defs.m4 (m4wrap_prepend): New macro. + (m4_error): Use it. + (m4_not_for_expansion): Corrections to OPERATION symbols. + More comments about variations between m4 versions. + * mpn/x86/x86-defs.m4 (PROLOGUE): Use m4wrap_prepend (fixes error + exit under BSD m4, previously m4_error printed the message but the + exit code was 0). + + * gmp.h (mpn_divmod_1): Change to a macro calling mpn_divrem_1. + * mpn/generic/divrem_1.c: Move divmod_1.c code to here, make it + static and call it __gmpn_divmod_1_internal. + * mpn/generic/divmod_1.c: Remove file. + * configure.in (gmp_mpn_functions): Remove divmod_1. + * mpn/asm-defs.m4 (define_mpn): Remove divmod_1 and divmod_1c. + * compat.c (mpn_divmod_1): Add compatibility function. + * tune/*: Remove mpn_divmod_1 measuring (leave just divrem_1). + + * acconfig.h (HAVE_NATIVE_mpn_*): Add some missing carry-in + variants, remove divmod_1. + + * mpn/x86/diveby3.asm: Use imul, update comments. + + * demos/qcn.c: New file. + * demos/Makefile.am (EXTRA_PROGRAMS): Add it. + + * mpz/tests/t-jac.c: New file. + * mpz/tests/Makefile.am (check_PROGRAMS): Add it. Enable ansi2knr. + + * mpz/kronsz.c: New file. + * mpz/kronuz.c: New file. + * mpz/kronzs.c: New file. + * mpz/kronzu.c: New file. + * mpz/Makefile.am (libmpz_la_SOURCES): Add them. + * Makefile.am (MPZ_OBJECTS): Add them. + * gmp-impl.h (JACOBI_*, MPN_STRIP_LOW_ZEROS_NOT_ZERO): New macros. + * gmp.h (mpz_*_kronecker_*): New defines and prototypes. + + * mpn/generic/jacbase.c: New file. + * mpn/generic/mod_1_rs.c: New file. + * configure.in (gmp_mpn_functions): Add them. + * gmp.h (mpn_jacobi_base, mpn_mod_1_rshift): New defines and + prototypes. + * longlong.h (COUNT_TRAILING_ZEROS_TIME): New define. + * mpn/tests/ref.c (refmpn_mod_1_rshift): New function. + * mpn/tests/try.c: Add mpn_mod_1_rshift. + * tune/*: Add measuring for mpn_jacobi_base. + + * acinclude.m4 (GMP_FINISH): Add ifdefs to allow multiple + inclusion of config.m4. + (GMP_PROG_M4): Put "good" message through to config.log. + + * mpz/powm.c: Use a POWM_THRESHOLD for where redc stops. + * tune/*: Add mpz_powm measuring, and tune POWM_THRESHOLD. + * gmp-impl.h [TUNE_PROGRAM_BUILD] (POWM_THRESHOLD): Conditional + redefinition for use when tuning. + + * mpz/powm_ui.c: Use DIVIDE_BY_ZERO. + + * mpz/iset_str.c: Initialize _mp_size to 0, in case no digits in + string; this makes it the same as a separate init and set_str. + +2000-05-20 Kevin Ryde + + * mpn/asm-defs.m4: Note &,|,^ aren't bitwise in BSD m4 eval(). + * mpn/x86/k6/sqr_basecase.asm: Use "%" not "&" in m4 eval()s. + + * mpn/x86/x86-defs.m4 (Zdisp): Yet more instruction forms. + +2000-05-19 Linus Nordberg + + * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't use shell variable + `ac_compile' for our own compile command string since other + Autoconf macros may depend on it. + +2000-05-19 Kevin Ryde + + * mpn/generic/mul_n.c (mpn_toom3_mul_n, mpn_toom3_sqr_n): Fix + carry propagation in final coefficient additions. + +2000-05-18 Linus Nordberg + + * configure.in: Set NM before looking for compiler since + GMP_CHECK_CC_64BIT needs it. + + * acinclude.m4 (GMP_CHECK_CC_64BIT): Don't execute on target. + (GMP_PROG_CC_FIND): Before checking if the compiler knows how to + produce 64-bit code, verify that it works at all. The background + is that /usr/ucb/cc on Solaris 7 successfully compiles in 64-bit + mode but fails when doing final link. + (GMP_PROG_CC_WORKS): Report to user what's happening. + +2000-05-17 Linus Nordberg + + * config.guess: Use X86CPU for x86 Cygwin. + +2000-05-16 Kevin Ryde + + * mpn/x86/p6/mmx/divrem_1.asm: New file. + * mpn/x86/p6/mmx/mod_1.asm: New file. + * mpn/x86/p6/README: Update. + * mpn/x86/divrem_1.asm: Update comments. + * mpn/x86/mod_1.asm: Ditto. + +2000-05-14 Kevin Ryde + + * tune/speed.h: Run gcd functions on a set of data. + + * mpn/tests/try.c: New file. + * mpn/tests/try.h: New file. + * mpn/tests/spinner.c: New file. + * mpn/tests/trace.c: New file. + * mpn/tests/x86call.asm: New file. + * mpn/tests/x86check.c: New file. + * mpn/tests/ref.c (refmpn_hamdist): Allow size==0. + (refmpn_gcd): New function, and other additions supporting it. + * mpn/tests/ref.h: More prototypes. + * mpn/tests/Makefile.am: Add try program, use ansi2knr. + + * mpn/x86/k7/mmx/popham.asm: New file. + * mpn/x86/k6/mmx/popham.asm: New file. + * mpn/x86/k6/sqr_basecase.asm: Unroll the addmul, for approx 1.3x + speedup above 15 limbs. + * mpn/x86/k7/README: Update. + * mpn/x86/k6/README: Update, and add notes on plain K6 and pre-CXT + K6-2 problems. + * configure.in (k6*-*-*, athlon-*-*): Add popham. + + * mpn/x86/pentium/diveby3.asm: New file. + * mpn/x86/pentium/README: Update. + + * gmp.texi (Installing GMP): Add note on bad OpenBSD 2.6 m4. + (Reporting Bugs): Ask for config.m4 if asm file related. + (I/O of Rationals): New section, add mpq_out_str. + (References): Add url for on-line gcc manuals. + A few node and menu updates. + + * INSTALL: Better command line argument checking for test progs. + Change MP -> GMP. + + * configure.in (WANT_ASSERT, USE_STACK_ALLOC, HAVE_PENTIUM_RDTSC): + Put descriptions here, not in acconfig.h. + (CALLING_CONVENTIONS_OBJS): New AC_SUBST (for mpn/tests/try). + (HAVE_CALLING_CONVENTIONS): New AC_DEFINE. + (AC_CHECK_HEADERS): Add sys/time.h. + (AC_CHECK_FUNCS): Add getpagesize, setitimer. + (KARATSUBA_SQR_THRESHOLD): Strip trailing comments from the + #define when passing through to config.m4. + * acconfig.h (PACKAGE, VERSION, WANT_ASSERT, USE_STACK_ALLOC, + HAVE_PENTIUM_RDTSC): No need for #undefs, autoheader gets them + from configure.in. + + * acinclude.m4 (GMP_PROG_M4): Check for broken OpenBSD 2.6 m4 + eval(), put messages into config.log. + * mpn/asm-defs.m4: Add notes and test for OpenBSD 2.6 m4. + + * mpq/out_str.c: New file. + * mpq/Makefile.am (libmpq_la_SOURCES): Add it. + * Makefile.am (MPQ_OBJECTS): Ditto. + * gmp.h (mpq_out_str): New define and prototype. + +2000-05-12 Kevin Ryde + + * configure.in (CONFIG_TOP_SRCDIR): Fix to use $srcdir not + $top_srcdir (which doesn't exist). + * acinclude.m4 (GMP_C_ANSI2KNR): Fix setting U=_. + * gmp-impl.h (mpn_com_n, MPN_LOGOPS_N_INLINE): Fix missing "do" + (not currently used, probably no ill effect anyway). + +2000-05-11 Torbjorn Granlund + + * randraw.c (lc): Major overhaul (pending rewrite). + (_gmp_rand): Rewrite. + +2000-05-08 Torbjorn Granlund + + * mpz/tests/convert.c: Call free via _mp_free_func. + * mpf/tests/t-conv.c: Likewise. + + * memory.c: Add code enabled for DEBUG that adds special patterns + around allocated blocks. + +2000-05-05 Linus Nordberg + + * gmp.texi (Miscellaneous Float Functions): Correct parameter list + for mpf_urandomb(). + + * configure.in: Invoke AC_REVISION. + +2000-05-05 Kevin Ryde + + * gmp.texi: Use @dircategory and @direntry. + (Installing GMP): Clarification for --target, updates on SunOS + problems. + (Integer Arithmetic): Add mpz_mul_si. + (Initializing Rationals): Add mpq_swap. + (Assigning Floats): Add mpf_swap. + (Low-level Functions): Add mpn_divexact_by3c, and details of what + the calculation actually gives. + (Low-level Functions): Note extra space needed by mpn_gcdext, + clarify the details a bit. + + * compat.c: New file, entry points for upward binary compatibility. + (mpn_divexact_by3): Compatibility function. + * Makefile.am (libgmp_la_SOURCES): Add compat.c. + + * mpn/tests/ref.c: Rearrange macros for ansi2knr. + (div1): Renamed from div to avoid library function. + (refmpn_divexact_by3c, refmpn_gcd_1, refmpn_popcount, + refmpn_hamdist): New functions. + * mpn/tests/ref.h: Add extern "C", add new prototypes. + + * gmp.h (gmp_randinit, etc): Add extern "C". + (_mpq_cmp_ui): Fix prototype name from mpq_cmp_ui. + (mpn_divexact_by3): Now a macro calling mpn_divexact_by3c. + (mpn_divexact_by3c): New prototype and define. + + * mpn/x86/diveby3.asm: Change to mpn_divexact_by3c. + * mpn/x86/k6/diveby3.asm: Ditto. + * mpn/generic/diveby3.c: Ditto. + * mpn/asm-defs.m4: Ditto on the define_mpn. + * acconfig.h (HAVE_NATIVE_mpn_divexact_by3c): New define. + + * mpq/swap.c: New file, derived from mpz/swap.c. + * mpf/swap.c: Ditto. + * mpq/Makefile.am: Add swap.c. + * mpf/Makefile.am: Ditto. + * Makefile.am: Add two new "swap.lo"s. + + * mpn/x86/k6/mmx/com_n.asm: Fix an addressing bug (fortunately + this code hasn't been used anywhere yet). + + * mpn/x86/k7/mmx/divrem_1.asm: New file. + * mpn/x86/k7/mmx/mod_1.asm: New file. + * mpn/x86/k7/diveby3.asm: New file. + * mpn/x86/k7/README: Update. + + * mpn/x86/k7/aorsmul_1.asm: Use new cmovCC, no object code change. + * mpn/x86/k7/mul_basecase.asm: Ditto. + * mpn/x86/p6/aorsmul_1.asm: Ditto. + + * mpn/x86/x86-defs.m4 (defframe_empty_if_zero): Eval the argument. + (cmovCC): New macros, replacing individual cmovCC_reg_reg forms. + (Zdisp): Recognise more instructions. + (shldl,etc): Use m4_instruction_wrapper(). + (ASSERT, movl_text_address): New macros. + + * mpn/asm-defs.m4: Add remarks on SunOS /usr/bin/m4 and new + OpenBSD m4. + (m4_assert_numargs_internal_check): Remove a spurious parameter. + (m4_empty_if_zero): Eval the argument. + (m4_assert, m4_assert_numargs_range, m4_config_gmp_mparam, + m4_instruction_wrapper): New macros. + +2000-05-04 Linus Nordberg + + * gmp.texi (Reporting Bugs): Be explicit about output from running + a command. + +2000-05-02 Torbjorn Granlund + + * mpn/generic/bz_divrem_n.c (mpn_bz_divrem_n): Handle non-zero return + from first mpn_bz_div_3_halves_by_2 call. + (mpn_bz_divrem_aux): Likewise. + +2000-04-30 Kevin Ryde + + * tune/* (GCD_ACCEL_THRESHOLD, GCDEXT_THRESHOLD): Tune these. + + * mpn/generic/gcdext.c (GCDEXT_THRESHOLD): Rename from THRESHOLD, + use with >=, adjust default to 17 accordingly. + Use new *_SWAP macros. + + * mpn/generic/gcd.c (GCD_ACCEL_THRESHOLD): Rename from + ACCEL_THRESHOLD, use with >=, adjust default to 5 accordingly. + Use new *_SWAP macros. + + * mpf/get_str.c, mpf/set_str.c, mpf/sub.c, mpz/add.c, mpz/ior.c, + mpz/and.c, mpz/sub.c, mpz/xor.c, mpz/ui_pow_ui.c, + mpn/generic/mul.c: Use new *_SWAP macros. + + * stack-alloc.h: Add extern "C" around prototypes. + + * gmp-impl.h: (MP_PTR_SWAP, etc): New macros. + (_mp_allocate_func, etc): Use _PROTO. + [TUNE_PROGRAM_BUILD]: More changes in tune program build part. + +2000-04-28 Torbjorn Granlund + + * mpn/pa64/add_n.s: Add `,entry' to export directive. + * mpn/pa64/addmul_1.S, mpn/pa64/lshift.s, mpn/pa64/mul_1.S, + mpn/pa64/rshift.s, mpn/pa64/sub_n.s, mpn/pa64/submul_1.S, + mpn/pa64/umul_ppmm.S: Likewise. + * mpn/hppa/hppa1_1/udiv_qrnnd.S: New name for udiv_qrnnd.s. + Add PIC support. + +2000-04-29 Kevin Ryde + + * gmp-impl.h [TUNE_PROGRAM_BUILD] (TOOM3_MUL_THRESHOLD_LIMIT): New + define. + * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Use + TOOM3_MUL_THRESHOLD_LIMIT, not a hard coded 500. + + * memory.c: Use for malloc etc, and use _PROTO. + * stack-alloc.c: Don't use C++ reserved word "this". + * urandom.h: Put extern "C" around prototypes. + * mpz/powm.c: Switch a couple of parameters to "const", which they + are, to satisfy g++. + + * randraw.c, stack-alloc.c, mpbsd/mout.c, mpbsd/mtox.c: Add casts to + help g++. + + * stack-alloc.c: Provide dual ANSI/K&R function definitions. + * mpz/addmul_ui.c,get_d.c,inp_str.c,perfpow.c,powm.c,pprime_p.c, + rrandomb.c,set_str.c,ui_pow_ui.c: Ditto. + * mpf/integer.c,set_str.c: Ditto. + * mpbsd/min.c,xtom.c: Ditto. + * mpn/generic/bz_divrem_n.c,dump.c,gcd_1.c,get_str.c,hamdist.c, + popcount.c,random.c,random2.c,set_str.c: Ditto. + + * rand.c: Use for NULL. + * mpz/gcd_ui.c,gcdext.c,mul.c,perfpow.c,powm_ui.c,root.c,sqrt.c, + sqrtrem.c: Ditto + * mpf/sqrt.c,sqrt_ui.c: Ditto. + * mpn/generic/perfsqr.c,sqrtrem.c: Ditto. + + * gmp-impl.h (NULL, malloc, realloc, free): Don't define/declare. + (extern "C"): Add around function prototypes. + (mpn_kara_mul_n, mpn_kara_sqr_n, mpn_toom3_mul_n, mpn_toom3_sqr_n): + Add prototypes. + [TUNE_PROGRAM_BUILD] (FIB_THRESHOLD): Add necessary redefinitions for + use by tune program. + * mpn/generic/mul_n.c: Remove mpn_toom3_mul_n prototype. + + * acinclude.m4 (GMP_C_ANSI2KNR): New macro. + (GMP_CHECK_ASM_MMX, GMP_CHECK_ASM_SHLDL_CL): Fix to use + $gmp_cv_check_asm_text which is what GMP_CHECK_ASM_TEXT sets. + * configure.in (GMP_C_ANSI2KNR): Use this instead of AM_C_PROTOTYPES, + for reasons described with its definition. + + * demos/Makefile.am (ansi2knr): Use $(top_builddir) nor $(top_srcdir). + + * mpz/fib_ui.c (FIB_THRESHOLD): Rename from FIB_THRES, for consistency. + (FIB_THRESHOLD): Conditionalize so gmp-mparam.h can define a value. + (mpz_fib_bigcase): Use >= FIB_THRESHOLD, same as main mpz_fib_ui. + * tune/tuneup.c,Makefile.am (FIB_THRESHOLD): Tune this. + + * configure.in (*-*-aix* gmp_m4postinc): Fix setting (don't overwrite + a value just stored). + +2000-04-26 Kevin Ryde + + * mpn/sparc32/udiv_fp.asm: Use mpn_udiv_qrnnd macro. + * mpn/sparc32/udiv_nfp.asm: Ditto. + * mpn/sparc32/v8/supersparc/udiv.asm: Ditto. + * mpn/sparc32/umul.asm: Name the function mpn_umul_ppmm. + * mpn/sparc32/v8/umul.asm: Ditto. + * mpn/powerpc32/umul.asm: Ditto. + + * mpn/x86/syntax.h: Remove file, since now unused. + + * configure.in (x86): Remove -DBROKEN_ALIGN and -DOLD_GAS + previously used by .S files. + (x86 extra_functions): Add udiv and umul. + (GMP_PROG_M4): Use this instead of AC_CHECK_PROG(M4,m4,...) + (HAVE_NATIVE_*): Loosen up the regexp to "PROLOGUE.*" so as to + accept PROLOGUE_GP on alpha. + + * acconfig.h (HAVE_NATIVE_mpn_umul_ppmm, udiv_qrnnd, invert_limb): + New template defines. + * mpn/asm-defs.m4 (mpn_umul_ppmm, mpn_udiv_qrnnd): New define_mpn()s. + * longlong.h (umul_ppmm, udiv_qrnnd): Use a library version if + it's available and an asm macro isn't. + * gmp-impl.h (invert_limb): Ditto. + + * gmp-impl.h (ASSERT_NOREALLOC): Not a good idea, remove it. + + * acinclude.m4 (GMP_PROG_M4): New macro. + +2000-04-25 Linus Nordberg + + * gmp.texi (Random State Initialization): Correct arguments to + `gmp_randinit'. + + * acinclude.m4 (GMP_VERSION): Change `eval' --> `m4_eval'. Fix + from Kevin. + * aclocal.m4: Regenerate. + +2000-04-25 Kevin Ryde + + * mpn/x86/aors_n.asm: Remove parentheses around an immediate that + Solaris "as" doesn't like, change by Torbjorn. + +2000-04-24 Kevin Ryde + + * configure.in (AC_CHECK_FUNCS): Add strtoul. + + * mpn/generic/mul_n.c [TUNE_PROGRAM_BUILD] (mpn_mul_n): Bigger + array for karatsuba temporary space for tune program build. + (mpn_toom3_sqr_n) Remove an unused variable. + + * demos/Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. + Add "allprogs:" pseudo-target. + * demos/factorize.c, demos/isprime.c: Switch to ANSI functions, + rely on ansi2knr. + + * gmp.texi (Getting the Latest Version of GMP): Add reference to + ftp.gnu.org mirrors list. + * INSTALL: Add arg count check to example programs. + + * mpn/x86/*/*.asm: Convert to FORTRAN ... or rather to + FORTRAN-style "C" commenting to support Solaris "as". + * mpn/x86/x86-defs.m4: Ditto, and add another Zdisp insn. + * mpn/asm-defs.m4 (C): Update comments. + * mpn/x86/README.family: Add a note on commenting, remove + description of .S files. + + * mpn/sparc64/addmul_1.asm, mul_1.asm, submul_1.asm: Use + include_mpn(). + +2000-04-23 Torbjorn Granlund + + * config.sub: Merge with FSF version of April 23. + + * mpn/powerpc32: Use dnl/C instead of `#' for comments. + + * config.guess: Get "model" limit between pentium 2 and pentium3 right. + Get rid of code determining `_' prefix; use double labels instead. + * config.guess: Partially merge with FSF version of April 22. + (Don't bring over NetBSD changes for now.) + +2000-04-23 Kevin Ryde + + * tune/Makefile.am, tune/README, tune/common.c, tune/rdtsc.asm, + tune/speed.c, tune/speed.h, tune/time.c, tune/tuneup.c: New files. + * tune/Makefile.in: New file, generated from Makefile.am. + + * gmp-impl.h (ASSERT_NOREALLOC,TMP_ALLOC_LIMBS): New macros. + [TUNE_PROGRAM_BUILD] Further mods for tune program builds. + + * mpz/Makefile.am: Add -DOPERATION_$* for new mul_siui.c. + Add rules to build mul_si and mul_ui from a common mul_siui.c. + * mpz/mul_siui.c: New file, derived from and replacing mul_ui.c. + * gmp.h (mpz_mul_si): New prototype and define. + + * mpn/tests/*.c [__i386__] (CLOCK): Don't use floating point in + CLOCK because cpp can't handle floats in #if's (TIMES is derived + from CLOCK by default). + + * mpn/asm-defs.m4 (include_mpn): New macro. + (m4_assert_numargs) Changes to implementation. + + * mpf/Makefile.am: Add -DOPERATION_$* for new integer.c. + Remove explicit rules for floor.o etc. + * mpf/integer.c: Use OPERATION_$* for floor/ceil/trunc. + + * mpn/Makefile.am: Put "tests" in SUBDIRS. + * mpn/tests/Makefile.am: New file providing rules to build test + programs, nothing done in a "make all" or "make check" though. + * mpn/tests/README: New file. + + * acconfig.h (HAVE_PENTIUM_RDTSC): New define. + + * configure.in (x86): Rearrange target cases. + Add mulfunc aors_n and aorsmul_1 for x86 and pentium (now all x86s). + Remove asm-syntax.h generation not needed. + Remove now unused family=x86. + (sparc) Remove unused family=sparc. + (HAVE_PENTIUM_RDTSC) New AC_DEFINE and AM_CONDITIONAL. + (AM_C_PROTOTYPES) New test, supporting ansi2knr. + (AC_CHECK_HEADERS) Add getopt.h, unistd.h and sys/sysctl.h for + tune progs. + (AC_CHECK_FUNCS) Add getopt_long, sysconf and sysctlbyname for + tune progs. + (config.m4 CONFIG_TOP_SRCDIR) Renamed from CONFIG_SRCDIR. + (config.m4 asm-defs.m4) Use CONFIG_TOP_SRCDIR and include(). + (gmp_m4postinc) Use include_mpn(). + (gmp_links) Omit asm-defs.m4/asm.m4 and gmp_m4postinc's. + (MULFUNC_PROLOGUE) Fix regexps so all functions get AC_DEFINE'd. + (PROLOGUE) Ditto (native copyi and copyd were unused in gmp 3). + (KARATSUBA_SQR_THRESHOLD) Copy from gmp-mparam.h into config.m4. + (AC_OUTPUT) Add tune/Makefile, mpn/tests/Makefile. + + * Makefile.am (AUTOMAKE_OPTIONS): Add ansi2knr. + (SUBDIRS): Add tune, reorder directories. + (MPZ_OBJECTS): Add mpz/mul_si.lo. + (libmp_la_SOURCES): Use this for top-level objects, not .lo's. + * ansi2knr.c, ansi2knr.1: New files, provided by automake. + + * mpn/x86/aors_n.asm: Convert add_n.S and sub_n.S to a + multi-function aors_n.asm, no object code change. + * mpn/x86/pentium/aors_n.asm: Ditto. + * mpn/x86/aorsmul_1.asm: Ditto for addmul/submul. + * mpn/x86/pentium/aorsmul_1.asm: Ditto. + + * mpn/x86/lshift.asm, mpn/x86/mul_1.asm, mpn/x86/mul_basecase.asm, + mpn/x86/rshift.asm: Convert from .S, no object code change. + * mpn/x86/pentium/lshift.asm, mpn/x86/pentium/mul_1.asm, + mpn/x86/pentium/mul_basecase.asm, mpn/x86/pentium/rshift.asm: Ditto. + + * gmp.texi (Reporting Bugs): Itemize the list of things to include. + (Miscellaneous Float Functions): Correct typo in mpf_ceil etc + argument types. + Change @ifinfo -> @ifnottex for benefit of makeinfo --html. + Remove unnecessary @iftex's around @tex. + +2000-04-22 Torbjorn Granlund + + * config.guess: Generalize x86 cpu determination code. + Now works on Solaris. + + * mpz/nextprime.c: Rewrite still disabled code. + + * configure.in: Specifically match freebsd[3-9]. + +2000-04-21 Torbjorn Granlund + + * rand.c: Call mpz_clear for otherwise leaking mpz_t. + + * mpz/pprime_p.c (mpz_probab_prime_p): Merge handling of negative + n into code for handling small positive n. Merge variables m and n. + After dividing, simply call mpz_millerrabin. + (isprime): Local variables now use attribute `long'. + (mpz_millerrabin): New static function, based on code from + mpz_probab_prime_p. + (millerrabin): Now simple workhorse for mpz_millerrabin. + +2000-04-19 Torbjorn Granlund + + * gmp-impl.h: Fix parenthesis error in test for __APPLE_CC__. + +2000-04-18 Linus Nordberg + + * NEWS: Add info about shared libraries. Remove reference to + gmp_randinit_lc. + +2000-04-17 Torbjorn Granlund + + * Version 3.0 released. + + * mpn/arm/add_n.S: New version from Robert Harley. + * mpn/arm/addmul_1.S: Likewise. + * mpn/arm/mul_1.S: Likewise. + * mpn/arm/sub_n.S: Likewise. + + * gmp.h (__GNU_MP_VERSION_PATCHLEVEL): Now 0. + +2000-04-17 Linus Nordberg + + * configure.in (hppa2.0*-*-*): Pass `+O3' to cc/c89 in 64-bit mode + to avoid compiler bug. + (ns32k*-*-*): Fix typo in path. Change by Kevin. + (alpha*-*-osf*): New case. Pass assembly flags for architecture + to gcc. + (alpha*-*-*): Don't bother searching for cc. + * configure: Regenerate. + + * Makefile.am (EXTRA_DIST): Add `macos', `.gdbinit'. + * Makefile.in: Regenerate. + * mpn/Makefile.am (EXTRA_DIST): Add `m88k', `lisp'. + * mpn/Makefile.in: Regenerate. + +2000-04-16 Kevin Ryde + + * README: Updates, and don't duplicate the example in INSTALL. + * INSTALL: Minor updates. + * gmp.texi (Installing MP): Minor edits, restore CC/CFLAGS description. + +2000-04-16 Linus Nordberg + + * configure.in (*-*-cygwin*): Select BSD_SYNTAX to avoid + .type/.size in PROLOGUE for ELF_SYNTAX. Override ALIGN definition + from x86/syntax.h. + (gmp_xoptcflags_${CC}): New set of variables, indicating + ``exclusive optional cflags''. + (most sparcs): Use gmp_xoptcflags instead of gmp_optcflags to + ensure that we pass CPU type to older gcc. + (CFLAGS): CFLAGS on the command line was spoiled. + * configure: Regenerate. + +2000-04-16 Linus Nordberg + + * configure.in: Invoke AC_PROG_LIBTOOL directly. + + * acinclude.m4 (GMP_PROG_CC_FIND): Quote source variable when + setting CC64 and CFLAGS64. + (GMP_PROG_CC_SELECT): Cache result. + (GMP_PROG_LIBTOOL): Remove. + + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2000-04-16 Linus Nordberg + + * tests/rand/t-rand.c (main): Add non-ANSI function declaration. + Don't use `const'. + +2000-04-16 Torbjorn Granlund + + * mpn/generic/dump.c: Suppress output of leading zeros. + + * mpz/inp_str.c: Fix memory leakage. + + * mpz/tests/reuse.c (dss_func_division): Add a final 1. + + * longlong.h (alpha count_leading_zeros): Wrap in __MPN. + * mpn/alpha/cntlz.asm: Use __gmpn prefix (by means of __MPN). + + * longlong.h (__umul_ppmm, __udiv_qrnnd): Wrap in __MPN. + * mpn/alpha/udiv_qrnnd.S: Use __gmpn prefix. + * mpn/hppa/udiv_qrnnd.s: Likewise. + * mpn/hppa/hppa1_1/udiv_qrnnd.s: Likewise. + * mpn/pa64/udiv_qrnnd.c: Likewise (by means of __MPN). + * mpn/pa64/umul_ppmm.S: Likewise. + * mpn/sparc32/udiv_fp.asm: Likewise (by means of MPN). + * mpn/sparc32/udiv_nfp.asm: Likewise (by means of MPN). + * mpn/sparc32/v8/supersparc/udiv.asm: Likewise (by means of MPN). + + * mpn/generic/tdiv_qr.c: Work around gcc 2.7.2.3 i386 register handling + bug. + + * mpn/generic/tdiv_qr.c: Use udiv_qrnnd instead of mpn_divrem_1 + when computing appropriate quotient; mpn_divrem_1 writes too + many quotient limbs. + + * mpn/asm-defs.m4: invert_normalized_limb => invert_limb. + * mpn/alpha/invert_limb.asm: mpn_invert_normalized_limb => + mpn_invert_limb. + * gmp.h: Likewise. + * gmp-impl.h (alpha specific): invert_normalized_limb => invert_limb; + wrap with __MPN. + * longlong.h (alpha udiv_qrnnd): Likewise. + +2000-04-16 Kevin Ryde + + * gmp.h (mp_set_memory_functions,mp_bits_per_limb,gmp_errno): Add + #defines so the library symbols are __gmp_*. + * errno.c: Include gmp.h. + * gmp-impl.h (_mp_allocate_func,etc): Add #defines to __gmp_*. + (__clz_tab): New #define to __MPN(clz_tab). + * stack-alloc.c (__gmp_allocate_func,etc): Change from _mp_*. + + * Makefile.am (libmp_la_DEPENDENCIES): Add some mpz files needed + for new mpz_powm (pow in libmp). + (EXTRA_DIST): Add projects directory. + + * mpn/*: Change __mpn to __gmpn. + * gmp.h (__MPN): Ditto. + * stack_alloc.c,stack-alloc.h: Change __tmp to __gmp_tmp. + + * mpn/generic/sb_divrem_mn.c (mpn_sb_divrem_mn): Avoid gcc 2.7.2.3 + i386 register handling bug (same as previously in mpn_divrem_classic). + + * mpn/generic/divrem.c: Now contains mpn_divrem, which is not an + internal function, so remove warning comment. + + * gmp.texi (Compatibility with Version 2.0.x): Source level only. + +2000-04-16 Linus Nordberg + + * configure.in (hppa1.0*): Prefer c89 to cc. + * configure: Regenerate. + +2000-04-15 Linus Nordberg + + * configure.in: If `mpn_path' is set by user on configure command + line, use that as path. + * configure: Regenerate. + +2000-04-15 Linus Nordberg + + * configure.in (hppa2.0*): Use path "hppa/hppa1_1 hppa" if no + 64-bit compiler was found. + * configure: Regenerate. + +2000-04-15 Linus Nordberg + + * configure.in: Honor `CC' and `CFLAGS' set by user on configure + command line. + * acinclude.m4: (GMP_PROG_CC_SELECT): Set CFLAGS if not set already. + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2000-04-15 Linus Nordberg + + * acinclude.m4 (GMP_PROG_CC_FIND): Remove debug output. Remove + commented out code. + * aclocal.m4: Regenerate. + * configure: Regenerate. + + * configure.in: Make all `-mcpu' options to gcc optional. + * configure: Regenerate. + + * tests/rand/Makefile.am: Don't do anything for target 'all'. + * tests/rand/Makefile.in: Regenerate. + +2000-04-15 Kevin Ryde + + * README: Small updates. + * NEWS: Add some things about 3.0. + + * mpz/Makefile.am (EXTRA_DIST): Remove dmincl.c. + + * Makefile.am: Use -version-info on libraries, not -release. + + * mpz/tdiv_qr.c: Add mdiv function header #ifdef BERKELEY_MP. + * mpbsd/Makefile.am: Use mpz/tdiv_qr.c, not mdiv.c. + * Makefile.am (MPBSD_OBJECTS): Change mdiv.lo to tdiv_qr.lo. + (libmp_la_DEPENDENCIES): Add mp_clz_tab.lo. + * mpbsd/mdiv.c: Remove file. + + * config/mt-linux,mt-m68k,mt-m88110,mt-ppc,mt-ppc64-aix,mt-pwr, + mt-sprc8-gcc,mt-sprc9-gcc,mt-supspc-gcc,mt-vax,mt-x86, + mpn/config/mt-pa2hpux,mt-sprc9,t-oldgas,t-ppc-aix,t-pwr-aix: + Remove configure fragments not used since change to autoconf. + + * mpn/generic/bz_divrem_n.c,sb_divrem_mn.c: Add comment that + internal functions are changeable and shouldn't be used directly. + +2000-04-15 Linus Nordberg + + * configure.in: Remove debug output. + * configure: Regenerate. + +2000-04-15 Torbjorn Granlund + + * mpn/generic/tdiv_qr.c: Don't use alloca directly. + + * mpz/tdiv_qr.c: Fix typo. + * mpz/tdiv_r.c: Fix typo. + * mpz/tdiv_q.c: Fix typo. + + * configure.in: Disable -march=pentiumpro due to apparent compiler + problems. + + * mpz/powm.c: Replace with new code from Paul Zimmermann. + + * mpz/tdiv_q.c: Remove debug code. + + * mpn/generic/divrem.c: Remove C++ style `//' commented-out code. + * mpn/generic/sb_divrem_mn.c: Likewise. + +2000-04-14 Torbjorn Granlund + + * mpz/cdiv_q.c: Change temp allocation for new requirements of + mpz_tdiv_qr. + * mpz/fdiv_q.c: Likewise. + + * mpn/sparc64/gmp-mparam.h: Set up parameters for TOOM3. + + * mpz/dmincl.c: Delete file. + * mpz/tdiv_qr.c: Rewrite using mpn_tdiv_qr. + * mpz/tdiv_r.c: Likewise. + * mpz/tdiv_q.c: Likewise. + + * mpn/generic/tdiv_qr.c: New file. + * mpn/generic/bz_divrem_n.c: New file. + * mpn/generic/sb_divrem_mn.c: New file. + + * gmp-impl.h (MPZ_REALLOC): New macro. + (mpn_sb_divrem_mn): Declare. + (mpn_bz_divrem_n): Declare. + (mpn_tdiv_qr): Declare. + + * configure.in (gmp_mpn_functions): Delete divrem_newt and divrem_1n; + add tdiv_qr, bz_divrem_n, and sb_divrem_mn. + * mpn/generic/divrem_newt.c: Delete file. + * mpn/generic/divrem_1n.c: Delete file. + + * gmp.h (mpn_divrem_newton): Remove declaration. + (mpn_divrem_classic): Remove declaration. + + * gmp.h (mpn_divrem): Remove function definition. + * mpn/generic/divrem.c: Replace mpn_divrem_classic with a + mpn_divrem wrapper. + +2000-04-14 Kevin Ryde + + * mpf/dump.c, mpz/dump.c, mpn/generic/dump.c, + mpn/generic/divrem.c, mpn/generic/divrem_1n.c, + mpn/generic/divrem_2.c, mpn/generic/divrem_newt.c, + mpn/generic/mul.c, mpn/generic/mul_basecase.c, + mpn/generic/mul_n.c, mpn/generic/sqr_basecase.c, + mpn/generic/udiv_w_sdiv.c: Add comment that internal functions are + changeable and shouldn't be used directly. + + * mpq/div.c: Use DIVIDE_BY_ZERO (previously didn't get an + exception on zero divisor). + + * mpf/tests/t-get_d.c, mpz/tests/reuse.c: Add K&R function + definitions. + * mpz/tests/t-2exp.c: Don't use ANSI-ism 2ul. + + * gmp.texi (Installing MP): Build problem notes for GSYM_PREFIX + and ranlib on native SunOS. + Particular systems notes about AIX and HPPA shared libraries + disabled. + (MP Basics): Add that undocumented things shouldn't be used. + (Introduction to MP): Add to CPUs listed. + + * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): Don't depend on C + having "void". + +2000-04-13 Linus Nordberg + + * mpn/pa64/udiv_qrnnd.c (__udiv_qrnnd64): Add K&R function + definition. + + * configure.in: Disable shared libraries for hppa*. + (mips-sgi-irix6.*): Fix flags for 64-bit gcc. + (hppa2.0*-*-*): Prefer c89 to cc. + * configure: Regenerate. + + * gmp.h (gmp_randalg_t): Remove comma after last element. + + * tests/rand/t-rand.c: Add copyright notice. + +2000-04-13 Kevin Ryde + + * mpn/generic/mul_n.c, mpn/generic/gcdext.c, mpz/nextprime.c, + mpz/remove.c, mpz/root.c: Add K&R function definitions. + * mpz/rrandomb.c: Fix typo in K&R part. + * stack-alloc.c: Add K&R style function pointer declarations. + + * mpz/root.c: Use SQRT_OF_NEGATIVE on even roots of negatives. + Use DIVIDE_BY_ZERO on a "zero'th" root. + + * configure: Regenerate with autoconf backpatched to fix --srcdir + absolute path wildcards that bash doesn't like, change by Linus. + + * gmp.texi (Integer Arithmetic): Document mpz_nextprime. + (Miscellaneous Integer Functions): Fix mpz_fits_* formatting. + (Installing MP): Comment-out CC and CFLAGS description. + +2000-04-13 Linus Nordberg + + * rand.c (gmp_randinit): Don't combine va_alist with ordinary + arguments for non STDC. + +2000-04-13 Torbjorn Granlund + + * mpz/nextprime.c: Use proper names of new random types and functions. + + * mpz/rrandomb.c: New file. + * mpz/Makefile.am: List it. + * mpz/Makefile.in: Regenerate. + * Makefile.am: Here too. + * Makefile.in: Regenerate. + * gmp.h: Declare mpz_rrandomb. + +2000-04-12 Linus Nordberg + + * Makefile.am, demos/Makefile.am, mpbsd/Makefile.am, + mpbsd/tests/Makefile.am, mpf/Makefile.am, mpf/tests/Makefile.am, + mpn/Makefile.am, mpq/Makefile.am, mpq/tests/Makefile.am, + mpz/Makefile.am, mpz/tests/Makefile.am, tests/Makefile.am, + tests/rand/Makefile.am (AUTOMAKE_OPTIONS): Add 'no-dependencies'. + + * Makefile.in, demos/Makefile.in, mpbsd/Makefile.in, + mpbsd/tests/Makefile.in, mpf/Makefile.in, mpf/tests/Makefile.in, + mpn/Makefile.in, mpq/Makefile.in, mpq/tests/Makefile.in, + mpz/Makefile.in, mpz/tests/Makefile.in, tests/Makefile.in, + tests/rand/Makefile.in: Regenerate. + +2000-04-12 Linus Nordberg + + * randlc.c (gmp_randinit_lc): Disable function. + * gmp.texi (Random State Initialization): Remove gmp_randinit_lc. + + * acinclude.m4 (GMP_CHECK_CC_64BIT): Compiling an empty main + successfully with `-n32' will have to suffice on irix6. + * aclocal.m4: Regenerate. + + * configure.in (sparc): Don't pass -D_LONG_LONG_LIMB to compiler. + (mips-sgi-irix6.*): Use compiler option `-n32' rather than `-64' + for 64-bit `cc'. Add options for gcc. + * configure: Regenerate. + + * mpf/urandomb.c (mpf_urandomb): Add third parameter 'nbits'. If + 'nbits' doesn't make even limbs, shift up result before + normalizing. + + * gmp.h (mpf_urandomb): Add parameter to prototype. + + * mpf/urandom.c: Rename file to ... + * mpf/urandomb.c: ... this. + * Makefile.am (MPF_OBJECTS): Change urandom.lo --> urandomb.lo. + * Makefile.in: Regenerate. + * mpf/Makefile.am (libmpf_la_SOURCES): Change urandom.c --> urandomb.c. + * mpf/Makefile.in: Regenerate. + + * config.in: Regenerate for HAVE_DECL_OPTARG. + + * randraw.c (_gmp_rand): Fix bug with _LONG_LONG_LIMB. + (lc): Change return type. + Use one temporary storage instead of two. + Handle seed of size 0. + Avoid modulus operation in some cases. + Abort if M is not a power of 2. + Fix bug with 64-bit limbs. + Fix bug with small seed, small A and large M. + + * tests/rand/gen.c (main): Include gmp.h. Remove macros MIN, MAX. Add + option '-q'. Don't demand argument N. Change parameters in call + to mpf_urandomb. + + * tests/rand/t-rand.c: New file for testing random number generation. + + * tests/rand/Makefile.am: Run t-rand for 'make check'. + (test, bigtest): Rename to manual-test, manual-bigtest. + * tests/rand/Makefile.in: Regenerate. + +2000-04-12 Kevin Ryde + + * gmp-impl.h: Include config.h before TMP_ALLOC, so + --disable-alloca works. + + * mpbsd/Makefile.am: Don't recompile top-level sources here. + * Makefile.am (libmp_la_DEPENDENCIES): Put objects here instead, + add errno.lo and stack-alloc.lo. + + * mpn/asm-defs.m4: Add a test and message for the unsuitable SunOS m4. + * gmp.texi (Installing MP): Update note on SunOS m4 failure. + + * acconfig.h: Add copyright notice using @TOP@. + + * stack-alloc.c: Use _mp_allocate_func, not malloc. + * gmp.texi (Installing MP): Note this under --disable-alloca. + + * gmp.texi (Comparison Functions): mpz_cmp_abs => mpz_cmpabs. + (Integer Arithmetic): mpz_prime_p not yet implemented, comment out. + (Float Arithmetic): mpf_pow_ui now implemented, uncomment-out. + (Miscellaneous Float Functions): Add mpf_ceil, mpf_floor, mpf_trunc. + (Low-level Functions): Add mpn_random2, with mpn_random. + + * mpn/m68k/mc68020/udiv.S: Rename from udiv.s. + * mpn/m68k/mc68020/umul.S: Ditto. + + * mpn/alpha/umul.asm: Rename from umul.s, remove .file and + compiler identifiers. + + * mpn/powerpc32/syntax.h: Removed, no longer used. + + * mpn/a29k/udiv.s: Remove .file and compiler identifiers. + * mpn/a29k/umul.s: Ditto. + + * mpn/tests/ref.c: Use WANT_ASSERT. + * mpn/tests/ref.h: Use _PROTO. + + * mpbsd/configure.in: Removed, no longer required. + + * mpf/div.c: Use DIVIDE_BY_ZERO. + * mpf/div_ui.c: Ditto. + * mpf/ui_div.c: Ditto. + * mpq/inv.c: Ditto. + * mpf/sqrt.c: Use SQRT_OF_NEGATIVE. + * mpz/sqrt.c: Ditto. + * mpz/sqrtrem.c: Ditto. + + * gmp-impl.h (GMP_ERROR,SQRT_OF_NEGATIVE): New macros. + (DIVIDE_BY_ZERO): Use GMP_ERROR. + (__mp_bases): #define to __MPN(mp_bases). + +2000-04-11 Linus Nordberg + + * tests/rand/stat.c (main): Initialize `l1runs' at declaration. + +2000-04-11 Kevin Ryde + + * mpz/fib_ui.c: Add K&R function definitions. + + * mpbsd/tests/Makefile.am (TESTS): Add a dummy test to avoid a + shell problem with an empty "for tst in $(TESTS) ; ...". + * mpbsd/tests/dummy.c: New file. + +2000-04-10 Torbjorn Granlund + + * mpz/bin_uiui.c: Delete several unused variables. + Add copyright notice. + * mpz/bin_ui.c: Add copyright notice. + + * longlong.h: Declare __count_leading_zeros for alpha. + +2000-04-10 Linus Nordberg + + * rand.c (gmp_randinit): Change parameter list to (rstate, alg, ...). + * gmp.h: Change prototype accordingly. + * mpz/pprime_p.c (millerrabin): Change call accordingly. + + * configure.in: Check for `optarg'. + * configure: Regenerate. + + * mpn/Makefile.am: Remove incorrect comment. + * mpn/Makefile.in: Regenerate. + + * gmp.h: Rename most of the random number functions, structs and some + of the struct members. + * rand.c (gmp_randinit): Likewise. + * randclr.c (gmp_randclear): Likewise. + * randlc.c (gmp_randinit_lc): Likewise. + * randlc2x.c (gmp_randinit_lc_2exp): Likewise. + * randraw.c (lc): Likewise. + (_gmp_rand_getraw): Likewise. + * randsd.c (gmp_randseed): Likewise. + * randsdui.c (gmp_randseed_ui): Likewise. + * gmp.texi: Likewise. + + * gmp.texi: Use three hyphens for a dash. + (Low-level Functions): Remove documentation for gmp_rand_getraw. + (Random Number Functions): Add info on where to find documentation + on the random number functions. + + * tests/rand/Makefile.am (test, bigtest): Quote argument to grep. + * tests/rand/Makefile.in: Regenerate. + + * tests/rand/gen.c: Declare optarg, optind, opterr if not already + declared. + (main): Use new names for the random stuff. + (main): Don't use strtoul() if we don't have it. Use strtol() + instead, if we have it. Otherwise, use atoi(). + (main): Use srandom/srandomdev for __FreeBSD__ only. + (main): Use new parameter order to gmp_randinit(). + + * tests/rand/stat.c: Declare optarg, optind, opterr if not already + declared. + +2000-04-10 Torbjorn Granlund + + * mpz/pprime_p.c: Pass 0L for mpz_scan1. mpz_mmod => mpz_mod. + (millerrabin): Use new random interface. + (millerrabin): ... and don't forget to call gmp_randclear. + + * mpz/nextprime.c: New file. + * gmp.h: Declare mpz_nextprime. + * mpz/Makefile.am: List nextprime.c. + * mpz/Makefile.in: Regenerate. + * Makefile.am: List mpz/nextprime.lo. + * Makefile.in: Regenerate. + +2000-04-10 Kevin Ryde + + * move-if-change, mpz/tests/move-if-change, mpq/tests/move-if-change, + mpf/tests/move-if-change: Remove, no longer used. + + * Makefile.am (SUBDIRS): Add tests, demos, mpbsd. + (libmp.la): New target, conditional on WANT_MPBSD. + (libgmp_la_LIBADD): Add -lm. + (AUTOMAKE_OPTIONS): Add check-news. + (include_HEADERS): Setup to install gmp.h and possibly mp.h. + (DISTCLEANFILES): Add generated files. + (check): Remove explicit target (now uses check-recursive). + + * configure.in: Use AM_CONFIG_HEADER. + Add --enable-mpbsd setting automake conditional WANT_MPBSD. + Output demos/Makefile, mpbsd/Makefile and mpbsd/tests/Makefile. + + * mpz/Makefile.am: Add SUBDIRS=tests, shorten INCLUDES since now + using AM_CONFIG_HEADER. + * mpq/Makefile.am: Ditto. + * mpf/Makefile.am: Ditto, and add DISTCLEANFILES. + * mpn/Makefile.am: Shorten INCLUDES, amend some comments. + * mpz/tests/Makefile.am: Use TESTS and $(top_builddir). + * mpf/tests/Makefile.am: Ditto. + * mpq/tests/Makefile.am: Ditto. + * demos/Makefile.am: New file. + + * mpbsd/Makefile.am: New file, derived from old mpbsd/Makefile.in. + * mpbsd/Makefile.in: Now generated from Makefile.am. + * mpbsd/realloc.c: Removed, use mpz/realloc.c instead. + * mpbsd/tests/Makefile.am: New file. + * mpbsd/tests/Makefile.in: New file, generated from Makefile.am. + * mpbsd/tests/allfuns.c: New file. + + * gmp.texi (Top): Use @ifnottex, to help makeinfo --html. + (Installing MP): Describe --enable-mpbsd and demo programs. + + * tests/rand/statlib.c: mpz_cmp_abs => mpz_cmpabs. + + * tests/rand/Makefile.am (LDADD): Don't need -lm (now in libgmp.la). + (EXTRA_PROGRAMS): Not noinst_PROGRAMS. + (INCLUDES): Shorten to -I$(top_srcdir) now using AM_CONFIG_HEADER. + +2000-04-09 Torbjorn Granlund + + * mpz/urandomm.c: Get type of count right. + Simplify computation of nbits. + +2000-04-08 Torbjorn Granlund + + * mpz/urandomb.c: Fix reallocation condition. + Simplify size computation. + +2000-04-08 Linus Nordberg + + * acinclude.m4 (GMP_CHECK_CC_64BIT): Add special handling for + HPUX. + (GMP_CHECK_ASM_W32): Ditto. + * aclocal.m4: Regenerate. + + * mpn/Makefile.am: Use $(CCAS) for assembling. + (.asm.obj): Add rule. + * mpn/Makefile.in: Regenerate. + + * gmp.texi (Miscellaneous Integer Functions): Fix typos. + + * configure.in: Never pass `-h' to grep. + (mips-sgi-irix6.[2-9]*): Try to find 64-bit compiler. + (hppa1.0*-*-*): New flag for cc. + (hppa2.0*-*-*): Try to find 64-bit compiler. Chose path, set + CCAS. + * configure: Regenerate. + +2000-04-08 Torbjorn Granlund + + * mpz/bin_ui.c: Don't depend on ANSI C features. + * mpz/bin_uiui.c: Likewise. + + * Makefile.am (MPZ_OBJECTS): mpz/cmp_abs* => mpz/cmpabs*. + (MPQ_OBJECTS): Add mpq/set_d.lo. + (MPZ_OBJECTS): Add mpz/fits*.lo. + * Makefile.in: Regenerate. + + * mpz/cmpabs.c: New name for mpz/cmp_abs.c. + * mpz/cmpabs_ui.c: New name for mpz/cmp_abs_ui.c. + * mpz/Makefile.am: Corresponding changes. + * mpz/Makefile.in: Regenerate. + * gmp.h: mpz_cmp_abs* => mpz_cmpabs*. + + * mpz/addmul_ui.c (mpn_neg1): Don't depend on ANSI C features. + + * mpz/invert.c: Use TMP_MARK since we invoke MPZ_TMP_INIT. + + * gmp.h (mpq_set_d): Declare correctly. + (mpz_root): Use _PROTO. + (mpz_remove): Use _PROTO. + (mpf_pow_iu): Use _PROTO. + + * mpn/asm-defs.m4 (MPN_PREFIX): Revert previous change. + * gmp.h (__MPN): Revert previous change. + + * mpz/perfpow.c: De-ANSI-fy. Add copyright notice. + + * mpz/set_d.c: Misc cleanups. + + * mpq/set_d: New file. + * gmp.h: Declare mpq_set_d. + * mpq/Makefile.am: List set_d.c. + * mpq/Makefile.in: Regenerate. + +2000-04-07 Torbjorn Granlund + + * mpz/fits_sint_p.c: New file. + * mpz/fits_slong_p.c: New file. + * mpz/fits_sshort_p.c: New file. + * mpz/fits_uint_p.c: New file. + * mpz/fits_ulong_p.c: New file. + * mpz/fits_ushort_p.c: New file. + * gmp.h: Declare mpz_fits_*. + * mpz/Makefile.am: List fits_* files. + * mpz/Makefile.in: Regenerate. + +2000-04-06 Kevin Ryde + + * gmp.texi (Installing MP): Add known build problem SunOS 4.1.4 m4 + failure. + + * mpn/x86/pentium/gmp-mparam.h: Tune thresholds. + * mpn/x86/p6/gmp-mparam.h: Ditto. + * mpn/x86/k6/gmp-mparam.h: Tune thresholds, add UMUL_TIME, UDIV_TIME. + * mpn/x86/k7/gmp-mparam.h: Tune thresholds, amend UMUL_TIME. + + * mpn/generic/mul_n.c (mpn_kara_mul_n): Add an ASSERT. + (mpn_kara_sqr_n): Add an ASSERT, use KARATSUBA_SQR_THRESHOLD. + (mpn_toom3_sqr_n): Eliminate second evaluate3. + + * gmp-impl.h (mpn_com_n,MPN_LOGOPS_N_INLINE): Don't allow size==0. + (tune_mul_threshold,tune_sqr_threshold): Conditionalize + declarations on TUNE_PROGRAM_BUILD. + + * mpn/generic/sqr_basecase.c: Add an assert. + +2000-04-05 Torbjorn Granlund + + * gmp.h, mpn/asm-defs.m4: List the same functions for __MPN, but + leave some commented out. + + * gmp-impl.h (MPN_LOGOPS_N_INLINE): Optimize. + (mpn_com_n): Optimize. + + * gmp.h (__MPN): Make it use __gmpn instead of __mpn for consistency. + * mpn/asm-defs.m4 (MPN_PREFIX): Likewise. + + * gmp.h (GMP_ERROR_ALLOCATE): New errcode. + + * gmp-impl.h (MPN_MUL_N_RECURSE): Delete. + (MPN_SQR_RECURSE): Delete. + + * gmp-impl.h (TARGET_REGISTER_STARVED): New define. + + * gmp-impl.h (mpn_kara_sqr_n): Remap with __MPN. + (mpn_toom3_sqr_n): Likewise. + (mpn_kara_mul_n): Likewise. + (mpn_toom3_mul_n): Likewise. + (mpn_reciprocal): Likewise. + + * gmp-impl.h (__gmpn_mul_n): Remove declaration. + (__gmpn_sqr): Likewise. + * gmp.h (mpn_sqr_n): Declare/remap. + * mpn/generic/mul.c (mpn_sqr_n): New name for mpn_sqr. + + * gmp.h (mpn_udiv_w_sdiv): Move __MPN remap from here... + * gmp-impl.h: ...to here. + +2000-04-05 Linus Nordberg + + * gmp.texi (Top): Add `Random Number Functions' to menu. + (Introduction to MP): Fix typo. + (MP Basics): Create menu for all sections. Move `Random Number + Functions' to its own chapter. Add nodes for all sections. + (Function Classes): Mention random generation functions under + miscellaneous. + (Miscellaneous Integer Functions): Update mpz_urandomb, + mpz_urandomm. + (Low-level Functions): Remove mpn_rawrandom. + (Random State Initialization): Update. + + * mpf/urandom.c (mpf_urandomb): Remove SIZE parameter. Normalize + result correctly. + + * gmp.h (mpf_urandomb): Remove SIZE parameter. + + * randraw.c (gmp_rand_getraw): Handle the case where (1) the LC + scheme doesn't generate even limbs and (2) more than one LC + invocation is necessary to produce the requested number of bits. + +2000-04-05 Torbjorn Granlund + + * mpn/generic/mul_n.c (INVERSE_3): New name for THIRD, define for + any BITS_PER_MP_LIMB. + (MP_LIMB_T_MAX): New. + (mpn_divexact3_n): Remove. + (interpolate3): Use mpn_divexact_by3 instead of mpn_divexact3_n. + +2000-04-05 Kevin Ryde + + * gmp-impl.h (KARATSUBA_MUL_THRESHOLD<2): Remove cpp test. + (tune_mul_threshold,tune_sqr_threshold): Add declarations, used in + development only. + + * mpn/x86/k7/sqr_basecase.asm: New file, only a copy of k6 for now. + +2000-04-04 Torbjorn Granlund + + * gmp-impl.h (TOOM3_MUL_THRESHOLD): Provide default. + (TOOM3_SQR_THRESHOLD): Provide default. + + * mpn/generic/mul_n.c: Rewrite (mostly by Robert Harley). + * mpn/generic/mul.c: Rewrite (mostly by Robert Harley). + + * configure.in (sparcv9 64-bit OS): Set extra_functions. + +2000-04-04 Linus Nordberg + + * mpn/generic/rawrandom.c: Remove file and replace with randraw.c + on top level. + (mpn_rawrandom): Rename to gmp_rand_getraw. + + * randraw.c: New file; essentially a copy of + mpn/generic/rawrandom.c. + (gmp_rand_getraw): New function (formerly known as mpn_rawrandom). + + * mpz/urandomb.c (mpz_urandomb): Change mpn_rawrandom --> + gmp_rand_getraw. + * mpz/urandomm.c (mpz_urandomb): Ditto. + * mpf/urandom.c (mpf_urandomb): Ditto. + + * gmp.h (gmp_rand_getraw): Add function prototype. + (mpn_rawrandom): Remove function prototype. + + * Makefile.am (libgmp_la_SOURCES): Add randraw.c. + * Makefile.in: Regenerate. + + * configure.in (gmp_mpn_functions): Remove rawrandom. + * configure: Regenerate. + +2000-04-04 Linus Nordberg + + * gmp.h (GMP_ERROR enum): Remove comma after last enumeration + since the AIX compiler (xlc) doesn't like that. + + * randlc.c (gmp_rand_init_lc): Allocate enough space for seed to + hold any upcoming seed. + * randlc2x.c (gmp_rand_init_lc_2exp): Likewise. + + * mpn/generic/rawrandom.c: Remove debugging code. + (mpn_lc): Don't reallocate seed. + + * mpz/urandomm.c (mpz_urandomm): Implement function. + + * mpz/urandomb.c (mpz_urandomb): Fix typo in function definition. + +2000-04-04 Kevin Ryde + + * make.bat: Removed (no longer works, no longer supported). + * mpn/msdos/asm-syntax.h: Removed (was used only by make.bat). + +2000-04-03 Torbjorn Granlund + + * mpn/generic/brandom.c: New file, replacing random2. + +2000-04-02 Torbjorn Granlund + + * mpn/sparc32/v9/submul_1.asm: Change some carry-form instructions + into their plain counterparts. + + * mpn/sparc64/copyi.asm: Avoid executing ALIGN. + + * mpn/sparc64/mul_1.asm: Handle overlap of rp/sp. + * mpn/sparc64/addmul_1.asm: Likewise. + * mpn/sparc64/submul_1.asm: Likewise. + +2000-04-01 Linus Nordberg + + * gmp.h: Fix function prototypes for randomization functions. + (__gmp_rand_lc_scheme_struct): Replace `m' with `m2exp'. Remove + unused `bits'. + (__gmp_rand_data_lc): Add `m2exp' as another way of representing + the modulus. + (__gmp_rand_state_struct): Remove unused `size'. + + * rand.c (__gmp_rand_scheme): Use better multipliers. Remove test + schemes. Replace `m' with `m2exp'. + (gmp_rand_init): Change parameters and return type. Use `m2exp' + instead of `m'. Set `gmp_errno' on error. Disable BBS algorithm. + + * randlc.c (gmp_rand_init_lc): Don't use malloc(). Change + parameters. + + * randclr.c (gmp_rand_clear): Don't use free(). Disable BBS + algorithm. Set `gmp_errno' on error. + + * randlc2x.c (gmp_rand_init_lc_2exp): New function. + * randsd.c (gmp_rand_seed): New function. + * randsdui.c (gmp_rand_seed_ui): New function. + * randlcui.c: Remove unused file. + + * mpn/generic/rawrandom.c (mpn_rawrandom): Rewrite. + (mpn_lc): New static function. + + * mpz/urandomb.c (mpz_urandomb): Use ABSIZ() instead of SIZ() for + determining size of ROP. + + * mpf/urandom.c (mpf_urandomb): Add third parameter, nbits. (Not + used yet!) + Change parameter order to mpn_rawrandom(). + + * Makefile.am (libgmp_la_SOURCES): Add errno.c, randlc2x.c, + randsd.c, randsdui.c. Remove randui.c. + (MPZ_OBJECTS): Rename urandom.lo --> urandomb.lo. Add urandomm.lo. + * Makefile.in: Regenerate. + + * mpz/Makefile.am (libmpz_la_SOURCES): Change urandom.c --> + urandomb.c. Add urandomm.c. + * mpz/Makefile.in: Regenerate. + + * tests/rand/Makefile.am (noinst_PROGRAMS): Change findcl --> findlc. + Add gen.static. + * tests/rand/Makefile.in: Regenerate. + + * tests/rand/gen.c (main): Add mpz_urandomm. Add command line options + `-C', `-m', extend `-a'. Use *mp*_*rand*() with new parameters. Call + gmp_rand_seed(). + +2000-04-01 Kevin Ryde + + * acinclude.m4 (GMP_CHECK_ASM_DATA): Plain .data for hpux. + * configure.in (CCAS): No CFLAGS, they're added when it's used. + (CONFIG_SRCDIR): New define for config.m4. + * mpn/sparc64/addmul_1.asm: Use it for an include(). + * mpn/sparc64/submul_1.asm: Ditto. + * mpn/sparc64/mul_1.asm: Ditto. + +2000-03-31 Linus Nordberg + + * mpz/urandom.c: Rename to... + * mpz/urandomb.c: ...this. + + * mpz/urandomb.c (mpz_urandomb): Change operand order in call to + mpn_rawrandom(). Use ABSIZ() instead of SIZ() when checking size + of ROP. + + * mpz/urandomm.c: New file. + +2000-03-31 Kevin Ryde + + * acinclude.m4 (GMP_CHECK_ASM_MMX): Give a warning when mmx code + will be omitted. + +2000-03-30 Torbjorn Granlund + + * mpn/sparc64/mul_1h.asm: New file. + * mpn/sparc64/addmul_1h.asm: New file. + * mpn/sparc64/submul_1h.asm: New file. + * mpn/sparc64/mul_1.asm: Rewrite. + * mpn/sparc64/addmul_1.asm: Rewrite. + * mpn/sparc64/submul_1.asm: Rewrite. + +2000-03-28 Torbjorn Granlund + + * mpn/sparc32/v9/mul_1.asm: Fix typo in branch prediction. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + +2000-03-25 Kevin Ryde + + * mpn/lisp/gmpasm-mode.el: Fix some comment detection, use custom, + fontify more keywords, turn into a standalone mode. + + * stamp-vti: New file, generated together with version.texi. + + * acinclude.m4 (GMP_VERSION,GMP_HEADER_GETVAL): New macros. + * configure.in (AM_INIT_AUTOMAKE): Use GMP_VERSION. + +2000-03-24 Kevin Ryde + + * INSTALL: Updates for new configure system. + + * configure.in: Add gmp_optcflags_gcc for the x86s, setting -mcpu + and -march. + +2000-03-23 Torbjorn Granlund + + * demos/pexpr.c (mpz_eval_expr): Properly initialize rhs/lhs + for ROOT. + +2000-03-23 Kevin Ryde + + * config.guess (i?86:*:*:*): Use uname -m if detection program fails. + + * mpn/x86/README: Remove remarks on the now implemented MMX shifts. + * mpn/x86/k6/README: Add speed of mpn_divexact_by3, update mpn_mul_1. + + * gmp.texi (Installing MP): Corrections to target CPUs. + + * version.c: Use VERSION from config.h, add copyright comment, + restore "const" somehow lost. + + * configure.in (a29k*-*-*): Fix directory name. + +2000-03-22 Torbjorn Granlund + + * demos/pexpr.c (op_t): Add ROOT. + (fns): Add ROOT. + (mpz_eval_expr): Add ROOT. + + * mpz/root.c: Handle roots of negative numbers. + Fix other border cases. + Fix rare memory leakage. + + * errno.c: New file. + +2000-03-21 Torbjorn Granlund + + * gmp.h (error number enum): New anonymous enum. + (gmp_errno): New. + + * gmp.h (__GNU_MP_VERSION, __GNU_MP_VERSION_MINOR): Bump for GMP 3.0. + +2000-03-20 Torbjorn Granlund + + * mpn/alpha/unicos.m4 (FLOAT64): New define. + * mpn/alpha/default.m4 (FLOAT64): New define. + * mpn/alpha/invert_limb.asm (C36): Use FLOAT64. + +2000-03-21 Kevin Ryde + + * mpn/x86/k6/diveby3.asm: Tiny speedup. + + * acinclude.m4 (GMP_CHECK_ASM_SHLDL_CL): New macro. + * configure.in: Use it, set WANT_SHLDL_CL in config.m4. + * mpn/x86/x86-defs.m4 (shldl,shrdl,shldw,shrdw): New macros, using + WANT_SHLDL_CL. + * mpn/x86/k6/mmx/lshift.asm: Use shldl macro. + * mpn/x86/k7/mmx/lshift.asm: Ditto. + * mpn/x86/pentium/mmx/lshift.asm: Ditto. + * mpn/x86/k6/mmx/rshift.asm: Use shrdl macro. + * mpn/x86/k7/mmx/rshift.asm: Ditto. + * mpn/x86/pentium/mmx/rshift.asm: Ditto. + * mpn/x86/README.family: Add a note about this. + +2000-03-20 Linus Nordberg + + * mpn/generic/rawrandom.c (mpn_rawrandom): Handle seed value of 0 + correctly. + + * configure.in: Fix detection of alpha flavour. + Set compiler options for `sparcv8'. + * configure: Regenerate. + + * rand.c (__gmp_rand_scheme): Clean up some. Use slightly better + multipliers. + + * configure.in (AC_OUTPUT): Add tests/Makefile and + tests/rand/Makefile. + + * acinclude.m4 (AC_CANONICAL_BUILD): Define to + `_AC_CANONICAL_BUILD' to deal with incompatibilities between + Autoconf and Libtool. + (AC_CHECK_TOOL_PREFIX): Likewise. + + * Makefile.am (EXTRA_DIST): Add directory `tests'. + + * mkinstalldirs: Update (Automake 2000-03-17). + * ltconfig: Update (Libtool 2000-03-17). + * ltmain.sh: Ditto. + + * configure: Regenerate with new autoconf/-make/libtool suite. + * aclocal.m4: Ditto. + * config.in: Ditto. + * all Makefile.in's: Ditto. + +2000-03-20 Torbjorn Granlund + + * demos/pexpr.c (main): Don't allow `-N' for base, require `-bN'. + + * mpn/alpha/unicos.m4 (cvttqc): New define. + * mpn/alpha/invert_limb.asm: Use new define for cvttqc. + +2000-03-19 Kevin Ryde + + * mpn/x86/k6/sqr_basecase.asm: Tiny amendments for 3x3 case. + + * gmp.texi: Use @include version.texi. + Use @email and @uref. + (Installing MP): Rewrite for new configure. + (Low-level Functions): Add mpn_divexact_by3. + + * configure.in (--enable-alloca): New option. + * acconfig.h (USE_STACK_ALLOC): For --disable-alloca. + +2000-03-18 Kent Boortz + + * macos: New directory with macos port files. + +2000-03-17 Torbjorn Granlund + + * gmp-impl.h (union ieee_double_extract): Check _CRAYMPP. + + * mpn/asm-defs.m4 (invert_normalized_limb): Define. + + * mpn/alpha: Translate `.s' files to `.asm'. + + * configure: Regenerate. + + * mpn/alpha/invert_limb.asm: Replace dash in file name with underscore. + * configure.in: Corresponding change. + + * configure.in: Assign special "path" for alphaev6. + + * mpn/alpha/unicos.m4: New file. + * configure.in (alpha*-cray-unicos*): [This part of the change + commited 2000-03-13 by linus] + * mpn/alpha/default.m4: New file. + * configure.in (alpha*-*-*): Use it. + +2000-03-17 Kevin Ryde + + * mpn/x86/pentium/rshift.S: Use plain rcrl (not rcrl $1) for + shift-by-1 case, significant speedup. + * mpn/x86/pentium/README: Add shift-by-1 speed. + +2000-03-16 Torbjorn Granlund + + * config.guess: Handle Cray T3D/E. + +2000-03-15 Kevin Ryde + + * mpn/generic/diveby3.c: New file. + * mpn/x86/diveby3.asm: New file. + * mpn/x86/k6/diveby3.asm: New file. + * gmp.h (mpn_divexact_by3): Prototype and define. + * mpn/asm-defs.m4: define_mpn(divexact_by3). + * configure.in (gmp_mpn_functions): Add diveby3. + + * mpn/x86/pentium/sqr_basecase.asm: A few better addressing modes. + + * configure.in: Add AC_C_STRINGIZE and AC_CHECK_TYPES((void)). + * gmp-impl.h (ASSERT): Use them. + + * mpn/x86/k7/mmx/lshift.asm: New file. + * mpn/x86/k7/mmx/rshift.asm: Rewrite simple loop and return value + handling, add some pictures. + +2000-03-14 Torbjorn Granlund + + * mpn/sparc32/v8/mul_1.asm: Make PIC actually work. + * mpn/sparc32/v8/addmul_1.asm: Likewise. + + * mpn/sparc32/v8/mul_1.asm: Use m4 ifdef, not cpp #if. + * mpn/sparc32/v8/addmul_1.asm: Likewise. + + * mpn/asm-defs.m4 (C): New define for comments. + * mpn/sparc32: Start comments with `C'. + + * config.guess: Remove `SunOS 6' handling. + Recognize sun4m and sun4d architectures under old SunOS. + +2000-03-14 Linus Nordberg + + * configure.in (gmp_srclinks): Set to list of links created by + configure. + * configure: Regenerate. + + * Makefile.am (libgmp_la_LDFLAGS): Set version info. + (DISTCLEANFILES): Include @gmp_srclinks@. + * Makefile.in: Regenerate. + +2000-03-13 Linus Nordberg + + * configure.in: Remove some changequote's by quoting the strings + containing `[]'. + Add support for `alpha*-cray-unicos*'. + AC_DEFINE `_LONG_LONG_LIMB' instead of passing it in CFLAGS. + Conditionalize the assembler syntax checks. + * configure: Regenerate. + * config.in: Regenerate. + + * acinclude.m4 (GMP_PROG_CCAS): Remove macro. + * aclocal.m4: Regenerate. + +2000-03-13 Kevin Ryde + + * mpn/x86/p6/README: New file. + + * mpn/x86/k6/mul_1.asm: Rewrite, smaller and slightly faster. + + * mpn/lisp/gmpasm-mode.el: Rewrite assembler comment detection and + handling. + + * configure.in: Separate mmx directories for each x86 flavour. + * configure: Regenerate. + +2000-03-12 Kevin Ryde + + * mpn/x86/x86-defs.m4 (ALIGN): Supplement definition from + config.m4 so as to pad with nops not zeros on old gas. + + * mpn/x86/k7/mmx/copyd.asm: Use plain emms (femms is just an alias + for emms now). + * mpn/x86/k7/mmx/copyi.asm: Ditto. + * mpn/x86/k7/mmx/rshift.asm: Ditto. + * mpn/x86/x86-defs.m4: Amend comments. + + * mpn/x86/mod_1.asm: Add comments on speeds. + + * mpn/x86/pentium/mmx/lshift.asm: New file. + * mpn/x86/pentium/mmx/rshift.asm: New file. + * mpn/x86/pentium/README: Add speeds of various routines. + +2000-03-10 Linus Nordberg + + * configure.in: Reorganize. + Use AC_CHECK_TOOL to find `ar'. + Add post-includes `regmap.m4' and `aix.m4' for AIX targets. + asm-syntax.h is not needed for PPC or sparc anymore. + (powerpc64-*-aix*): Compiler is always 64-bit. Use `-q64 + -qtune=pwr3' to xlc and `-maix64 -mpowerpc64' to gcc. Pass `-X + 64' to `ar' and `nm'. + (pentiummmx): Use GMP_CHECK_ASM_MMX and avoid MMX assembly path if + assembler is not MMX capable. + (pentium[23]): Likewise. + (athlon): Likewise. + (k6*): Likewise. + * configure: Regenerate. + + * acinclude.m4 (GMP_PROG_CC_WORKS): New macro. + (GMP_PROG_CC_FIND): Use GMP_PROG_CC_WORKS instead of + AC_TRY_COMPILER. Make sure that the *first* working 32-bit + compiler is used if no 64-bit compiler is found. + (GMP_CHECK_ASM_MMX): New macro. + * aclocal.m4: Regenerate. + + * Makefile.in: Regenerate. (CC_TEST removed.) + * mpf/Makefile.in: Likewise. + * mpn/Makefile.in: Likewise. + * mpq/Makefile.in: Likewise. + * mpz/Makefile.in: Likewise. + * mpf/tests/Makefile.in: Likewise. + * mpq/tests/Makefile.in: Likewise. + * mpz/tests/Makefile.in: Likewise. + + * acconfig.h (_LONG_LONG_LIMB): Add. + + * gmp-impl.h: Include config.h only if HAVE_CONFIG_H is defined. + +2000-03-09 Kevin Ryde + + * mpn/x86/pentium/mul_basecase.S: Small speedup by avoiding an AGI. + + * mpn/x86/k7/mmx/copyd.asm: Tiny speedup by avoiding popl. + * mpn/x86/k7/mmx/copyi.asm: Ditto. + * mpn/x86/k7/mul_basecase.asm: Ditto. + +2000-03-07 Torbjorn Granlund + + * config.guess: Better recognize POWER/PowerPC processor type. + +2000-03-07 Kevin Ryde + + * mpn/generic/addsub_n.c: Use HAVE_NATIVE_* now in config.h. + + * mpn/asm-defs.m4: Add comments about SysV m4. + (m4_log2): Don't use <<. + (m4_lshift,m4_rshift): New macros. + +2000-03-06 Torbjorn Granlund + + * mpn/powerpc32/regmap.m4: Map cr0 => `0', etc. + +2000-03-06 Kevin Ryde + + * mpn/tests/ref.c (refmpn_divexact_by3): New function. + * mpn/tests/ref.h: Prototype. + + * acconfig.h (WANT_ASSERT): New define. + * configure.in (--enable-assert): Turn on WANT_ASSERT. + * assert.c: New file. + * Makefile.am: Add to build. + * gmp-impl.h (ASSERT): New macro. + (ASSERT_NOCARRY) Renamed from assert_nocarry. + (MPZ_CHECK_FORMAT): Use ASSERT_ALWAYS. + * mpn/tests/ref.c: Use ASSERT. + * mpf/get_str.c: Use ASSERT_ALWAYS. + * mpf/set_str.c: Remove old assert macro. + + * mpn/x86/x86-defs.m4 (cmovnz_ebx_ecx): New macro. + * mpn/x86/p6/aorsmul_1.asm: Use cmov. + + * mpn/x86/lshift.S: Use %dl with testb, not %edx. No object code + change, testb was still getting generated. + * mpn/x86/rshift.S: Ditto. + +2000-03-03 Torbjorn Granlund + + * longlong.h: Add IA-64 support. + + * mpn/powerpc32: Misc cleanups. + * mpn/powerpc32/aix.m4: New file (mainly by Linus). + * mpn/powerpc64/aix.m4: New file (mainly by Linus). + * mpn/powerpc64: Translate `.S' files to `.asm'. + + * configure.in: Fix tyops. + * configure: Regenerate. + +2000-03-02 Torbjorn Granlund + + * mpn/powerpc32/regmap.m4: New file. + * mpn/powerpc32: Translate `.S' files to `.asm'. + * configure.in: Use mpn/powerpc32/regmap.m4 for powerpc targets + except some weird ones. + +2000-03-03 Kevin Ryde + + * mpn/lisp/gmpasm-mode.el: Suppress postscript comment prefixes in + filladapt. + + * mpn/x86/pentium/sqr_basecase.asm: New file. + * mpn/x86/pentium/gmp-mparam.h (KARATSUBA_SQR_THRESHOLD): Update. + + * configure.in: Add --enable-assert, enable k6 logops functions. + + * mpn/x86/k6/mmx/copyi.asm: Use m4 for divide, not as. + * mpn/x86/k6/mmx/copyd.asm: Ditto. + * mpn/x86/README.family: Add a note on this. + +2000-03-02 Kevin Ryde + + * mpn/x86/k6/aors_n.asm: Don't use stosl. + * mpn/x86/copyi.asm: Use cld to clear direction flag. + * mpn/x86/divrem_1.asm: Ditto. + * mpn/x86/README.family: Add a note on this. + + * mpn/x86/k6/mmx/copyi.asm: Rewrite. + * mpn/x86/k6/mmx/copyd.asm: New file. + * mpn/x86/k6/README: Update, and small amendments. + + * mpn/x86/x86-defs.m4 (Zdisp): New macro. + * mpn/asm-defs.m4 (m4_stringequal_p): New macro. + + * mpn/x86/p6/aorsmul_1.asm: Use Zdisp to force zero displacements. + * mpn/x86/k6/aorsmul_1.asm: Ditto. + * mpn/x86/k6/mul_1.asm: Ditto. + * mpn/x86/k6/mul_basecase.asm: Ditto. + * mpn/x86/k7/aors_n.asm: Ditto. + * mpn/x86/k7/aorsmul_1.asm: Ditto. + * mpn/x86/k7/mul_1.asm: Ditto. + * mpn/x86/k7/mul_basecase.asm: Ditto. + * mpn/x86/README.family: Add a note on this. + +2000-02-27 Kevin Ryde + + * mpn/generic/divrem.c (mpn_divrem_classic): Patch to avoid gcc + 2.7.2.3 i386 register handling bug. + + * mpn/x86/k6/aors_n.asm: Rewrite. + * mpn/x86/k6/mmx/lshift.asm: Rewrite. + * mpn/x86/k6/mmx/rshift.asm: Rewrite. + * mpn/x86/k6/README: Update. + + * mpn/x86/k7/mmx/copyd.asm: Support size==0. + * mpn/x86/k7/mmx/copyi.asm: Ditto. + * mpn/x86/k6/mmx/copyi.asm: Ditto. + * gmp-impl.h: Comment size==0 allowed in MPN_COPY_INCR and + MPN_COPY_DECR. + * configure.in: Enable x86 copyi, copyd; add k6 com_n. + +2000-02-25 Torbjorn Granlund + + * demos/pexpr.c (power): Move factorial handing code from `factor' + to `power'. + + * demos/factorize.c (factor_using_pollard_rho): Move resetting of `c' + to before checking for a non-zero gcd. + +2000-02-25 Kevin Ryde + + * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro by Linus. + * mpn/x86/k6/aors_n.asm: Use MULFUNC_PROLOGUE. + * mpn/x86/k6/aorsmul_1.asm: Ditto. + * mpn/x86/k7/aors_n.asm: Ditto. + * mpn/x86/k7/aorsmul_1.asm: Ditto. + * mpn/x86/p6/aorsmul_1.asm: Ditto. + + * mpn/tests/ref.c (refmpn_copyi,refmpn_copyd): Allow size==0. + + * gmp-impl.h: Move mpn_and_n, mpn_andn_n, mpn_com_n, mpn_ior_n, + mpn_iorn_n, mpn_nand_n, mpn_nior_n, mpn_xor_n and mpn_xorn_n here + from gmp.h. Use HAVE_NATIVE_mpn_* to make these functions or + inlines. + + * gmp-impl.h: Move mpn_copyd, mpn_copyi here from gmp.h. + * gmp-impl.h (MPN_COPY_INCR): Use mpn_copyi if available. + * gmp-impl.h (MPN_COPY_DECR): Use mpn_copyd if available. + + * mpn/x86/k6/mmx/com_n.asm: Moved into mmx subdirectory. + * mpn/x86/k6/mmx/copyi.asm: Ditto. + * mpn/x86/k6/mmx/lshift.asm: Ditto. + * mpn/x86/k6/mmx/rshift.asm: Ditto. + * mpn/x86/k7/mmx/rshift.asm: Ditto. + * mpn/x86/k6/mmx/logops_n.asm: New file. + * configure.in (k6*-*-*): Add logops_n.asm. + * mpn/x86/k6/README: Update. + + * mpn/x86/k7/mmx/copyi.asm: New file. + * mpn/x86/k7/mmx/copyd.asm: New file. + * mpn/x86/k7/README: Update. + +2000-02-24 Kevin Ryde + + * mpn/x86/x86-defs.m4 (femms): Generate emms if 3dnow not available. + * mpn/x86/x86-defs.m4 (FRAME_popl): New macro. + + * Makefile.am: Add info_TEXINFOS = gmp.texi + + * mpn/x86/divrem_1.asm: Moved from mpn/x86/k6, allow size==0, + conditionalize loop versus decl/jnz. + * mpn/x86/mod_1.asm: Ditto. + * mpn/x86/divmod_1.asm: Removed. + * gmp.texi (mpn_divrem_1,mpn_mod_1): Add that size==0 is allowed. + * mpn/tests/ref.c (refmpn_divrem_1c,etc): Allow size==0. + + * mpn/x86/k6/aors_n.asm: Avoid gas 1.92.3 leal displacement + expression problem. + * mpn/x86/k6/aorsmul_1.asm: Ditto. + * mpn/x86/k6/mul_1.asm: Ditto. + * mpn/x86/k6/mul_basecase.asm: Ditto + * mpn/x86/k7/aors_n.asm: Ditto. + * mpn/x86/k7/aorsmul_1.asm: Ditto. + * mpn/x86/k7/mul_1.asm: Ditto. + * mpn/x86/k7/mul_basecase.asm: Ditto. + * mpn/x86/k7/rshift.asm: Ditto. + * mpn/x86/p6/aorsmul_1.asm: Ditto. + * mpn/x86/README.family: Describe problem. + +2000-02-24 Linus Nordberg + + * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Add dummy symbol to + testcase to avoid nm failure. Try nm before piping to grep. + + * acconfig.h: Undef HAVE_NATIVE_func for every mpn function found + in gmp.h. + + * configure.in: Invoke AC_CONFIG_HEADERS. + Don't invoke AM_CONFIG_HEADER; it makes autoconf confused. + Dig out entry points declared in assembly code and AC_DEFINE proper + HAVE_NATIVE_func. + + * mpn/asm-defs.m4 (MULFUNC_PROLOGUE): New macro. + + * mpn/x86/p6/aorsmul_1.asm: Use MULFUNC_PROLOGUE. + * mpn/x86/k6/aors_n.asm: Likewise. + + * Makefile.am (EXTRA_DIST): Add config.in; needed when we don't + use AM_CONFIG_HEADER in configure.in. + + * mpn/Makefile.am (INCLUDES): Add `-I..' for config.h and + gmp-mparam.h. + * mpf/Makefile.am: Likewise. + * mpq/Makefile.am: Likewise. + * mpz/Makefile.am: Likewise. + + * mpf/tests/Makefile.am (INCLUDES): Add `-I../..' for config.h and + gmp-mparam.h. + * mpq/tests/Makefile.am: Likewise. + * mpz/tests/Makefile.am: Likewise. + + * configure: Regenerate. + * aclocal.m4: Regenerate. + * config.in: Regenerate. + * Makefile.in: Regenerate. + * mpf/Makefile.in: Regenerate. + * mpn/Makefile.in: Regenerate. + * mpq/Makefile.in: Regenerate. + * mpz/Makefile.in: Regenerate. + * mpf/tests/Makefile.in: Regenerate. + * mpq/tests/Makefile.in: Regenerate. + * mpz/tests/Makefile.in: Regenerate. + +2000-02-23 Kevin Ryde + + * mpn/x86/addmul_1.S: Amend comments, this code no longer used by + PentiumPro. + * mpn/x86/submul_1.S: Ditto. + + * mpn/x86/k6/com_n.asm: Rewrite, smaller but same speed. + + * mpn/x86/addmul_1.S: Add PROLOGUE and EPILOGUE to get .type and + .size for ELF. Rename #define size to n to avoid .size. + * mpn/x86/lshift.S: Ditto. + * mpn/x86/mul_1.S: Ditto. + * mpn/x86/mul_basecase.S: Ditto. + * mpn/x86/rshift.S: Ditto. + * mpn/x86/submul_1.S: Ditto. + * mpn/x86/udiv.S: Ditto. + * mpn/x86/umul.S: Ditto. + * mpn/x86/pentium/add_n.S: Ditto. + * mpn/x86/pentium/addmul_1.S: Ditto. + * mpn/x86/pentium/lshift.S: Ditto. + * mpn/x86/pentium/mul_1.S: Ditto. + * mpn/x86/pentium/mul_basecase.S: Ditto. + * mpn/x86/pentium/rshift.S: Ditto. + * mpn/x86/pentium/sub_n.S: Ditto. + * mpn/x86/pentium/submul_1.S: Ditto. + +2000-02-22 Linus Nordberg + + * acinclude.m4 (GMP_INIT): Use temporary file cnfm4p.tmp for + post-defines. + (GMP_FINISH): Ditto. + (GMP_DEFINE): Add third optional argument specifying location in + outfile. + (GMP_DEFINE_RAW): New macro. + * aclocal.m4: Regenerate. + + * configure.in: Add `HAVE_TARGET_CPU_$target_cpu' using + GMP_DEFINE_RAW. + * configure: Regenerate. + + * mpz/tests/Makefile.am: New test t-root. + * mpz/tests/Makefile.in: Regenerate. + +2000-02-22 Torbjorn Granlund + + * mpz/root.c: Complete rewrite; still primitive, but at least correct. + * mpz/tests/t-root.c: New test. + +2000-02-22 Kevin Ryde + + * mpn/x86/k7/mul_basecase.asm: New file. + * mpn/x86/k7/README: Add mpn_mul_basecase speed. + * mpn/x86/k7/gmp-mparam.h: New file. + + * mpn/x86/x86-defs.m4 (loop_or_decljnz,cmov_bytes): New macros. + * mpn/asm-defs.m4 (m4_ifdef_anyof_p): New macro. + + * mpn/x86/k6/aorsmul_1.asm: New file. + * mpn/x86/k6/addmul_1.S: Removed (was a copy of pentium version). + * mpn/x86/k6/submul_1.S: Removed (was a copy of pentium version). + + * mpn/x86/p6/aorsmul_1.asm: Use OPERATION_addmul_1 and + OPERATION_submul_1. + * mpn/x86/k6/aors_n.asm: Use OPERATION_add_n and OPERATION_sub_n. + * configure.in: Declare multi-function files for k6 and p6. + + * configure.in: Add HAVE_TARGET_CPU_$target_cpu for config.m4. + * mpn/asm-defs.m4 (define_not_for_expansion): New macro. + + * mpn/generic/divrem_1n.c (__gmpn_divrem_1n): New file, split from + mpn/generic/divrem_1.c. + * mpn/generic/divrem_1.c: Ditto. + * configure.in (gmp_mpn_functions): Ditto. + +2000-02-21 Torbjorn Granlund + + * gmp.h: Undo 1996-10-06 NeXT change, it was clearly improperly + written. + +2000-02-21 Linus Nordberg + + * configure.in: Link /mpn/asm-defs.m4 to mpn/asm.m4. + * configure: Regenerate. + +2000-02-21 Linus Nordberg + + * mpn/x86/k7/aorsmul_1.asm: Change OPERATION_ADDMUL --> + OPERATION_addmul_1. Change OPERATION_SUBMUL --> + OPERATION_submul_1. + + * mpn/x86/k7/aors_n.asm: Change OPERATION_ADD --> OPERATION_add_n. + Change OPERATION_SUB --> OPERATION_sub_n. + + * mpn/Makefile.am: Pass -DOPERATION_$* to preprocessors. + * mpn/Makefile.in: Regenerate. + + * configure.in: Symlink mpn/asm-defs.m4 to build-dir/mpn. Link + multi-function files to mpn/.asm and remove function + name from `gmp_mpn_functions'. + * configure: Regenerate. + + * acinclude.m4 (GMP_FINISH): Tell user what we're doing. + * aclocal.m4: Regenerate. + +2000-02-21 Kevin Ryde + + * gmp-impl.h: Rename __gmpn_mul_basecase to mpn_mul_basecase and + __gmpn_sqr_basecase to mpn_sqr_basecase, remove __gmpn prototypes. + * mpn/x86/mul_basecase.S: Ditto. + * mpn/x86/pentium/mul_basecase.S: Ditto. + + * configure.in (gmp_m4postinc): Use x86-defs.m4 on athlon-*-* too. + +2000-02-20 Kevin Ryde + + * acinclude.m4 (GSYM_PREFIX): Drop $1, change by Linus. + * mpn/asm-defs.m4 (PROLOGUE,EPILOGUE): Use GSYM_PREFIX as a + string, change by Linus. + * mpn/x86/x86-defs.m4: Use GSYM_PREFIX as a string. + + * mpn/x86/k6/gmp-mparam.h: New file. + * mpn/asm-defs.m4 (m4_warning): New macro. + + * mpn/x86/README: Amendments per new code and directories. + * mpn/x86/README.family: New file. + * mpn/x86/k6/README: New file. + * mpn/x86/k7/README: New file. + + * mpn/generic/mul_n.c: Rename __gmpn_mul_basecase to + mpn_mul_basecase and __gmpn_sqr_basecase to mpn_sqr_basecase. + * mpn/generic/mul_basecase.c: Ditto. + * mpn/generic/sqr_basecase.c: Ditto. + * mpn/generic/mul.c: Ditto. + +2000-02-19 Linus Nordberg + + * configure.in: Don't try to symlink more than one multi-func + file. + * configure: Regenerate. + +2000-02-18 Linus Nordberg + + * acinclude.m4 (GMP_CHECK_ASM_UNDERSCORE): GMP_DEFINE + `GSYM_PREFIX'. Run ACTIONs even when value is found in cache. + (GMP_CHECK_ASM_ALIGN_LOG): GMP_DEFINE `ALIGN'. Run ACTIONs even + when value is found in cache. + * aclocal.m4: Regenerate. + + * configure.in: Don't define GSYM_PREFIX or ALIGN. + Add mechanism for multi-function files. + * configure: Regenerate. + +2000-02-18 Kevin Ryde + + * configure.in (gmp_m4postinc): Enable x86-defs.m4. + * mpn/x86/k7/mul_1.asm: Fix include. + * mpn/x86/k6/mul_basecase.S: Removed (copy of the pentium version). + * mpn/x86/k6/mul_basecase.asm: New file. + * mpn/x86/k6/sqr_basecase.asm: New file. + * mpn/x86/k6/com_n.asm: New file. + * mpn/x86/k6/copyi.asm: New file. + * gmp.texi (Low-level Functions): Clarify mpn overlaps permitted. + * gmp-impl.h (MPN_OVERLAP_P): New macro. + * gmp-impl.h (assert_nocarry): New macro. + * mpn/tests/ref.c: New file, based in part on other mpn/tests/*.c. + * mpn/tests/ref.h: New file. + +2000-02-17 Linus Nordberg + + * Makefile.am (dist-hook): Don't include any emacs backup files + (*.~*) in dist. + * Makefile.in: Regenerate. + +2000-02-17 Torbjorn Granlund + + * mpn/sparc32/v9/mul_1.asm: Use `rd' to get current PC; get rid of + getpc function. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + +2000-02-17 Kevin Ryde + + * gmp.h: Add prototypes and defines for mpn_and_n, mpn_andn_n, + mpn_com_n, mpn_copyd, mpn_copyi, mpn_ior_n, mpn_iorn_n, + mpn_mul_basecase, mpn_nand_n, mpn_nior_n, mpn_sqr_basecase, + mpn_xor_n, mpn_xorn_n. + + * mpn/asm-defs.m4: Many additions making up initial version. + * mpn/asm-defs.m4 (L): Use defn(`LSYM_PREFIX'). + * mpn/x86/x86-defs.m4: New file. + * mpn/x86/k6/aors_n.asm: New file. + * mpn/x86/k6/divmod_1.asm: New file. + * mpn/x86/k6/divrem_1.asm: New file. + * mpn/x86/k6/lshift.S: Removed (was a copy of the pentium version). + * mpn/x86/k6/lshift.asm: New file. + * mpn/x86/k6/mod_1.asm: New file. + * mpn/x86/k6/mul_1.S: Removed (was a copy of the pentium version). + * mpn/x86/k6/mul_1.asm: New file. + * mpn/x86/k6/rshift.S: Removed (was a copy of the pentium version). + * mpn/x86/k6/rshift.asm: New file. + * mpn/x86/k7/aors_n.asm: New file. + * mpn/x86/k7/aorsmul_1.asm: New file. + * mpn/x86/k7/mul_1.asm: New file. + * mpn/x86/k7/rshift.asm: New file. + * mpn/x86/p6/aorsmul_1.asm: New file. + * mpn/x86/copyi.asm: New file. + * mpn/x86/copyd.asm: New file. + * mpn/lisp/gmpasm-mode.el: New file. + +2000-02-16 Torbjorn Granlund + + * mpn/sparc32/v9/mul_1.asm: Conditionalize for PIC. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. + * mpn/sparc32/udiv_fp.asm: Likewise. + +2000-02-16 Linus Nordberg + + * configure.in: Add mechanism for including target specific + m4-files in config.m4. + * configure: Regenerate. + + * acinclude.m4 (GMP_PROG_CCAS): Begin assembly lines (except + labels) with a tab character. HP-UX demands it. + (GMP_CHECK_ASM_SIZE): Ditto. + (GMP_CHECK_ASM_LSYM_PREFIX): Ditto. + (GMP_CHECK_ASM_LABEL_SUFFIX): Set to empty string for HP-UX. + (GMP_CHECK_ASM_GLOBL): Change `.xport' --> `.export'. + * aclocal.m4: Regenerate. + +2000-02-16 Linus Nordberg + + * acinclude.m4 (GMP_CHECK_ASM_LSYM_PREFIX): Define LSYM_PREFIX as + the prefix only, no argument. + * aclocal.m4: Regenerate. + * configure: Regenerate. + + * mpn/asm-defs.m4 (L): No argument to LSYM_PREFIX. + +2000-02-15 Linus Nordberg + + * acinclude.m4: Prefix all temporary shell variables with + `gmp_tmp_'. + (GMP_PROG_CC_FIND): Use defaults if no arguments are passed. + Quote use of arguments. + (GMP_PROG_CCAS): New macro. + (GMP_INIT): New macro. + (GMP_FINISH): New macro. + (GMP_INCLUDE): New macro. + (GMP_SINCLUDE): New macro. + (GMP_DEFINE): New macro. + (GMP_CHECK_ASM_LABEL_SUFFIX): New macro. + (GMP_CHECK_ASM_TEXT): New macro. + (GMP_CHECK_ASM_DATA): New macro. + (GMP_CHECK_ASM_GLOBL): New macro. + (GMP_CHECK_ASM_TYPE): New macro. + (GMP_CHECK_ASM_SIZE): New macro. + (GMP_CHECK_ASM_LSYM_PREFIX): New macro. + (GMP_CHECK_ASM_W32): New macro. + * aclocal.m4: Regenerate. + + * configure.in: Find m4 and nm for target. + Use new macros to create config.m4. + Prefix all temporary shell variables with `tmp_'. + Pass `-X 64' to nm for 64-bit PPC target with 64-bit compiler. + * configure: Regenerate. + + * Makefile.am (dist-hook): *Really* remove all CVS dirs in + dist. + * Makefile.in: Regenerate. + + * mpn/Makefile.am: Add target for building .lo and .o from + .asm. + Pass -DPIC to preprocessor (CPP/m4) when building .lo. + Build .o a second time for target .lo, without -DPIC to + preprocessor. + (SUFFIX): Add `.asm'. + (EXTRA_DIST): Add asm-defs.m4. + * mpn/Makefile.in: Regenerate. + + * mpf/Makefile.in: Regenerate. + * mpf/tests/Makefile.in: Regenerate. + * mpq/Makefile.in: Regenerate. + * mpq/tests/Makefile.in: Regenerate. + * mpz/Makefile.in: Regenerate. + * mpz/tests/Makefile.in: Regenerate. + +2000-02-15 Torbjorn Granlund + + * mpn/sparc32/udiv_fp.asm: Change `RODATA' to `DATA'. + * mpn/sparc32/v8/supersparc/udiv.asm: Likewise. + * mpn/sparc32/v9/addmul_1.asm: Likewise. + * mpn/sparc32/v9/submul_1.asm: Likewise. + * mpn/sparc32/v9/mul_1.asm: Likewise. + + * mpn/sparc32/add_n.asm: Rename `size' -> `n'. + * mpn/sparc32/sub_n.asm: Likewise. + + * sparc32: Rename `.s' and `.S' files to `.asm'. + * sparc64: Rename `.s' and `.S' files to `.asm'. + +2000-02-11 Torbjorn Granlund + + * config.sub: Adopt to new config.guess sparc naming conventions. + + * config.guess (sun4u:SunOS:5.*:*): Change `sparc9' to `sparcv9'. + * config.guess (sun4m:SunOS:5.*:*): Change to sun4[md]:SunOS:5.*:* and + change `sparc8' to `sparcv8'. + + * mpn/x86/add_n.S: Use PROLOGUE/EPILOGUE. + * mpn/x86/sub_n.S: Likewise. + + * mpn/x86/syntax.h (PROLOGUE): New name for PROLOG. + * mpn/x86/syntax.h (EPILOGUE): New name for EPILOG. + +2000-02-11 Linus Nordberg + + * configure.in: Better path for 64-bit sparc without 64-bit cc. + Change sparc8 --> sparcv8. + Change sparc9 --> sparcv9. + * configure: Regenerate. + +2000-02-10 Linus Nordberg + + * configure.in: Use Autoconf. + * Makefile.am: New file. + + * AUTHORS: New file. + * COPYING: New file. + * acinclude.m4: New file. + * acconfig.h: New file. + + * configure: Generate. + * Makefile.in: Generate. + * aclocal.m4: Generate. + * config.in: Generate. + + * install.sh: Remove. + * install-sh: New file from Automake. + * missing: New file from Automake. + * ltconfig: New file from Libtool. + * ltmain.sh: New file from Libtool. + + * mpf/Makefile.am: New file. + * mpf/Makefile.in: Generate. + * mpf/configure.in: Remove. + * mpf/tests/Makefile.am: New file. + * mpf/tests/Makefile.in: Generate. + * mpf/tests/configure.in: Remove. + + * mpn/Makefile.am: New file. + * mpn/Makefile.in: Generate. + * mpn/configure.in: Remove. + + * mpq/Makefile.am: New file. + * mpq/Makefile.in: Generate. + * mpq/configure.in: Remove. + * mpq/tests/Makefile.am: New file. + * mpq/tests/Makefile.in: Generate. + * mpq/tests/configure.in: Remove. + + * mpz/Makefile.am: New file. + * mpz/Makefile.in: Generate. + * mpz/configure.in: Remove. + * mpz/tests/Makefile.am: New file. + * mpz/tests/Makefile.in: Generate. + * mpz/tests/configure.in: Remove. + +2000-02-10 Torbjorn Granlund + + * mpn/x86/add_n.S: Don't use label L0 twice. + * mpn/x86/sub_n.S: Likewise. + +2000-01-20 Linus Nordberg + + * demos/pexpr.c: Don't use setup_error_handler() in windoze. + +2000-01-19 Torbjorn Granlund + + * demos/pexpr.c (sigaltstack): #define to sigstack for AIX. + (setup_error_handler): Don't write to ss_size and ss_flags + on AIX. + +2000-01-11 Torbjorn Granlund + + * mpn/configure.in (hppa2.0*-*-*): Move assignment of + target_makefile_frag to where it belongs. + +1999-12-21 Torbjorn Granlund + + * longlong.h (v9 umul_ppmm): New #define. + (v9 udiv_qrnnd): New #define. + +1999-12-14 Torbjorn Granlund + + * mpn/generic/divmod_1.c: Use invert_limb. + * mpn/generic/mod_1.c: Use invert_limb. + + * gmp-impl.h (invert_limb): Put definition here. + * mpn/generic/divrem.c (invert_limb): Delete definition. + * mpn/generic/divrem_2.c (invert_limb): Delete definition. + + * gmp.h (mpn_divrem): Inhibit for non-gcc. + But declare (undo 1999-11-22 change). + + * gmp-impl.h (DItype,UDItype): Do these also if _LONG_LONG_LIMB. + + * longlong.h: Move 64-bit hppa code out of __GNUC__ conditional. + + * stack-alloc.c (HSIZ): New #define. + (__tmp_alloc): Use HSIZ instead of sizeof(tmp_stack). + +1999-12-10 Torbjorn Granlund + + * config.sub: Clean up handling of x86 CPUs: Properly recognize + Amd CPUs as unique entities. Use manufacturer's names of + processors ("pentium", etc); still match ambiguous names like + "i586", "i686", "p6" but be conservative in interpreting them. + + * configure.in: Recognize x86 CPU types known by config.guess. + * mpn/configure.in: Likewise. Add x86/mmx path component as + appropriate. + (athlon-*-*): Fix typo. + + * config.guess: Update x86 recog code to initially match + more than just i386. + Call K6-2 and K6-III for "k62" and "k63" respectively. + + * config.guess: Recognize x86 CPU types. + Update code for FreeBSD, NetBSD, OpenBSD, Linux. + +1999-12-08 Torbjorn Granlund + + * mpf/pow_ui.c: Avoid final squaring in loop. + +1999-12-07 Torbjorn Granlund + + * gmp-impl.h (udiv_qrnnd_preinv2gen): Prefix local variables with `_'. + (udiv_qrnnd_preinv2norm): Likewise. + From Kevin Ryde: + (HAVE_ALLOCA): #define also if defined (alloca). + +1999-12-04 Torbjorn Granlund + + * mpn/tests/add_n.c: Set OPS from CLOCK. + * mpn/tests/sub_n.c: Likewise. + * mpn/tests/mul_1.c: Likewise. + * mpn/tests/addmul_1.c: Likewise. + * mpn/tests/submul_1.c: Likewise. + + * mpn/tests/lshift.c: Update from add_n.c. + * mpn/tests/rshift.c: Likewise. + +1999-12-03 Torbjorn Granlund + + * mpn/powerpc64/copy.S: New file. + +1999-12-02 Torbjorn Granlund + + * mpn/sparc64/copy.s: New file. + + * mpn/tests/copy.c: New file. + + * mpn/configure.in: Recognize more Amd CPUs; Set special paths for + k7 CPU. + + * configure.in: Recognize Amd x86 CPUs. + + * mpz/fdiv_r_2exp.c: In rounding code, read in->_mp_size before + writing to res->_mp_size. + + * mpn/powerpc64/*.S: Clean up assembly syntax, add function headers. + * mpn/powerpc64/gmp-mparam.h: (KARATSUBA_MUL_THRESHOLD): #define. + (KARATSUBA_SQR_THRESHOLD): #define. + + * mpn/tests/add_n.c (main): Only print test number if TIMES==1 + and not printing. + (main): Don't run reference code if NOCHECK. + * mpn/tests/sub_n.c: Likewise. + * mpn/tests/mul_1.c: Likewise. + * mpn/tests/addmul_1.c: Likewise. + * mpn/tests/submul_1.c: Likewise. + + * mpn/tests/lshift.c: (main): Only print test number if TIMES==1 + and not printing. + * mpn/tests/rshift.c: Likewise. + +1999-11-22 Torbjorn Granlund + + * gmp.h (mpz_init_set_str): Declare using __gmp_const. + (mpz_set_str): Likewise. + (mpf_init_set_str): Likewise. + (mpf_set_str): Likewise. + (mpn_set_str): Likewise. + (__gmp_0): Likewise. + (mpn_divrem): Remove separate declaration; it's defined later in + this file. + + * gmp.h: Replace "defined (__STD__)' by (__STDC__-0) in + expressions involving more than one term, to handle Sun's compiler + that most helpfully sets __STDC__ to 0. + * gmp-impl.h: Likewise. + * longlong.h: Likewise. + +1999-11-21 Torbjorn Granlund + + * mpn/sparc64/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. + (KARATSUBA_SQR_THRESHOLD): #define. + + * mpn/sparc64/lshift.s: Compensate stack references for odd stack ptr. + * mpn/sparc64/rshift.s: Likewise. + + * mpn/sparc64/addmul_1.s: Propagate carry properly. + * mpn/sparc64/submul_1.s: Likewise. + + * mpn/sparc64/sub_n.s: Rewrite. + + * mpn/sparc64/sub_n.s: Get operand order for main subcc right + (before scrapping this code for new code). + +1999-11-20 Torbjorn Granlund + + * mpn/sparc64/add_n.s: Rewrite. + +1999-11-17 Torbjorn Granlund + + * mpn/x86/syntax.h (PROLOG): New #define. + (EPILOG): New #define. + + * gmp.h (mpn_addsub_n): Declare. + * gmp.h (mpn_add_nc): Declare. + * gmp.h (mpn_sub_nc): Declare. + * mpn/powerpc64/addsub_n.S: New file. + +1999-11-17 Torbjorn Granlund + + * mpn/alpha/gmp-mparam.h + (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef. + (KARATSUBA_SQR_THRESHOLD): Likewise. + +1999-11-14 Torbjorn Granlund + + * mpn/x86/mul_1.S: Unroll and optimize for P6 and K7. + +1999-11-09 Torbjorn Granlund + + * mpn/x86/p6/gmp-mparam.h + (KARATSUBA_MUL_THRESHOLD): Only #define #ifndef. + (KARATSUBA_SQR_THRESHOLD): Likewise. + +1999-11-05 Torbjorn Granlund + + * mpn/generic/addsub_n.c: New file. + +1999-11-02 Torbjorn Granlund + + * config.guess: Handle alpha:FreeBSD with alpha:NetBSD. + + * configure.in (vax*-*-*): New case. + * config/mt-vax: New file. + * mpn/vax/add_n.s: Rewrite. + * mpn/vax/sub_n.s: Rewrite. + +1999-10-31 Torbjorn Granlund + + * mpn/vax/rshift.s: New file. + * mpn/vax/lshift.s: New file. + +1999-10-29 Torbjorn Granlund + + * config.sub: Handle k5 and k6. + * mpn/configure.in: Recognize k6. + + * mpf/tests/t-get_d.c (LOW_BOUND, HIGH_BOUND): New #defines. + (main): Tighten error bounds to 14 digits. + + * longlong.h (default umul_ppmm, when smul_ppmm exists): + Rename __m0 => __xm0, __m1 => __xm1. + (default smul_ppmm): Likewise. + +1999-10-11 Torbjorn Granlund + + * config.guess: Reverse the test for POWER vs PowerPC. + * config.guess (sun4m:SunOS:5.*:*): New case. + * config.guess (sun4u:SunOS:5.*:*): New case. + +1999-09-29 Torbjorn Granlund + + * mpn/generic/divrem_2.c: Clean up comments. + +1999-09-23 Torbjorn Granlund + + * mpz/tests/Makefile.in: Use move-if-change when generating binaries. + * mpf/tests/Makefile.in: Likewise. + * mpq/tests/Makefile.in: Likewise. + * mpz/tests/move-if-change: New file. + * mpf/tests/move-if-change: New file. + * mpq/tests/move-if-change: New file. + + * gmp.h (mpn_incr_u): New macro (from mpn/generic/mul_n.c). + (mpn_decr_u): New macro. + + * mpn/generic/mul_n.c (mpn_incr): Delete. + * mpn/generic/mul_n.c: Update usages mpn_incr => mpn_incr_u. + * mpn/generic/divrem_newt.c: Use mpn_incr_u and mpn_decr_u instead of + mpn_add_1 and mpn_sub_1. + * mpn/generic/sqrtrem.c: Likewise. + * mpz/cdiv_q_ui.c: Likewise. + * mpz/cdiv_qr_ui.c: Likewise. + * mpz/fdiv_q_ui.c: Likewise. + * mpz/fdiv_qr_ui.c: Likewise. + + * mpn/generic/sqrtrem.c: Start single-limb Newton iteration from 18 + bits. + +1999-07-27 Torbjorn Granlund + + * mpn/generic/divrem_1.c (__gmpn_divrem_1n): New function. + + * mpn/generic/divrem_2.c: New file, code from divrem.c, `case 2:'. + * mpn/Makefile.in: Compile divrem_2.c. + * make.bat: Compile divrem_2.c. + * mpn/configure.in (functions): Add divrem_2. + * gmp.h: Declare mpn_divrem_2. + + * mpn/generic/divrem.c: Delete special cases, handle just divisors + of more than 2 limbs. + * gmp.h (mpn_divrem): Call mpn_divrem_1, mpn_divrem_2, as appropriate. + + * mpn/generic/divrem.c: Rework variable usage for better register + allocation. + +1999-07-26 Torbjorn Granlund + + * mpn/alpha/ev5/add_n.s: Rewrite for better ev6 speed. + * mpn/alpha/ev5/sub_n.s: Likewise. + +1999-07-21 Torbjorn Granlund + + * longlong.h (alpha): Define umul_ppmm for cc. + + * gmp-impl.h (DItype, UDItype): Define for non-gcc if _LONGLONG is + defined. + +1999-07-15 Torbjorn Granlund + + * longlong.h (powerpc64 count_leading_zeros): Fix typo. + (powerpc64 add_ssaaaa): Fix typos. + (powerpc64 sub_ddmmss): Fix typos. + +1999-07-14 Torbjorn Granlund + + * mpz/tests/Makefile.in: Pass XCFLAGS when linking. + * mpf/tests/Makefile.in: Likewise. + * mpq/tests/Makefile.in: Likewise. + * mpn/Makefile.in (.S.o): Pass XCFLAGS. + + * longlong.h: Add support for 64-bit PowerPC. + * config.sub: Handle "powerpc64". + * configure.in: Likewise. + * mpn/configure.in: Suppress use of config/t-ppc-aix for now, + it seems compiler passes proper options. + * mpn/powerpc64/*.S: New files. + + * Makefile.in (FLAGS_TO_PASS): Pass "AR=$(AR)". + +1999-07-07 Torbjorn Granlund + + * demos/pexpr.c (factor): Change alloca call to a malloc/free pair. + + * mpn/powerpc32/syntax.h: Add #define's for crN. + + * gmp.h (gmp_rand_algorithm): Remove spurious `,'. + +1999-07-05 Torbjorn Granlund + + * mpn/generic/divrem_1.c: Normalize divisor when needed. + +1999-07-02 Torbjorn Granlund + + * mpn/configure.in (powerpc*-apple-mach): New configuration. + * mpn/powerpc32/*: Add support for apple-macho syntax. + * mpn/powerpc32/syntax.h: New file. + * gmp-impl.h: Don't use `__attribute__' syntax for Apple's perversion + of GCC. + +1999-05-26 Linus Nordberg + + * rand.c (gmp_rand_init): Fix typo. + + * mpn/generic/rawrandom.c (mpn_rawrandom): Count bits, not limbs, + to keep track of how many rounds to do in loop. Clean up + temporary allocation. Update `seedsize' inside loop. Mask off + the correct number of bits from final result. Init `mcopyp' even + when not normalizing `m'. + + * randlc.c (gmp_rand_init_lc): Fix typo (don't call + mpz_init_set_ui()). + + * mpn/generic/rawrandom.c (mpn_rawrandom): Set SIZ(s->seed) when + reallocating. + + * tests/rand/Makefile (test, bigtest): Add 33-bit tests. + + * tests/rand/gen.c (main): Set precision of variable passed to + mpf_urandomb(). Add option `-p'. + +1999-05-25 Linus Nordberg + + * randcm.c: Remove. + * randcmui.c: Remove. + * Makefile.in: Remove randcm and randcmui. + * make.bat: Ditto. + * gmp-impl.h: Remove prototypes for __gmp_rand_init_common() and + __gmp_rand_init_common_ui(). + * randlc.c (gmp_rand_init_lc): Don't call + __gmp_rand_init_common(). + + * randlcui.c (gmp_rand_init_lc_ui): Don't call + __gmp_rand_init_common_ui(). + + * gmp.h (__gmp_rand_state_struct): Remove unused member `maxval'. + * randclr.c (gmp_rand_clear): Remove reference to s->maxval. + * randcm.c (__gmp_rand_init_common): Ditto + + * mpn/generic/rawrandom.c (mpn_rawrandom): Don't calculate nlimbs + twice. + + * gmp.h (__gmp_rand_dist): Remove. + +1999-05-24 Linus Nordberg + + * mpn/generic/rawrandom.c: Clean up comments. + + * gmp.texi: Add documentation for random number generation. + +1999-05-21 Linus Nordberg + + * gmp.h: Typedef `gmp_rand_state' as an array with one element. + Change prototypes accordingly. + * gmp-impl.h: Change prototypes using `gmp_rand_state'. + * rand.c (gmp_rand_init): Take `gmp_rand_state' as argument + instead of a pointer to a `gmp_rand_state'. + * mpf/urandom.c (mpf_urandomb): Ditto. + * mpz/urandom.c (mpz_urandomb): Ditto. + * mpn/generic/rawrandom.c (mpn_rawrandom): Ditto. + * randcmui.c (__gmp_rand_init_common_ui): Ditto. + * randlc.c (gmp_rand_init_lc): Ditto. + * randlcui.c (gmp_rand_init_lc_ui): Ditto. + * randui.c (gmp_rand_init_ui): Ditto. + * randcm.c (__gmp_rand_init_common): Ditto. + * randclr.c (gmp_rand_clear): Ditto. + + * tests/rand/gen.c (main): Pass `s' to rand-funcs instead of address + of `s'. + +1999-05-20 Linus Nordberg + + * Makefile.in: Rename randi.c --> rand.c, randi_lc.c --> randlc.c, + randicom.c --> randcm.c. Add randui.c, randcmui.c, randlcui.c. + * make.bat: Ditto. + + * gmp.h: Add prototypes for gmp_rand_init_ui() and + gmp_rand_init_lc_ui(). + * gmp-impl.h: Add prototypes for __gmp_rand_init_common() and + __gmp_rand_init_common_ui(). + + * randlc.c, randcm.c, randclr.c, rand.c: Change #include of + to "gmp.h". + * randclr.c: Include stdlib.h for free(). + * rand.c: Include gmp-impl.h. + +1999-05-12 Torbjorn Granlund + + * mpn/configure.in: Put generic m68k alternative last. + +1999-05-04 Torbjorn Granlund + + * demos/pexpr.c (setup_error_handler): Use sigemptyset to create + empty set (for portability). + (fns): Fix typo '#if #if'. + (mpz_eval_expr): Implement FERMAT and MERSENNE. + + * demos/pexpr.c: Cast longjmp argument via long to silent warnings on + 64-bit hosts. + +1999-05-03 Torbjorn Granlund + + * demos/pexpr.c: Add #defines for GMP 1.x and 2.0 compatibility. + + * demos/pexpr.c (setup_error_handler): New function; take signal + handler setup code from main(), with major modifications to use modern + signal interface. + (main): Remove signal handler setup code; call setup_error_handler. + +1999-04-29 Linus Nordberg + + * tests/rand/findcl.c (main): Add option '-i' for interval factor. + Separate v and merit lose figures. Add '-v' for version. + +1999-04-28 Linus Nordberg + + * tests/rand/statlib.c: Change debugging stuff. + + * tests/rand/gmpstat.h: Add debug values definitions. + + * tests/rand/findcl.c (main): Print low and high merit on startup. + Print version string on startup. Catch SEGV and HUP. Add option -d + for debug. Fix bug making test for v too hard. + (sh_status): New function. + (sh_status): Flush stdout. Add RCSID. + +1999-04-27 Linus Nordberg + + * tests/rand/Makefile (clean): Add target. + +1999-04-27 Linus Nordberg + + * tests/rand/stat.c: Include gmpstat.h. + Add global int g_debug. + + * tests/rand/spect.c: Include . + + * tests/rand/findcl.c (main): Input is `m', not all factors of `m'. + Print only the very first matching multiplier. Include . + Flush stdout. Print "done." when done. + + * tests/rand/spect.c: Move everything but main() to statlib.c. + + * tests/rand/findcl.c: New file. + + * tests/rand/gmpstat.h: New file. + + * tests/rand/statlib.c (merit, merit_u, f_floor, vz_dot, + spectral_test): New functions. + +1999-04-27 Torbjorn Granlund + + * mpn/configure.in: Fix typo, "sparc-*)" was "sparc)". + +1999-04-21 Torbjorn Granlund + + * config.sub: Recognize ev6. + +1999-04-12 Linus Nordberg + + * urandom.c: Split up into randclr.c, randi.c, randi_lc.c, + randicom.c. + * randclr.c, randi.c, randi_lc.c, randicom.c: New files. + * Makefile.in: Remove urandom. Add randclr, randi, randi_lc, + randicom. + * make.bat: Ditto + +1999-03-31 Torbjorn Granlund + + * configure.in (sparc9-*-solaris2.[789]*, etc): New alternative. + * mpn/configure.in: Use mt-sprc9 also for ultrasparc*-*-solaris2*. + +1999-03-30 Linus Nordberg + + * urandom.c (__gmp_rand_scheme): Change NULL->0. + Include "gmp.h" instead of . + +1999-03-29 Linus Nordberg + + * gmp.h (__gmp_rand_data_lc): Now holds a, c, m instead of scheme + struct. + (__gmp_rand_lc_scheme_struct): Remove mpz_t's `a' and `m'. + + * tests/rand/stat.c (f_freq): Don't print 2nd level results if doing + 1st level. + + * tests/rand/gen.c (main): Set default algorithm to mpz_urandomb. + (main): Add option -c. + +1999-03-24 Linus Nordberg + + * tests/rand/Makefile (GMPINC): Rename to GMPH. + (GMPH): Add gmp-mparam.h. + (CFLAGS): Add -I$(GMPLIBDIR)/mpn + +1999-03-23 Linus Nordberg + + * Makefile.in: Compile top-dir/urandom.c. + * make.bat: Ditto. + + * mpn/Makefile.in: Compile rawrandom.c. + * make.bat: Ditto. + + * mpn/configure.in (functions): Add rawrandom. + + * gmp.h (__gmp_rand_scheme_struct): Rename to + __gmp_rand_lc_scheme_struct. + (__gmp_rand_data_lc): Remove member 'n'. Allocate a + __gmp_rand_lc_scheme_struct instead of a pointer to one. + Add prototype for gmp_rand_init_lc(), mpn_rawrandom(). + New prototype for mpz_urandomb(). + + * urandom.c: New file. + (__gmp_rand_init_common): New function. + (gmp_rand_init_lc): New function. + (gmp_rand_init): Don't init data_lc->n. Call gmp_rand_init_lc() + and __gmp_rand_init_common(). + (gmp_rand_clear): Remove reference to data_lc->n. + + * mpz/urandom.c (gmp_rand_init, gmp_rand_clear): Move to new file + urandom.c in top-dir. + (mpz_urandomb): Add function parameter nbits. Call mpn_rawrandom(). + + * mpf/urandom.c (mpf_urandomb): Call mpn_rawrandom(). + + * mpn/generic/rawrandom.c: New file. + (mpn_rawrandom): New function. + +1999-03-17 Torbjorn Granlund + + * extract-dbl.c: When packing result, adjust exp when sc == 0. + + * mpf/tests/t-get_d.c: New file. + * mpf/tests/Makefile.in: Compile t-get_d.c. + +1999-03-16 Linus Nordberg + + * mpz/urandom.c (__gmp_rand_scheme): Add extra braces around the + mpz_t members. + + * make.bat: Compile mpz/urandom.c and mpf/urandom.c + + * tests/rand/statlib.c (ks_table): Use mpf_pow_ui() and exp(). + + * tests/rand/gen.c: Include unistd.h for getopt. + +1999-03-15 Linus Nordberg + + * mpz/urandom.c (gmp_rand_init): New function. + (gmp_rand_clear): New function. + (mpz_urandomb): New function. + + * mpz/Makefile.in: Compile urandom.c + + * mpf/urandom.c (mpf_urandomb): New function. + + * mpf/Makefile.in: Compile urandom.c. + + * gmp.h (__gmp_rand_state_struct, __gmp_rand_scheme_struct): New + structs for randomization functions. + (gmp_rand_dist, gmp_rand_alogrithm): New enums for randomization + functions. + (mpz_urandomb, mpf_urandomb): Add prototype. + (gmp_rand_init, gmp_rand_clear): Add prototype. + + * tests/rand/gen.c, stat.c, statlib.c, statlib.h: New files. + * tests/rand/Makefile, tests/rand/ChangeLog: New files. + +1999-03-15 Torbjorn Granlund + + * .gdbinit: New file. + + * mpz/dump.c: New file. + * mpz/Makefile.in: Compile dump.c. + * make.bat: Likewise. + * gmp.h (mpz_dump): Declare. + +1999-03-14 Torbjorn Granlund + + * mpz/tests/reuse.c: Also test mpz_invert and mpz_divexact. + + * mpz/tests/convert.c: Update to GMP 2 variable syntax. + +1999-03-13 Torbjorn Granlund + + * mpf/README: New file. + * mpz/README: New file. + + * mpf/pow_ui.c: New file. + * mpf/Makefile.in: Compile pow_ui.c. + * make.bat: Likewise. + * gmp.h (mpf_pow_ui): Declare. + +1999-03-12 Torbjorn Granlund + + * mpn/configure.in: Stage 1 of rewrite. + * mpn/underscore.h: New name for bsd.h. + * mpn/sysv.h: Deleted. + + * mpn/m68k/*: Don't include sysdep.h. + + * mpn/pa64/README: New file. + +1999-03-11 Torbjorn Granlund + + * mpn/powerpc32/add_n.S: Add support for both AIX and ELF syntax. + Renamed from `.s'. + * mpn/powerpc32/sub_n.S: Likewise. + * mpn/powerpc32/lshift.S: Likewise. + * mpn/powerpc32/rshift.S: Likewise. + * mpn/powerpc32/mul_1.S: Likewise. + * mpn/powerpc32/addmul_1.S: Likewise. + * mpn/powerpc32/submul_1.S: Likewise. + + * mpn/powerpc32/umul.S: New file. + * mpn/sparc32/v8/umul.S: New file. + * mpn/sparc32/umul.S: New file. + * mpn/x86/umul.S: New file. + * mpn/x86/udiv.S: New file. + + * mpn/Makefile.in (mul_basecase.o): Delete rule. + +1999-02-22 Torbjorn Granlund + + * configure.in (hppa2.0*-*-*): Force use of GCC. + + * extract-dbl.c: Handle IEEE denormalized numbrs. Clean up. + +1998-12-02 Torbjorn Granlund + + * mpn/Makefile.in (CCAS): New macro. + (.s.o): Use CCAS. + (.S.o): Likewise. + + * mpn/Makefile.in (mul_basecase.o): Add dependency. + (sqr_basecase.o): Likewise. + (mod_1.o): Likewise. + + * demos/pexpr.c (cputime): Test also __hpux. + (cleanup_and_exit): Check SIGXCPU only #ifdef LIMIT_RESOURCE_USAGE. + + * mpz/tests/t-2exp.c: Use urandom, not random. + + * mpn/configure.in (arm*-*-*): New alternative. + +1998-11-30 Torbjorn Granlund + + * gmp-impl.h (union ieee_double_extract): Special case for + little-endian arm. + (LIMBS): Alias for PTR. + +1998-11-26 Torbjorn Granlund + + * longlong.h (m68000 umul_ppmm): Use `muluw', not `mulu'. + (m68k stuff): Clean up; add coldfire support. + +1998-11-23 Torbjorn Granlund + + * mpn/mips3/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. + (KARATSUBA_SQR_THRESHOLD): #define. + + * mpn/sparc32/v9/README: New file. + +1998-11-20 Torbjorn Granlund + + * mpn/x86/README: New file. + + * mpn/arm/gmp-mparam.h: New file. + * mpn/pa64/gmp-mparam.h: New file. + * mpn/hppa/gmp-mparam.h: New file. + * mpn/x86/pentium/gmp-mparam.h: New file. + * mpn/sparc32/v9/gmp-mparam.h: New file. + * mpn/powerpc32/gmp-mparam.h: New file. + * mpn/x86/p6/gmp-mparam.h: New file. + + * mpn/alpha/gmp-mparam.h (KARATSUBA_MUL_THRESHOLD): #define. + (KARATSUBA_SQR_THRESHOLD): #define. + + * mpn/configure.in: Point to x86/p6 when appropriate. + + * mpn/power/umul.s: New file. + * mpn/power/sdiv.s: New file. + * mpn/pa64/addmul_1.S: New file. + * mpn/pa64/submul_1.S: New file. + * mpn/pa64/mul_1.S: New file. + * mpn/pa64/udiv_qrnnd.c: New file. + * mpn/pa64/umul_ppmm.S: New file. + * mpn/mips2/umul.s: New file. + * mpn/m68k/mc68020/umul.s: New file. + * mpn/m68k/mc68020/udiv.s: New file. + * mpn/hppa/hppa1_1/umul.s: New file. + * mpn/alpha/umul.s: New file. + * mpn/a29k/udiv.s: New file. + * mpn/a29k/umul.s: New file. + +1998-11-17 Torbjorn Granlund + + * mpn/x86/mul_basecase.S: New file for non-pentiums. + * mpn/x86/mul_basecase.S: Move to mpn/x86/pentium. + +1998-11-16 Torbjorn Granlund + + * make.bat: Compile mul_basecase.c and sqr_basecase.c. + +1998-11-10 Torbjorn Granlund + + * mpz/invert.c: Defer writing to parameter `invert' until + end. + +1998-11-03 Torbjorn Granlund + + * mpn/pa64/udiv_qrnnd.c: Handle more border cases. + +1998-10-29 Torbjorn Granlund + + * insert-dbl.c: Special case biased exponents < 1; Get boundary for + Inf right. + + * longlong.h (COUNT_LEADING_ZEROS_NEED_CLZ_TAB): New #define. + +1998-10-28 Torbjorn Granlund + + * mpn/powerpc32/submul_1.s: Rewrite, optimizing for PPC604. + * mpn/powerpc32/addmul_1.s: Likewise. + * mpn/powerpc32/lshift.s: Likewise. + +1998-10-23 Torbjorn Granlund + + * config/mt-sprc9-gcc (XCFLAGS): Add -Wa,-xarch=v8plus. + + * mpn/sparc32/v9/submul_1.s: New file. + +1998-10-21 Torbjorn Granlund + + * mpn/config/mt-pa2hpux: New file. + * mpn/configure.in (hppa2.0*-*-*): Use new 64-bit code. + + * config.sub: Recognize hppa2.0 as CPU type. + + * longlong.h (64-bit hppa): Add umul_ppmm and udiv_qrnnd. + * mpn/pa64/mul_1.S: New file. + * mpn/pa64/addmul_1.S: New file. + * mpn/pa64/submul_1.S: New file. + * mpn/pa64/umul_ppmm.S: New file. + * mpn/pa64/udiv_qrnnd.c: New file. + +1998-10-20 Torbjorn Granlund + + * mpz/pprime_p.c: Pass 1L, not 1, to mpz_cmp_ui. + + * mpz/fdiv_q_2exp.c: Cast `long' argument to `mp_limb_t' for mpn calls. + * mpz/gcd_ui.c: Likewise. + * mpz/add_ui.c: Likewise. + * mpz/sub_ui.c: Likewise. + +1998-10-19 Torbjorn Granlund + + * mpn/generic/bdivmod.c: Avoid using switch statement with mp_limb_t + index. + +1998-10-17 Torbjorn Granlund + + * mpn/sparc32/v9/mul_1.s: Misc cleanups. + * mpn/sparc32/v9/addmul_1.s: Misc cleanups. + +1998-10-16 Torbjorn Granlund + + * mpn/tests/{add,sub,}mul_1.c: Print xlimb using mpn_print. + + * mpz/tests/t-powm.c (SIZE): Increase to 50. + (EXP_SIZE): New parameter; use it for computing exp_size. + +1998-10-15 Torbjorn Granlund + + * mpn/generic/divrem_newt.c: Use TMP_ALLOC interface. + + * mpn/generic/sqrtrem.c: Check BITS_PER_MP_LIMB before defining + assembly variants of SQRT. + +1998-10-14 Torbjorn Granlund + + * mpn/tests: Clean up timing routines. Don't include longlong.h + where it is not needed. + (mpn_print): Handle printing when _LONG_LONG_LIMB. + * mpn/tests/{add,sub,}mul_1.c: Generate xlimb with mpn_random2 + and do it whether TIMES != 1 or not. + + * mpn/generic/mul_n.c: Delay assignment of `sign' for lower + register pressure. + + * mpn/sparc32/v9/mul_1.s: New file. + + * config/mt-sprc9-gcc: New file. + * configure.in: Use it. + + * mpn/configure.in: Use sparc64 for Solaris 2.7 and later with a + sparc v9 CPU. + * mpn/configure.in: Use sparc32/v9 for Solaris 2.6 or earlier with + a sparc v9 CPU. + + * mpf/sub.c: In initial code for ediff == 0, limit precision + before jumping to `normalize'. + +1998-10-13 Torbjorn Granlund + + * mpn/hppa/hppa2_0/add_n.s: New file. + * mpn/hppa/hppa2_0/sub_n.s: New file. + * mpn/configure.in: Handle hppa2.0 (32-bit code for now). + + * config.guess: Update from egcs 1.1. + (9000/[3478]??:HP-UX:*:*): Properly return 2.0 for all known 2.0 + machines. + +1998-10-07 Torbjorn Granlund + + * mpz/root.c (mpz_root): New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_root): Declare. + + * mpz/perfpow.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_perfect_power_p): Declare. + + * mpz/remove.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_remove): Declare. + + * mpz/bin_ui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_bin_ui): Declare. + + * mpz/bin_uiui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_bin_uiui): Declare. + +1998-09-16 Torbjorn Granlund + + * longlong.h: Test for __powerpc__ in addition to _ARCH_PPC. + +Sat Sep 5 17:22:28 1998 Torbjorn Granlund + + * mpf/cmp_si.c: Compare most significant mantissa limb before + trying to deduce anything from the limb count. + * mpf/cmp_ui.c: Likewise. + +Tue Aug 18 10:24:39 1998 Torbjorn Granlund + + * mpz/pprime_p.c (mpz_probab_prime_p): Add new code block + for doing more dividing. + +Sat Aug 15 18:43:17 1998 Torbjorn Granlund + + * mpn/generic/divrem_newt.c: New name for divrem_newton.c. + * mpn/Makefile.in: Corresponding changes. + * mpn/configure.in: Likewise. + +Wed Aug 12 23:07:09 1998 Torbjorn Granlund + + * config.guess: Handle powerpc for NetBSD. + +Tue Jul 28 23:10:55 1998 Torbjorn Granlund + + * mpz/fib_ui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_fib_ui): Declare. + +Wed Jun 17 22:52:58 1998 Torbjorn Granlund + + * make.bat: Fix typo, `asm-synt.h' => `asm-syntax.h'. + +Wed Jun 3 11:27:32 1998 Torbjorn Granlund + + * config/mt-pwr: New file. + * config/mt-ppc: New file. + * configure.in: Use the new files. + +Tue Jun 2 13:04:17 1998 Torbjorn Granlund + + * mpn/sparc32/v9/addmul_1.s: New file. + * mpn/config/mt-sprc9: New file. + * mpn/configure.in: Use mt-sprc9. + +Tue May 26 11:24:18 1998 Torbjorn Granlund + + * demos/factorize.c (factor_using_pollard_rho): Pass correct + parameters in recursive calls; join the two recursion arms. + + * mpf/set_q.c: Set result sign. + When normalizing the numerator, don't allow it to increase in size + beyond prec. + +Tue May 19 17:28:14 1998 Torbjorn Granlund + + * demos/factorize.c (factor_using_division): Call fflush + also for the factor 2. + +Mon May 18 15:51:01 1998 Torbjorn Granlund + + * make.bat: Pass -fomit-frame-pointer. Do not pass -g. + +Tue May 5 01:42:50 1998 Torbjorn Granlund + + * mpz/Makefile.in (LOCAL_CC): Remove definition. + + * gmp.h: Get rid of GMP_SMALL stuff. + * mpz/Makefile.in: Likewise. + * mpq/Makefile.in: Likewise. + * mpf/Makefile.in: Likewise. + + * mpz/invert.c: Fix typo in comment. + +Mon May 4 23:05:32 1998 Torbjorn Granlund + + * mpn/generic/sqrtrem.c: Check that __arch64__ is not defined + before defining sparc SQRT. + +Mon Apr 20 19:16:17 1998 Torbjorn Granlund + + * mpn/generic/gcdext.c: Allow gp to be NULL. + +1998-04-03 Torbjorn Granlund + + * mpn/configure.in: Recognize `alphaev5*', not `alphaev5'. + + * config.guess: Handle CPU variants for NetBSD. + +Mon Mar 16 13:07:54 1998 Torbjorn Granlund + + * mpz/pprime_p.c: Use mpn_mod_1/mpn_preinv_mod_1 for computing mod PP, + not mpz_tdiv_r_ui (which expects an `unsigned long'). + (mpz_probab_prime_p): Change type of `r' to mp_limb_t. + +Thu Mar 12 17:19:04 1998 Torbjorn Granlund + + * gmp.h (mpf_ceil, mpf_floor, mpf_trunc): Add declarations. + + * config.guess: Update from FSF version. + * config.sub: Likewise. + + * config.guess: Add special handling of alpha-*-NetBSD. + +Wed Mar 11 00:55:34 1998 Torbjorn Granlund + + * mpz/inp_str.c: Update from set_str.c. + Properly increment `nread' when skipping minus sign. + + * mpz/set_str.c: Check for empty string after having skipped + leading zeros. + +Mon Mar 9 19:28:00 1998 Torbjorn Granlund + + * mpz/set_str.c: Skip leading zeros. + +Wed Mar 4 19:29:16 1998 Torbjorn Granlund + + * gmp.h (mpz_cmp_si): Cast argument before calling mpz_cmp_ui. + + * demos/factorize.c: Rewrite. + +1998-02-04 Torbjorn Granlund + + * configure.in (i[3456]86* etc): Check if using gcc before + choosing mt-x86. + + * configure.in (m68*-*-*): New alternative. + * config/mt-m68k: New file. + + * mpn/alpha/invert-limb.s: Put tables in text segment, + since not all systems support "rdata". + +Wed Feb 4 02:20:57 1998 Torbjorn Granlund + + * gmp.h (__GNU_MP_VERSION_SNAP): New #define. + (__GNU_MP_VERSION_MINOR): Now 1. + +Wed Jan 28 22:29:36 1998 Torbjorn Granlund + + * longlong.h (alpha udiv_qrnnd): #define UDIV_NEEDS_NORMALIZATION. + +Wed Jan 28 20:28:19 1998 Torbjorn Granlund + + * mpz/pprime_p.c (mpz_probab_prime_p): Delete 59 from tried divisors. + +Mon Jan 26 01:39:02 1998 Torbjorn Granlund + + * mpz/pprime_p.c (mpz_probab_prime_p): Major overhaul: Check small + numbers specifically; check small factors, then perform a fermat test. + +Tue Jan 13 14:58:28 1998 Torbjorn Granlund + + * longlong.h (alpha udiv_qrnnd): Call __mpn_invert_normalized_limb + and udiv_qrnnd_preinv. + +Wed Jan 7 01:52:54 1998 Torbjorn Granlund + + * mpn/configure.in (alpha*, extra_functions): Add invert-limb and + remove udiv_qrnnd. + + * mpn/tests/divrem.c: Get allocations right. + + * mpn/generic/divrem.c: Conditionally pre-invert most significant + divisor limb. + +Tue Jan 6 23:08:54 1998 Torbjorn Granlund + + * mpn/generic/divrem_1.c: Rename variables to comply to conventions. + Make `i' have type `mp_size_t'. + +Tue Dec 30 22:21:42 1997 Torbjorn Granlund + + * mpz/tdiv_qr_ui.c: Return the remainder. + * mpz/tdiv_r_ui.c: Likewise. + * mpz/tdiv_q_ui.c: Likewise. + * gmp.h: Change return type of mpz_tdiv_qr_ui, mpz_tdiv_r_ui, + mpz_tdiv_q_ui. + + * mpz/tdiv_ui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_tdiv_ui): Declare. + +Fri Nov 7 04:21:15 1997 Torbjorn Granlund + + * mpf/integer.c (FUNC_NAME): Fix bogus test for mpf_trunc. + + * demos/isprime.c: New file. + + Sat Nov 1 19:32:25 1997 Torbjorn Granlund + + * mpz/cmp_abs.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_cmp_abs): Declare. + + * mpz/cmp_abs_ui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_cmp_abs_ui): Declare. + +Sat Sep 27 04:49:52 1997 Torbjorn Granlund + + * mpz/fdiv_r_2exp.c: Get allocation for `tmp' right. + + * mpz/fdiv_q_2exp.c: In final result adjustment code, handle + that intermediate result is zero. + + * mpz/tests/t-2exp.c: New file. + * mpz/tests/Makefile.in: Handle t-2exp.c. + +Fri Sep 26 16:29:21 1997 Torbjorn Granlund + + * mpz/divexact.c: Fix typo in test for whether to copy numerator to + quotient and move that statement to after handling quotient and + denominator overlap. Misc cleanups. + + * mpn/generic/gcd.c: Change count argument of mpn_lshift/mpn_rshift + calls to `unsigned int'. + * mpz/divexact.c: Likewise. + +Mon Sep 22 02:19:52 1997 Torbjorn Granlund + + * mpz/tests/t-powm.c: Decrease `reps' to 2500. + + * mpz/tests/t-pow_ui.c: New file. + * mpz/tests/Makefile.in: Handle t-pow_ui.c. + + * mpz/ui_pow_ui.c: Get special cases for exponent and base right. + + * mpz/pow_ui.c: Increase temp space allocation by 1 limb. + Split `rsize' into two variables; compute space allocation into + `ralloc'. + +Sun Sep 7 04:15:12 1997 Torbjorn Granlund + + * mpn/pa64/lshift.s: New file. + * mpn/pa64/rshift.s: New file. + * mpn/pa64/sub_n.s: New file. + +Sat Sep 6 19:14:13 1997 Torbjorn Granlund + + * mpn/pa64/add_n.s: New file. + * mpn/pa64: New directory. + +Tue Aug 19 16:17:09 1997 Torbjorn Granlund + + * mpz/swap.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_swap): Declare. + + * mpn/generic/mul_n.c: Push assignment of x and y pointers into the + if/else clauses in several places. (Decreases register pressure.) + +Mon Aug 18 03:29:50 1997 Torbjorn Granlund + + * mpn/thumb/add_n.s: New file. + * mpn/thumb/sub_n.s: New file. + * mpn/arm/add_n.s: New file. + * mpn/arm/sub_n.s: New file. + + * mpz/powm.c: After mpn_mul_n and mpn_mul calls, adjust product size + if most significant limb is zero. + * mpz/powm_ui.c: Likewise. + +Fri Aug 15 02:13:57 1997 Torbjorn Granlund + + * mpn/arm/m/mul_1.s: New file. + * mpn/arm/m/addmul_1.s: New file. + + * mpn/powerpc32/mul_1.s: Rewrite. + + * mpn/alpha/mul_1.s: Prefix labels with `.'. + +Mon Aug 11 02:37:16 1997 Torbjorn Granlund + + * mpn/powerpc32/add_n.s: Rewrite. + * mpn/powerpc32/sub_n.s: Rewrite. + +Sun Aug 10 17:07:15 1997 Torbjorn Granlund + + * mpn/powerpc32/addmul_1.s: Delete obsolete comments. + * mpn/powerpc32/submul_1.s: Likewise. + +Fri Jul 25 20:07:54 1997 Torbjorn Granlund + + * mpz/addmul_ui.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_addmul_ui): Declare. + + * mpz/setbit.c: Add missing code after final `else'. + +Tue Jul 22 17:45:01 1997 Torbjorn Granlund + + * mpn/sh/add_n.s: Fix typo. + * mpn/sh/sub_n.s: Likewise. + + * longlong.h (ns32k count_trailing_zeros): Fix typo. + + * insert-dbl.c: Check for exponent overflow and return Inf. + + * mpz/get_d.c: Rewrite to avoid rounding errors. + +Thu May 29 11:51:07 1997 Torbjorn Granlund + + * mpq/add.c: Swap some usages of tmp1 and tmp2 to make sure + their allocation suffices. + * mpq/sub.c: Likewise. + +Wed Apr 16 02:24:25 1997 Torbjorn Granlund + + * demos/pexpr.c: New file. + + * mpn/generic/mul_n.c: Misc optimizations from Robert Harley. + + * gmp-impl.h (MPZ_PROVOKE_REALLOC): New #define. + +Sat Apr 12 17:54:04 1997 Torbjorn Granlund + + * mpz/tstbit.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_tstbit): Declare. + + * mpz/tests/logic.c: Use MPZ_CHECK_FORMAT. + * mpz/tests/bit.c: New test. + * mpz/tests/Makefile.in: Handle bit.c. + + * mpz/ior.c: In -OP2,+OP1 case, normalize OP2 after call to mpn_sub_1. + + * gmp-impl.h (MPZ_CHECK_FORMAT): New #define. + +Thu Apr 10 00:30:14 1997 Torbjorn Granlund + + * longlong.h (POWER/PowerPC): Test _ARCH_PWR instead of _IBMR2. + +Wed Apr 9 18:23:31 1997 Torbjorn Granlund + + * gmp-impl.h: Move defaulting of UMUL_TIME and UDIV_TIME from here... + * longlong.h: ...to here. + +Sun Mar 30 12:16:23 1997 Torbjorn Granlund + + * mpn/generic/next_prime.c: New file. + + * mpn/generic/perfsqr.c: Remove definitions of PP and PP_INVERTED. + * gmp-impl.h: Put them here. + +Fri Mar 28 08:18:05 1997 Torbjorn Granlund + + * gmp-impl.h (MPN_COPY_INCR, MPN_COPY_DECR): Define as inline asm for + for x86, but leave disabled for now. + +Fri Feb 28 02:39:47 1997 Torbjorn Granlund + + * mpn/Makefile.in (.S.o): Pass SFLAGS and CFLAGS also to compiler + for assembly phase. + (.s.o): Pass SFLAGS. + +Wed Feb 26 06:46:08 1997 Torbjorn Granlund + + * mpn/configure.in: For Pentium Pro, use default code, not Pentium + optimized code. + + * mpn/x86/addmul_1.S: Unroll and optimize for Pentium Pro. + * mpn/x86/submul_1.S: Likewise. + +Thu Feb 13 08:26:09 1997 Torbjorn Granlund + + * mpf/Makefile.in: Compile floor.o, ceil.o and trunc.o (from + integer.c). + * make.bat: Likewise. + +Wed Feb 5 05:58:44 1997 Torbjorn Granlund + + * mpn/configure.in (alpha*): Add cntlz to extra_functions. + +Wed Feb 4 03:30:45 1997 Torbjorn Granlund + + * mpf/integer.c: New file (supporting mpf_floor, mpf_ceil, mpf_trunc). + +Mon Feb 3 14:21:36 1997 Torbjorn Granlund + + * make.bat: Fix typo, set_dfl_prc => set_dfl_prec. + +Sun Feb 2 02:34:33 1997 Torbjorn Granlund + + * mpf/out_str.c: After outputting `-', decrement n_digits. + +Wed Jan 8 02:50:20 1997 Torbjorn Granlund + + * mpn/generic/divrem.c: qextra_limbs => qxn. + +Wed Dec 18 07:50:46 1996 Torbjorn Granlund + + * mpz/tests/t-tdiv.c (SIZE): Increase to 200. + +Tue Dec 17 19:32:48 1996 Torbjorn Granlund + + * mpn/generic/divrem.c (mpn_divrem_classic): New name for mpn_divrem. + * gmp.h (mpn_divrem): New function. + * mpn/generic/divrem_newton.c: New file. + * mpn/configure.in (functions): Add divrem_newton. + * make.bat: Likewise. + +Thu Dec 12 17:55:13 1996 Torbjorn Granlund + + * gmp.h (_GMP_H_HAVE_FILE): Test also __dj_include_stdio_h_. + +Sat Dec 7 09:40:06 1996 Torbjorn Granlund + + * mpn/alpha/invert-limb.s: New file. + +Thu Dec 5 01:25:31 1996 Torbjorn Granlund + + * mpz/ui_pow_ui.c (mpz_pow2): New (static) function. + (mpz_ui_pow_ui): Rewrite. + + * make.bat: `pre_mod_1.c' => `pre_mod_.c'. Fix typo in path to + gmp-mpar.h. + +Fri Nov 15 00:49:55 1996 Torbjorn Granlund + + * mpz/ui_pow_ui.c: Rewrite for better speed. + +Fri Nov 1 16:36:56 1996 Torbjorn Granlund + + * Makefile.in (recursive make rules): Use `&&' instead of `;' as + delimiter. + +Fri Oct 25 17:12:36 1996 Torbjorn Granlund + + * gmp-impl.h (Cray/uxp MPN_COPY): Really declare as inline. + +Thu Oct 24 15:08:19 1996 Torbjorn Granlund + + * mpn/fujitsu/rshift.c: Fix typo in loop boundaries. + +Fri Oct 18 03:13:54 1996 Torbjorn Granlund + + * mpn/configure.in: Recognize `nextstep' for m68k variants; likewise + for x86 variants. + + * mpn/x86/syntax.h (INSND): New macro. + * mpn/x86/[lr]shift.S: Use INSND. + * mpn/x86/pentium/[lr]shift.S: Likewise. + * mpn/config/t-oldgas (SFLAGS): Pass -DOLD_GAS. + + * gmp-impl.h: In code for determining endianness, test also + __BIG_ENDIAN__ and __hppa__. Remove test of __NeXT__. + +Wed Oct 16 03:50:34 1996 Torbjorn Granlund + + * mpf/set_str.c: Let `prec' determine precision used in + exponentiation code; decrease allocation accordingly. + + * mpn/vax: Change `jsob*' to `sob*' in all files. + +Tue Oct 15 03:54:06 1996 Torbjorn Granlund + + * longlong.h (m88110 udiv_qrnnd): Change type of intermediate quotient + to DImode (divu.d generates a 64-bit quotient). + + * configure.in (m88110*): Fix typo. + + * mpf/get_str.c: Compute exp_in_base using `double' to avoid overflow. + + * gmp-impl.h (struct bases): Change type of chars_per_bit_exactly from + float to double. + * mpn/mp_bases.c (__mp_bases): Give 17 digits for chars_per_bit_exactly + field. + + * mpf/get_str.c: Let `prec' determine precision used in + exponentiation code; decrease allocation accordingly. + +Sun Oct 13 03:31:53 1996 Torbjorn Granlund + + * longlong.h: Major cleanup. + (__udiv_qrnnd_c): Compute remainders using multiply and subtract, + not explicit `%' operator. + (C umul_ppmm): Get rid of a redundant __ll_lowpart. + + * mpz/invert.c: Properly detect all operands that would yield an + undefined inverse; make sure the inverse is always positive. + + * mpz/xor.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_xor): Declare. + + * mpz/tests/logic.c: Also test mpz_xor. + + * mpz/lcm.c: Special case for when either operand equals 0. + +Sat Oct 12 01:57:09 1996 Torbjorn Granlund + + * mpn/generic/gcd.c (find_a): Don't inline on x86. + + * Makefile.in (CFLAGS): Default to just `-g'. + + * configure.in: Recognize 386 and 486 wherever other x86 cpus are + recognized. + * configure.in: Use mt-x86 for all x86 cpus. + * config/mt-x86: New file. + + * mpn/alpha/cntlz.s: New file. + +Tue Oct 8 00:16:18 1996 Torbjorn Granlund + + * longlong.h: Define smul_ppmm for Fujitsu vpp/uxp. + Rewrite umul_ppmm to actually work on the hardware. + + * mpn/x86/sub_n.S: Avoid parens around displacement of `leal'. + * mpn/x86/add_n.S: Likewise. + + * mpn/x86/syntax.h (R): Define differently depending on __STDC__. + +Mon Oct 7 16:48:08 1996 Torbjorn Granlund + + * longlong.h: Don't test for __NeXT__ in outer 68k conditional; + add test for __m68k__. + +Sun Oct 6 00:59:09 1996 Torbjorn Granlund + + * gmp.h: Declare mpn_random. + * make.bat: Compile mpn/generic/random.c. + + * longlong.h: Define umul_ppmm for Fujitsu vpp/uxp. + + * gmp-impl.h: Protect definitions using `__attribute__ ((mode (...)))' + with test also for __GNUC_MINOR__. + + * gmp.h: Don't define macros using __builtin_constant_p when using + NeXT's compiler. + +Fri Oct 4 16:53:50 1996 Torbjorn Granlund + + * mpz/lcm.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h (mpz_lcm): Declare. + +Wed Sep 25 00:06:21 1996 Torbjorn Granlund + + * mpq/tests/t-cmp_ui.c: Make sure numerator and denominator of `b' is + within limits of an `unsigned long int'. + + * mpz/tests/t-powm_ui.c: Change type of exp2 to `unsigned long int'. + +Tue Sep 24 18:58:20 1996 Torbjorn Granlund + + * mpz/powm_ui.c: Make result always positive. + + * urandom.h (urandom): Make it return mp_limb_t. + + * gmp-impl.h (CNST_LIMB): New macro. + * mpn/mp_bases.c: Use CNST_LIMB. + * mpn/generic/hamdist.c (popc_limb): Likewise. + * mpn/generic/popcount.c (popc_limb): Likewise. + * mpn/generic/perfsqr.c: Likewise. + +Fri Sep 20 03:08:10 1996 Torbjorn Granlund + + * mpz/pprime_p.c: When n <= 3, don't clear out n before using it. + +Wed Sep 18 11:22:45 1996 Torbjorn Granlund + + * mpn/fujitsu/mul_1.c: New file. + * mpn/fujitsu/addmul_1.c: New file. + * mpn/fujitsu/sub_n.c: New file. + * mpn/fujitsu/add_n.c: Mew file. + +Sun Sep 15 03:13:02 1996 Torbjorn Granlund + + * mpn/generic/random.c: New file. + * mpn/configure.in (functions): Add `random'. + + * gmp-impl.h (MPN_COPY): Define as annotated inline function for + Crays and Fujitsu VPPs. + + * gmp.h (mp_size_t): Define as `int' for non-MPP Cray. + (mp_exp_t): Likewise. + + * configure.in: Add support for Fujitsu VPP machines. + * mpn/configure.in: Likewise. + * config.guess: Likewise. + * config.sub: Likewise. + + * mpn/fujitsu/rshift.c: New file. + * mpn/fujitsu/lshift.c: New file. + * mpn/fujitsu: New directory, for Fujitsu VPP machines. + +Wed Sep 11 11:34:38 1996 Torbjorn Granlund + + * mpn/generic/mul_n.c (__gmpn_mul_n): New name for impn_mul_n. + Call __gmpn_mul_basecase, not impn_mul_n_basecase; update parameter + list to work with __gmpn_mul_basecase. + (__gmpn_sqr): New name for impn_sqr_n. + Call __gmpn_sqr_basecase, not impn_sqr_n_basecase; update parameter + list to work with __gmpn_sqr_basecase. + (mpn_mul_n): Update calls to match new names and parameter conventions. + * gmp-impl.h (MPN_MUL_N_RECURSE): Likewise. + (MPN_SQR_RECURSE): New name for MPN_SQR_N_RECURSE. + Update calls to match new names and parameter conventions. + * mpn/generic/mul.c: Never perform multiply explicitly here, call + __gmpn_mul_basecase instead. + Update calls to match new names and parameter conventions. + + * mpn/x86/mul_basecase.S: New file. + * mpn/generic/mul_basecase.c: New file. + * mpn/generic/sqr_basecase.c: New file. + +Wed Sep 4 02:59:21 1996 Torbjorn Granlund + + * mpz/set_str.c: Let `0b' and `0B' mean base 2. + +Fri Aug 30 00:44:00 1996 Torbjorn Granlund + + * longlong.h (x86 umul_ppmm): Work around GCC bug that was + triggered by Aug 28 change. + + * mpbsd/min.c (digit_value_in_base): New function. + + * mpz/set_str.c: Refine allocation size computation, use + chars_per_bit_exactly instead of chars_per_limb. + + * mpbsd/Makefile.in (.c.o): Add -D_mpz_realloc=_mp_realloc. + +Wed Aug 28 02:52:14 1996 Torbjorn Granlund + + * longlong.h (x86 umul_ppmm): Don't cast result operands. + (x86 udiv_qrnnd): Likewise. + (default smul_ppmm): Fix typo, umul_ppmm => smul_ppmm. + (default umul_ppmm): New #define using smul_ppmm. + (vax smul_ppmm): New #define. + (vax umul_ppmm): Delete. + (POWER umul_ppmm): Delete. + (IBM 370 smul_ppmm): New #define. + (IBM 370 umul_ppmm): Delete. + (IBM RT/ROMP smul_ppmm): New #define. + (IBM RT/ROMP umul_ppmm): Delete. + +Tue Aug 27 01:03:25 1996 Torbjorn Granlund + + * gmp-impl.h (__gmp_0): Make it `const'. + + * mpn/Makefile.in (clean mostlyclean): Comment out recursive clean + of `tests'. + + * mpn/generic/mul.c: Identify when we do squaring, and call + impn_sqr_n_basecase/impn_sqr_n as appropriate. Use + KARATSUBA_MUL_THRESHOLD and KARATSUBA_SQR_THRESHOLD. + Don't #define KARATSUBA_THRESHOLD. + + * mpn/generic/mul_n.c: Don't #define KARATSUBA_THRESHOLD. + (impn_mul_n, impn_sqr_n): Rewrite, based on code contributed by + Robert Harley. + (impn_sqr_n_basecase): Rewrite. + + * gmp-impl.h (KARATSUBA_MUL_THRESHOLD): New #define. + (KARATSUBA_SQR_THRESHOLD): Likewise. + (MPN_SQR_N_RECURSE): Use KARATSUBA_SQR_THRESHOLD. + (MPN_MUL_N_RECURSE): Use KARATSUBA_MUL_THRESHOLD. + + * configure.in: Fix typo in last change. + +Mon Aug 26 22:25:18 1996 Torbjorn Granlund + + * mpn/generic/random2.c: Fix typo, `alpha__' => `__alpha'. + * mpf/random2.c: Likewise. + +Sun Aug 25 00:07:09 1996 Torbjorn Granlund + + * mpz/tests/t-mul.c: Also test squaring. + +Fri Aug 16 05:12:08 1996 Torbjorn Granlund + + * mp_clz_tab.c (__clz_tab): Declare as `const'. + * version.c (gmp_version): Likewise. + * mpn/generic/sqrtrem.c (even_approx_tab, odd_approx_tab): Likewise. + +Thu Aug 15 02:34:47 1996 Torbjorn Granlund + + * gmp.h: Fix typo, `mips__' => `__mips'. + + * mpf/set_str.c: Allow a number to start with a period, if next + position contains a digit. + +Tue Aug 13 18:41:25 1996 Torbjorn Granlund + + * mpz/gcdext.c: Get cofactor sign right for negative input operands. + Clean up code for computing tt. + + * mpz/invert.c: Get rid of variable `rv'. + + * mpz/divexact.c: Test for zero divisor in special case for zero + dividend. + +Mon Aug 12 18:04:07 1996 Torbjorn Granlund + + * mpz/?div_*_ui.c: Special case for division by 0. + * mpz/tdiv_q.c: Likewise. + +Sat Aug 10 14:45:26 1996 Torbjorn Granlund + + * mpz/dmincl.c: Special case for division by 0. + + * mpz/tdiv_*_ui.c: Delete special case for dividend being 0; handle + it when computing size after mpn_divmod_1 call. + + * mp_bpl.c: (__gmp_junk): New variable. + (__gmp_0): New constant. + + * gmp-impl.h (DIVIDE_BY_ZERO): New #define. + +Fri Aug 9 20:03:27 1996 Torbjorn Granlund + + * mpz/divexact.c: Test for dividend being zero before testing + for small divisors. + +Thu Aug 8 13:20:23 1996 Torbjorn Granlund + + * configure.in: Require operating system specification for cpus + where assembly syntax differs between system. + + * Makefile.in (many targets): Change `-' action prefix to `@'. + + * mpn/Makefile.in: (distclean): Fix typo. + + * mpq/cmp_ui.c: Rename function to _mpq_cmp_ui. + (mpq_cmp_ui): #undef deleted. + * mpz/cmp_si.c: Rename function to _mpz_cmp_si. + (mpz_cmp_si): #undef deleted. + * mpz/cmp_ui.c: Rename function to _mpz_cmp_ui. + (mpz_cmp_ui): #undef deleted. + * Makefile.in: Corresponding changes. + + * mpf/get_prc.c: Return the *highest* precision achievable. + + * mpf/get_str.c: Complete rewrite. + + * mpf/set_str.c (swapptr): New #define. + (assert): New #define. + * mpf/set_str.c: Set prec to one more than the saved _mp_prec. + Misc cleanups. + + * mpz/set_str.c: #include string.h. + * mpf/out_str.c: #include string.h. + * mpbsd/xtom.c: #include string.h and ctype.h. + * mpbsd/mout.c: #include string.h. + +Wed Aug 7 11:46:04 EDT 1996 Ken Weber + + * mpn/generic/gcd.c: Reorder mpn_gcd argument list. + * mpz/gcd.c: Change call to mpn_gcd. + * gmp.texi: Update manual entry on mpn_gcd. + * mpn/generic/bdivmod.c: Delete limb cache to make mpn_bdivmod + reentrant. + +Wed Aug 7 02:15:38 1996 Torbjorn Granlund + + * mpf/get_str.c: Rewrite code for converting integral part of a + number with both an integral and fractional part. + + * mpf/set_str.c: Get rid of variable xxx. New variables madj and radj. + In exp_in_base==0 case, add madj to msize for EXP field. + + * mpz/tests/t-gcd.c: Test deleted. Rename t-gcd2.c to t-gcd.c. + Increase reps to 2000. + * mpz/tests/t-gcd2.c: Get rid of mpz_refgcd. + + * mpf/set_str.c: Ignore excess limbs in MP,MSIZE. + +Thu Jul 25 04:39:10 1996 Torbjorn Granlund + + * mpn/configure.in: Fix typo in setting path, "sparc" => "sparc32". + +Wed Jul 24 02:27:02 1996 Torbjorn Granlund + + * mpn/generic/gcdext.c: Reorganize and clean up. Get rid of all + signed limb arithmetic. + +Mon Jul 22 02:39:56 1996 Torbjorn Granlund + + * mpn/generic/gcdext.c (mpn_gcdext): For large enough operands, + work with most significant *two* limbs. + (div2): New function (two variants). + (THRESHOLD): New #define. + + * mpz/gcdext.c: Fix typo in MPZ_TMP_INIT call. + + * longlong.h (alpha UMUL_TIME): Now 30. + (alpha UDIV_TIME): Now 350. + (x86 UMUL_TIME): Now 10 (let Pentium decide). + (SuperSPARC UDIV_TIME): Override default. + + * extract-dbl.c (MP_BASE_AS_DOUBLE): Don't redefine here. + + * extract-dbl.c: New name for extract-double.c. + * insert-dbl.c: New name for insert-double.c. + * Makefile.in: Corresponding changes. + * make.bat: Likewise. + + * mpz/Makefile.in (.c.o): Don't pass non-portable `-f' to cp. + * mpq/Makefile.in: Likewise. + * mpf/Makefile.in: Likewise. + +Sat Jul 20 01:35:18 1996 Torbjorn Granlund + + * mpz/getlimbn.c: Take ABS of integer->_mp_size. + + * mpz/divexact.c: Use mpn_divmod_1 if divisor is a single limb. + +Thu Jul 18 00:31:15 1996 Torbjorn Granlund + + * mpn/generic/popcount.c (popc_limb): Use different masking trick + for first step (due to David Seal). + * mpn/generic/hamdist.c (popc_limb): Likewise. + +Wed Jul 17 23:21:48 1996 Torbjorn Granlund + + * mpn/generic/divrem.c: In MPN_COPY_DECR call, copy dsize - 1 limbs. + +Sun Jul 14 17:47:46 1996 Torbjorn Granlund + + * configure.in: Handle sparc9, sparc64, and ultrasparc like sparc8. + +Thu Jul 11 14:05:54 1996 J.T. Conklin + + * longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd + for the '020, '030, '040, and '332. Define count_leading_zeros + for the '020, '030, '040, and '060. + +Sun Jul 14 15:24:53 1996 Torbjorn Granlund + + From Joe Keane: + * mpq/equal.c: Take ABS of num1_size before passing it to mpn_cmp. + +Fri Jul 12 17:11:17 1996 Torbjorn Granlund + + * mpn/generic/sqrtrem.c (SQRT): New asm for x86, but leave it + disabled for now. + + * mpn/generic/sqrtrem.c: Use MP_BASE_AS_DOUBLE. + +Wed Jul 10 03:17:45 1996 Torbjorn Granlund + + * cre-mparam.c: Delete obsolete file. + + * gmp.h: #define _LONG_LONG_LIMB if __mips && _ABIN32. + * longlong.h: Test __mips instead of __mips__. + +Sun Jul 7 23:19:13 1996 Torbjorn Granlund + + * longlong.h (_PROTO): Define, unless already defined. + (alpha __udiv_qrnnd): Declare using _PROTO. + (hppa __udiv_qrnnd): Likewise. + (sparc __udiv_qrnnd): Likewise. + +Mon Jul 1 01:44:30 1996 Torbjorn Granlund + + * config.guess: Update from master version; add Cray x90 handling. + +Wed Jun 26 05:35:02 1996 Torbjorn Granlund + + * mpn/power/add_n.s (__mpn_add_n): Work around GAS bug. + * mpn/power/sub_n.s (__mpn_sub_n): Likewise. + + * insert-double.c: Rework loop to avoid potential overflow. + + * mpq/get_d.c: For vax, if qsize > N_QLIMBS, ignore excess limbs. + + * mpq/tests/t-get_d.c (SIZE): Special case for vax. + + * gmp.h (mpX_cmp_ui): #define also when ! __GNUC__. + +Mon Jun 24 17:13:21 1996 Torbjorn Granlund + + * longlong.h (vax sdiv_qrnnd): Fix typo. + +Sat Jun 15 01:33:33 1996 Torbjorn Granlund + + * gmp.h: Support `small' and `large' type and function variants, + controlled by GMP_SMALL. + + * mpz/Makefile.in (.c.o): Compile each function twice, for small and + large variant. + (MPZS_OBJS): New variable. + (libmpz.a): Include MPZS_OBJS in archive. + * mpf/Makefile.in: Analogous changes. + * mpq/Makefile.in: Analogous changes. + + * gmp.h: Prefix all functions with __gmp, to allow namespace-clean + internal calls. + + * mp.h: Rip out __MP_SMALL__ stuff. + (__mpz_struct): mp_size_t => int. + + * mpz/invert.c: #include "gmp-impl.h". + Use MPZ_TMP_INIT, not mpz_init. + + * mpz/gcdext.c: Rewrite to call mpn_gcdext. + +Fri Jun 14 18:05:29 1996 Torbjorn Granlund + + * mpn/generic/gcdext.c (s0size): New parameter. + * gmp.h (mpn_gcdext): Update prototype. + + * mpn/generic/gcdext.c: Major rewrite. + +Mon Jun 10 00:14:27 1996 Torbjorn Granlund + + * mpn/generic/dump.c: Add missing `else'. + +Fri Jun 7 03:35:12 1996 Torbjorn Granlund + + * Makefile.in (gmp_toc.html): Pass -expandinfo to texi2html. + +Thu Jun 6 19:00:53 1996 Torbjorn Granlund + + * Version 2.0.2 released. + + * install.sh: New file. + * Makefile.in (INSTALL): Use install.sh. + (install-normal): New name for target `install'. + (install): New dummy target. + + * mpz/pow_ui.c: Swap tests for (e == 0) and (bsize == 0). + * mpz/ui_pow_ui.c: Swap tests for (e == 0) and (blimb == 0). + + * config/mt-linux (AR_FLAGS): New file. + * configure.in: Use config/mt-linux for all linux systems. + +Tue Jun 4 03:42:18 1996 Torbjorn Granlund + + * Version 2.0.1 released. + + * mpf/tests/ref.c: Cast result of TMP_ALLOC to the right pointer type. + + * extract-double.c: Test _GMP_IEEE_FLOATS with #if, not plain if. + + * insert-double.c: Don't #include stdlib.h. + + * gmp-impl.h (union ieee_double_extract): Test sparc and __sparc. + Do not test __sparc__. + + * mpf/reldiff.c: Change declaration to work around irix5 compiler bug. + * mpq/equal.c: Likewise. + + * mpn/generic/gcd.c: Delete spurious comma at end of enumeration. + + * mpn/generic/gcdext.c: Add K&R declaration syntax. + * stack-alloc.h: Likewise. + * insert-double.c: Likewise. + * extract-double.c: Likewise. + * mpf/tests/reuse.c: Likewise. + * mpz/tests/reuse.c: Likewise. + * mpf/tests/t-sub.c: Likewise. + * mpf/tests/t-add.c: Likewise. + * mpf/tests/t-muldiv.c: Likewise. + * mpf/tests/t-conv.c: Likewise. + * mpf/tests/ref.c: Likewise. + + * mpn/config/t-oldgas: Renamed from t-freebsd. + * mpn/configure.in: Use t-oldgas for freebsd, netbsd, and some linux + configurations. + + * mpn/powerpc32/mul_1.s: Really clear cy before entering loop. + * mpn/powerpc32/*.s: Fix power/powerpc syntax issues. + + * mpn/config/t-ppc-aix: New file. + * mpn/configure.in: Use t-ppc-aix for powerpc like t-pwr-aix for power. + +Wed May 29 02:07:31 1996 Torbjorn Granlund + + * gmp.h (mp_bits_per_limb): Change qualifier from `const' to + __gmp_const. + + * gmp.h (mpf_init_set_str): Add `const' qualifier for 2nd parameter. + * mpf/iset_str.c: Likewise. + +Mon May 27 00:15:58 1996 Torbjorn Granlund + + * gmp-impl.h: Declare __gmp_extract_double. + + * mpz/set_q.c: Delete unused variables. + + * gmp.h (mpq_equal): Declare. + + * mpf/eq.c: mpf_cmp2 -> mpf_eq. + +Fri May 24 03:20:44 1996 Torbjorn Granlund + + * mpz/iset_d.c: Don't include . + + * insert-double.c (__gmp_scale2): New name for scal2. + * mpz/get_d.c: Corresponding change. + * mpf/get_d.c: Likewise. + * mpq/get_d.c: Likewise. + * gmp-impl.h: Declare __gmp_scale2. + + * mpn/generic/scan0.c: Clarify comment. + + * mpz/set_q.c: New file. + * Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h: Declare mpz_set_q. + + * insert-double.c: New file. + * Makefile.in: Compile it. + * make.bat: Likewise. + + * mpz/get_d.c: New file. + * mpz/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h: Declare mpz_get_d. + + * mpf/get_d.c: New file. + * mpf/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h: Declare mpf_get_d. + + * make.bat: Compile things in alphabetical order. + + * gmp-impl.h (MP_BASE_AS_DOUBLE): New #define. + (LIMBS_PER_DOUBLE): New #define. + + * extract-double.c: New file. + * Makefile.in: Compile it. + * make.bat: Likewise. + * mpz/set_d.c: Rewrite to use __gmp_extract_double. + * mpf/set_d.c: Likewise. + + * mpn/configure.in: Use t-pwr-aix also for aix 3.2.4 and up. + +Wed May 22 02:48:35 1996 Torbjorn Granlund + + * gmp-impl.h: Rework code for defining ieee_double_extract. + (IEEE_DOUBLE_BIG_ENDIAN): Macro removed. + (_GMP_IEEE_FLOATS): New macro. + * mpn/vax/gmp-mparam.h: Delete. + + * mpn/config/t-pwr-aix: New file. + * mpn/configure.in: Use t-pwr-aix for aix 4 and later. + +Mon May 20 16:30:31 1996 Torbjorn Granlund + + * gmp.h: In code for setting _GMP_H_HAVE_FILE, test more symbols. + + * mpf/tests/t-add.c (oo): Add some `l' printf modifiers. + * mpf/tests/t-sub.c (oo): Likewise. + * mpf/tests/t-conv.c (oo): Likewise. + * mpf/tests/t-sqrt.c (oo): Likewise. + + * mpz/tests/t-mul.c (_mpn_mul_classic): Remove unused variables. + + * mpn/{pyr,i960,clipper}/*.s: Add missing copyright headers. + +Fri May 17 02:24:43 1996 Torbjorn Granlund + + * mpz/set_d.c: Call _mpz_realloc. + + * mpq/set_z.c: New file. + * mpq/Makefile.in: Compile it. + * make.bat: Likewise. + * gmp.h: Declare mpq_set_z. + + * mp?/Makefile.in (libmp?.a): Depend on Makefile, not Makefile.in. + * mpf/Makefile.in (test): Delete spurious target. + * mpq/Makefile.in (test): Likewise. + + * mpf/out_str.c: Use `e' to separate exponent when base <= 10. + + * mpn/configure.in: Treat ultrasparc just like sparc v8, + until 64-bit compilers are ready. + + * mpf/set_d.c: Make it work for 64-bit machines. + +Thu May 16 20:53:57 1996 Torbjorn Granlund + + * gmp-impl.h: Set IEEE_DOUBLE_BIG_ENDIAN to 0 for little-endian + machines. + * mpn/x86/gmp-mparam.h: Delete file. + + * configure.in: Treat microsparc like sparc8. + + * urandom.h: Test __alpha instead of __alpha__, since the former + is the standard symbol. + * mpn/generic/random2.c: Likewise. + * mpf/random2.c: Likewise. + +Tue May 14 13:42:39 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) + + * mpz/set_f.c: New file. + * mpz/Makefile.in: Compile it. + * gmp.h: Declare mpz_set_f. + + * mpf/set_q.c: Simplify expression in rsize == nsize if-then-else arms. + +Tue May 14 13:03:07 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) + + * make.bat: Add all new files. + +Sun May 12 22:24:36 1996 Torbjorn Granlund + + * mpf/set_z.c: New file. + * mpf/Makefile.in: Compile it. + * gmp.h: Declare mpf_set_z. + +Sat May 11 19:26:25 1996 Torbjorn Granlund + + * gmp.h: Declare mpf_set_q. + + * mpf/set_q.c: Compute prec-1 limbs in mpn_divrem call. + +Fri May 10 17:37:38 1996 Torbjorn Granlund + + * mpf/set_q.c: New file. + * mpf/Makefile.in: Compile it. + + * config.sub: Recognize sparc8. + +Wed May 8 09:19:11 1996 Torbjorn Granlund + + * mpf/tests/t-dm2exp.c: New file. + + * mpf/tests/t-add.c: Correct header comment. + * mpf/tests/t-sub.c: Likewise. + * mpf/tests/t-sqrt.c: Likewise. + + * mpf/div.c: Misc variable name cleanups. + * mpf/div_ui.c: Base more closely on mpf/div.c. + * mpf/ui_div.c: Likewise. + + * mpz/tests/Makefile.in (check): Depend on Makefile. + * mpq/tests/Makefile.in (check): Likewise. + * mpf/tests/Makefile.in (check): Likewise. + + * mpf/tests/t-muldiv.c: New file. + * mpf/tests/Makefile.in: Compile and run `t-muldiv'. + (t-ref.o): Delete spurious rule. + + * mpf/sqrt.c: Properly detect negative input operand. + + * mpf/sqrt_ui.c: Delete spurious header comment. + * mpf/sqrt.c: Likewise. + * mpz/sqrt.c: Likewise. + + * mpz/tests/reuse.c (main): Read `reps' from command line. + + * mpf/tests/reuse.c: New file. + * mpf/tests/Makefile.in: Compile and run `reuse'. + + * mpf/mul_ui.c: Disable code for removing low zero limbs. + + * mpf/div.c: Fix condition for when vp and qp overlaps. + + * mpf/add_ui.c: When sum equals u, copy up to prec+1 limbs. + + * mpf/out_str.c: Don't output '\n' after exponent. + + * mpf/add_ui.c: New special case for when U is completely cancelled. + +Wed Apr 24 05:33:28 1996 Torbjorn Granlund + + * Version 2.0 released. + + * All files: Update FSF's address. + + * Makefile.in (gmp_toc.html): New name for gmp.html. + (TAGS): Depend on force. + + * mpf/tests/t-conv.c: Pass -base to mpf_set_str. + +Sat Apr 20 03:54:06 1996 Torbjorn Granlund + + * Makefile.in (ps): New target, depend on gmp.ps. + +Fri Apr 19 14:03:15 1996 Torbjorn Granlund + + * mpf/out_str.c: Print `@' before exponent, not `e'. + + * make.bat: Update from Makefiles. + +Thu Apr 18 01:22:05 1996 Torbjorn Granlund + + * mpf/set_str.c: If parameter `base' is negative, expect exponent + to be decimal, otherwise in the same base as the mantissa. + +Wed Apr 17 17:28:36 1996 Torbjorn Granlund + + * mpf/set_dfl_prec.c: Don't return anything. + * gmp.h: Corresponding changes. + + * mpf/set_dfl_prec.c: Use `unsigned long int' for bit counts. + * mpf/init2.c: Likewise. + * mpf/get_prc.c: Likewise. + * mpf/set_prc.c: Likewise. + * mpf/set_prc_raw.c: Likewise. + * mpz/popcount.c: Likewise. + * mpz/hamdist.c: Likewise. + * mpz/scan1.c: Likewise. + * mpz/scan0.c: Likewise. + * mpn/generic/popcount.c: Likewise. + * mpn/generic/hamdist.c: Likewise. + * mpn/generic/scan1.c: Likewise. + * mpn/generic/scan0.c: Likewise. + * gmp.h: Likewise. + + * mpf/eq.c: New file, based on mpf/diff.c. + * mpf/diff.c: Delete. + * mpf/Makefile.in: Corresponding changes. + * gmp.h: Likewise. + + * mpf/reldiff.c: New file. + * mpf/Makefile.in: Compile it. + * gmp.h: Declare mpf_reldiff. + + * mpz/iset_d.c: New file. + * mpz/Makefile.in: Compile it. + * gmp.h: Declare mpz_init_set_d. + +Tue Apr 16 16:28:31 1996 Torbjorn Granlund + + * Makefile.in (gmp.html): Pass -acc to texi2html. + +Mon Apr 15 16:20:24 1996 Torbjorn Granlund + + * mpf/set_str.c: Switch off code for defaulting the base from the + leading characters. + + * gmp.h (mp?_sign): Delete. + (mp?_sgn): New macros. + +Fri Apr 12 17:23:33 1996 Torbjorn Granlund + + * Makefile.in (gmp.dvi): Delete tmp.* at end of rule. + +Wed Apr 10 22:52:02 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) + + * mpf/random2.c: Change of `exp' param, mp_size_t => mp_exp_t. + * gmp.h: Corresponding change. + + * gmp.h (mp_bits_per_limb): Make it const. + +Sat Mar 30 01:20:23 1996 Torbjorn Granlund + + * configure.in: Re-enable recognition of with_gcc. + + * mpf/Makefile.in (.c.o): Pass XCFLAGS. + * mpn/Makefile.in (.c.o): Likewise. + * mpz/Makefile.in (.c.o): Likewise. + * mpq/Makefile.in (.c.o): Likewise. + * mpbsd/Makefile.in (.c.o): Likewise. + * mpf/tests/Makefile.in (.c.o): Likewise. + * mpz/tests/Makefile.in (.c.o): Likewise. + * mpq/tests/Makefile.in (.c.o): Likewise. + + * Makefile.in (XCFLAGS): Default to empty. + (FLAGS_TO_PASS): Pass on XCFLAGS. + (.c.o): Pass XCFLAGS. + + * config/mt-m88110 (XCFLAGS): Define instead of CC. + * config/mt-sprc8-gcc (XCFLAGS): Likewise. + * config/mt-supspc-gcc (XCFLAGS): Likewise. + + * configure: Don't default CC to "gcc -O2" is -with-gcc=no was + specified. + +Mon Mar 25 01:07:54 1996 Torbjorn Granlund + + * urandom.h: Test for __SVR4 in addition to __svr4__. + + * mp_bpl.c (mp_bits_per_limb): Declare as `const'. + + * Makefile.in (CFLAGS): `-O2' => `-O'. + * mpn/Makefile.in (CFLAGS): Likewise. + + * gmp-impl.h: Get rid of obsolete field access macros. + + * mpn/mp_bases.c (__mp_bases): 1e39 => 1e38 to work around Solaris + cc compiler bug. + + * gmp.h (__MPN): Make it work also for non-ANSI compilers. + +Thu Mar 21 01:07:54 1996 Torbjorn Granlund + + * mpf/sub.c: New special case for ediff <= 1 before generic code. + Simplify generic code for ediff == 0. + Rename uexp => exp. + +Mon Mar 11 18:24:57 1996 Torbjorn Granlund + + * mpf/tests/*.c: Use ref_mpf_sub for error calculation. + * mpf/tests/Makefile.in: Link ref.o to all executables. + + * mpf/tests/t-sub.c: Make u = v + 1 with 50% probability. + +Sun Mar 10 21:03:17 1996 Torbjorn Granlund (tege@tiny.matematik.su.se) + + * mpf/get_str.c: In digit development loop for fractions, change + loop condition from `<' to `<='. + +Thu Mar 7 04:58:11 1996 Torbjorn Granlund + + * mpn/mp_bases.c (__mp_bases): 1e100 => 1e39 to avoid overflow warning. + +Wed Mar 6 01:10:42 1996 Torbjorn Granlund + + * mpf/tests/t-sqrt.c: New file. + * mpf/tests/Makefile.in: Corresponding changes. + + * mpf/sqrt.c: Special case for square root of zero. + + * mpq/add.c: Clean up variable names. + * mpq/sub.c: Update from mpq/add.c. + + * mpz/divexact.c: abs => ABS. + * mpz/gcd.c: Likewise. Rewrite final fixup code, to decrease + allocation. Misc cleanups. + +Tue Mar 5 22:24:56 1996 Torbjorn Granlund + + * mpn/configure.in: Recognize linuxoldld as a synonym for linuxaout. + + * gmp.h (mpn_add, mpn_add_1, mpn_sub, mpn_sub_1): Add prototypes. + + * mpn/configure.in: Use t-freebsd also for netbsd. + +Mon Mar 4 15:13:28 1996 Torbjorn Granlund + + * mpq/Makefile.in (cmp.o): Depend on longlong.h. + + * mpq/equal.c: New file. + * mpq/Makefile.in: Corresponding changes. + + * mpf/tests/t-add.c: New file. + * mpf/tests/t-sub.c: Renamed from t-addsub.c. + * mpf/tests/ref.c: New file. + * mpf/tests/Makefile.in: Corresponding changes. + + * gmp-impl.h (SIZ, ABSIZ, PTR, EXP, PREC, ALLOC): New #defines. + +Sun Mar 3 07:45:46 1996 Torbjorn Granlund + + * mpf/set_str.c: In exponentiation code, allocate 3 extra + limbs, not just 2. + + * mpf/get_str.c: Allocate sufficient space for tstr. + When calculating exp_in_base, round result down. + + * mpf/tests/t-conv.c: New file. + * mpf/tests/Makefile.in: Corresponding changes. + + * mp_bpl.c: New file. + * gmp.h: Declare it. + * Makefile.in: Corresponding changes. + +Sat Mar 2 06:27:56 1996 Torbjorn Granlund + + * mpf/set_prc_raw.c: New file. + * mpf/set_prc.c: Renamed from set_prec.c. + * mpf/get_prc.c: New file. + * mpf/Makefile.in: Corresponding changes. + * gmp.h: Declare new functions. + + * mpn/generic/gcdext.c: Add copyright header. + +Fri Mar 1 01:22:24 1996 Torbjorn Granlund + + * mpn/configure.in: For ppc601, search "power" before "powerpc32". + + * mp?/Makefile.in (AR_FLAGS): New variable. + (libmp?.a): Use it. + + * make.bat: New file. + * mpn/msdos: New directory. + * mpn/msdos/asm-syntax.h: New file. + + * mpn/Makefile.in (distclean maintainer-clean): Delete asm-syntax.h. + + * config.sub: Recognize [ctj]90-cray. + + * mpn/configure.in: Recognize [ctj]90-cray-unicos*. + + * mpn/generic/gcdext.c: Don't use alloca directly, use TMP_* macros. + + * mpn/generic/gcd.c: Split increment from use of USIZE to avoid + undefined behaviour. + +Thu Feb 29 04:11:24 1996 Torbjorn Granlund + + * Makefile.in (install-info-files): Update for new install-info + behaviour. + + * mpn/power/add_n.s: Rewrite. + * mpn/power/sub_n.s: Rewrite. + +Wed Feb 28 01:34:30 1996 Torbjorn Granlund + + * mpz/pow_ui.c: Compute allocation more aggressively for small bases. + * mpz/ui_pow_ui.c: Likewise. + + * mpn/mp_bases.c (__mp_bases): Put huge value in 2nd field for index 1. + + * mpn/generic/sqrtrem.c: sizeof (mp_limb_t) => BYTES_PER_MP_LIMB. + * mpn/generic/gcd.c: Likewise. + (SIGN_BIT): Compute differently. + +Mon Feb 26 00:07:36 1996 Torbjorn Granlund + + * All files: mp_limb => mp_limb_t, mp_limb_signed => mp_limb_signed_t. + + * Makefile.in (install, install-bsdmp, install-info-files): Depend + on installdirs. chmod all installed files. + +Sun Feb 25 01:47:41 1996 Torbjorn Granlund + + * mpbsd/configure.in: Delete debugging code. + + * All Makefile.in: Update clean targets. + + * Makefile.in (AR_FLAGS): New variable. + (libgmp.a): Use it. + (libmp.a): Likewise. + + * VERSION: Delete file. + + * Makefile.in (installdirs): New target. + * mkinstalldirs: New file (from the texinfo package). + + * Makefile.in (INSTALL, INSTALL_DATA, INSTALL_PROGRAM): New variables. + (MAKEINFO, MAKEINFOFLAGS, TEXI2DVI): New variables. + (install-info): New target. + (install, install-bsdmp): Depend on install-info. + ($(srcdir)/gmp.info): Changed from plain gmp.info; put info files + into source directory. + (distclean, mostlyclean): New targets. + (maintainer-clean): New name for realclean. + (uninstall): New target. + (TAGS): New target. + (info, dvi): New targets. + (.PHONY): Assign. + + * Makefile.in (install, install-bsdmp): Use INSTALL_DATA. + + * mp{n,z,f,bsd}/move-if-change: Delete. + + * mpbsd/Makefile.in (stamp-stddefh): Delete target. + + * Makefile.in (.c.o): Pass CFLAGS last. + * mpbsd/Makefile.in (.c.o): Likewise. + * mpf/Makefile.in (.c.o): Likewise. + * mpq/Makefile.in (.c.o): Likewise. + * mpz/Makefile.in (.c.o): Likewise. + * mpn/Makefile.in (.c.o): Likewise. + (.S.o): Likewise. + + * memory.c: Change allocation error message. + + * Makefile.in (install): Prefix gmp.h with $(srcdir). + (install-bsdmp): Prefix mp.h with $(srcdir). + + * mp{n,z,f,bsd}/{configure,config.sub}: Delete. + + * Makefile.in (gmp.dvi): Set TEXINPUTS also for 2nd tex invocation + (install targets): Install gmp.info-N. + +Sat Feb 24 03:36:52 1996 Torbjorn Granlund + + * mpf/get_str.c: Fix typo. + + * mpz/legendre.c: Clarify expression with extra parens. + + * version.c (gmp_version): Not static. + + * mpf/iset_str.c: Properly return error code. + + * mpf/add.c: Delete unused variables. + * mpf/inp_str.c: Likewise. + * mpq/get_d.c: Likewise. + + * mpn/generic/dump.c: #include . + * mpf/dump.c: Likewise. + * mpf/set_str.c: #include . + (strtol): Declare. + + * gmp.h: mpn_sqrt => mpn_sqrtrem. + + * Makefile.in (clean, realclean): Clean in mpbsd. + (check): Test in mpf. + + * mpf/Makefile.in (clean): Clean in tests. + * mpq/Makefile.in (clean): Clean in tests. + + * mpf/tests/Makefile.in: New file. + * mpf/tests/configure.in: New file. + * mpf/tests/t-addsub.c: New file. + + * mpf/sub_ui.c: Simply call mpf_sub for now. + + * mpf/sub.c: Increase prec by 1. + * mpf/ui_sub.c: Likewise. + +Fri Feb 23 00:59:54 1996 Torbjorn Granlund + + * mpf/ui_sub.c: Fix typos. + + * mpf/get_str.c: When allocating space for tmp, allow for an extra + limb. In code for fraction conversion, add special case for bases + that are a power of 2. + + * mpf/out_str.c: Output leading "0.". + Default base to 10, before computing string allocation. + + * mpf/get_str.c: Make variables for string size have type size_t. + * gmp.h: Corresponding change. + + * mpf/random2.c: Allow creation of prec+1 large mantissas. + + * mpf/add_ui.c: Don't abort if u < 0; special case for u <= 0. + Fix typo in MPN_COPY offset. + * mpf/sub_ui.c: Analogous changes. + + * mpf/set_prec.c: Rewrite. + + * mpf/init2.c: Compute precision as in set_prec.c. + + * mpf/div_2exp.c: Special case for u == 0. + * mpf/mul_2exp.c: Likewise. Write r->_mp_size always. + + * mpf/sqrt_ui.c: mpn_sqrt => mpn_sqrtrem. + * mpf/sqrt.c: Likewise. When computing new exponent, round quotient + towards -infinity. + + * mpf/add.c: Fix typos. + * mpf/sub.c: Fix typos. + +Thu Feb 22 00:24:48 1996 Torbjorn Granlund + + * mpz/Makefile.in (stamp-stddefh): Delete target. + (test): Delete target. + * Makefile.in (stamp-stddefh): Delete target. + (cre-stddefh.o): Delete target. + (gmp.dvi): Set TEXINPUTS before invoking tex. + + * cre-stddefh.c: Delete. + + * mpz/sqrt.c: Fix typo. + + * mpz/powm.c: Special case for mod == 0. + * mpz/powm_ui.c: Likewise. + + * mpz/get_si.c: Handle -0x80000000 correctly. + + * mpz/inp_str.c: Now returns size_t. + Make it return number of bytes read or error indication. + * mpf/inp_str.c: Likewise. + + * mpz/out_raw.c: Replace by mpz/out_binary.c, with modifications. + * mpz/inp_raw.c: Rewrite, using mpz/inp_binary as a base. + * mpz/inp_binary.c: Delete. + + * mpn/Makefile.in (XCFLAGS): Remove variable. + (.c.o): Don't pass XCFLAGS. + (SFLAGS): Set to nothing. + (.S.o): Pass SFLAGS, not XCFLAGS. + + * mpn/config/t-freebsd (SFLAGS): New name for XCFLAGS. + + * mpf/out_str.c: Make return number of bytes written or error + indication. + * mpz/out_str.c: Likewise. + * gmp.h: Corresponding changes. + + * gmp.h (__mpz_struct): mp_size_t => int. + (__mpq_struct): Likewise. + (__mpf_struct): Likewise. + (mp_size_t): int => long int. + + * mpn/cray: New directory. + * mpn/cray/gmp-mparam.h: New file. + * mpn/configure.in: Recognize cray variants. + + * Makefile.in: Set defaults for prefix, libdir, etc. + (install): New target. + (install-bsdmp): New target. + (gmp.html): New target. + + * stack-alloc.c (__tmp_alloc): Cast void ptrs to char * in comparison. + +Wed Feb 21 04:35:02 1996 Torbjorn Granlund + + * gmp.h: Sort mpn declarations. + (mpn_gcdext): Add declaration. + + * mpn/generic/divrem_1.c: New file. + * mpn/Makefile.in (divrem_1.o): New rule. + * configure.in (functions): Add divrem_1. + + * mpn/generic/divmod.c: Delete file. + * mpn/configure.in (functions): Delete divmod. + * Makefile.in (divmod.o): Delete rule. + * gmp.h (mpn_divmod): New #define. + + * gmp.h (mpn_next_bit_set): Delete spurious declaration. + + * mpn/generic/divrem.c (default case): In code assigning + most_significant_q_limb, move reassignment of n0 into if statement. + + * gmp.h (mpf_inp_str): Fix typo. + (mpf_out_str): Make prototype match reality. + * mpf/inp_str.c: New file. + * mpf/out_str.c: New file. + * mpf/Makefile.in: Compile new files. + + * mpn/Makefile.in (dump.o): Fix dependency path. + (inlines.o): Likewise. + + * mpn/configure.in: Make m68060 be the same as m68000. Clean up + m68k configs. + +Tue Feb 20 01:35:11 1996 Torbjorn Granlund + + * mpn/generic/sqrtrem.c: Renamed from sqrt. + * mpn/configure.in (functions): Corresponding change. + * mpn/Makefile.in: Likewise. + * mpz/sqrtrem.c: Likewise. + * mpz/sqrt.c: Likewise. + * mpn/generic/perfsqr.c: Likewise. + + * Makefile.in (clean): Also remove libmp.a. + Don't compile cre-conv-tab.c or mp_bases.c. + cre-conv-tab.c: Delete file. + (gmp.ps): New rule. + + * mpn/mp_bases.c: New file. + * mpn/Makefile.in: Compile mp_bases.c. + + * mpz/set_str.c: Skip initial whitespace. + * mpf/set_str.c: Likewise. + * mpbsd/xtom.c: Likewise. + + * gmp.h: Add missing mpz declarations. + Delete all formal parameter names from declarations. + + * mpn/Makefile.in: Add dependencies for .c files. + + * Makefile.in (check): Write recursive make calls separately, not as + a loop. + (FLAGS_TO_PASS): New variable. Use it for most recursive makes. + +Mon Feb 19 01:02:20 1996 Torbjorn Granlund + + * mpn/Makefile.in (.S.o): Pipe cpp output to grep in order to delete + lines starting with #. + (CPP): Set to $(CC) -E to avoid gcc dependency. + + * mpn/m68k/syntax.h (moveql): Define to moveq for MIT_SYNTAX. + + * mpn/hppa/hppa1_1/pa7100/addmul_1.S: Fix typo in s1_ptr alignment + code. + * mpn/hppa/hppa1_1/pa7100/submul_1.S: Likewise. + + * gmp.h: Fix typos in #defines of recently added mpn functions. + + * mpz/inp_str.c: Skip all whitespace, not just plain space. + * mpbsd/min.c: Likewise. + + * mpn/configure.in (functions): Add gcdext. + * mpn/generic/gcdext.c: New file. + + * mpz/legendre.c: mpz_div_2exp => mpz_tdiv_q_2exp. + + * gmp.h: Surround mpn declarations with extern "C" { ... }. + + * Makefile.in (check): New target. + + * mpq/get_d.c: Update comments. Use rsize instead of dsize + N_QLIMBS + when possible. Add special case for nsize == 0. + + * gmp.h (mpq_get_d): Add declaration. + (mpq_canonicalize): Likewise. + (mpq_cmp_ui): Likewise. + (mpf_diff): Likewise. + (mpf_ui_sub): Likewise. + (mpf_set_prec): Likewise. + (mpf_random2): Likewise. + + * gmp.h (mpz_cmp_ui): New #define. + (mpz_cmp_si): New #define. + (mpq_cmp_ui): New #define. + (mpz_sign): New #define. + (mpq_sign): New #define. + (mpf_sign): New #define. + (mpq_numref): New #define. + (mpq_denref): New #define. + + * mpq/set_z.c: File deleted. + * mpq/Makefile.in: Corresponding changes. + +Sun Feb 18 01:34:47 1996 Torbjorn Granlund + + * mpbsd/sdiv.c: Use _mp_realloc, not _mpz_realloc. + + * mpz/inp_binary.c: Default stream to stdin. + * mpz/inp_str.c: Likewise. + * mpz/inp_raw.c: Likewise. + * mpz/out_binary.c: Default stream to stdout. + * mpz/out_raw.c: Likewise. + * mpz/out_str.c: Likewise. + + * mpbsd/realloc.c: New file. + * mpbsd/Makefile.in: Corresponding changes. + + * mpbsd/min.c: Rewrite (base on mpz/inp_str.c). + * mpbsd/mtox.c: Rewrite (base on mpz/get_str.c). + + * mpbsd/mout.c: Rewrite (base on mpz/out_str) but make it output + spaces in each 10th position. + * mpbsd/xtom.c: Rewrite (base on mpz/set_str). + + * mpq/tests/Makefile.in (st-cmp): New file. + * mpq/tests/configure.in (srcname): New file. + + * mpz/tests/configure.in (srcname): Fix typo. + + * mpq/cmp.c: Add check using number of significant bits, to avoid + general multiplication. + +Sat Feb 17 11:58:30 1996 Torbjorn Granlund + + * mpq/cmp_ui.c: Store cy_limb after the mpn_mul_1 calls. + + * mpq/tests: New directory. + * mpq/tests/t-cmp.c: New file. + * mpq/tests/t-cmp_ui.c: New file. + + * mpz/tests/dive.c (main): Generate zero numerator. + (get_random_size) : Delete. + + * mpz/divexact.c: Add special case for 0/x. + + * gmp.h (mpz_mod): Add declaration. + +Fri Feb 16 18:18:39 1996 Andreas Schwab + + * mpn/m68k/*: Rewrite code not to use the INSN macros. + (L): New macro to properly prefix local labels for ELF. + +Fri Feb 16 00:20:56 1996 Torbjorn Granlund + + * gmp-impl.h (ieee_double_extract): Use plain `unsigned int' for + fields. + * mpn/generic/inlines.c (_FORCE_INLINES): New #define. Delete + conditional __GNUC__. + * gmp.h (mpn_add, mpn_sub, mpn_add_1, mpn_sub_1): + Only define these if __GNUC__ || _FORCE_INLINES. + * mpf/random2.c: Add missing parameter in non-ANSI header. + * mpn/generic/gcd.c (SIGN_BIT): Do as #define to work around bug + in AIX compilers. + * mpq/get_d.c: #define N_QLIMBS. + * mpz/divexact.c: Obscure division by 0 to silent compiler warnings. + * stack-alloc.c: Cast void* pointer to char* before doing arithmetic + on it. + + * Makefile.in (mpbsd/libmpbsd.a): New rule. + * configure.in (configdirs): Add mpbsd. + + * gmp.h: Add declarations for a few missing mpn functions. + + * Makefile.in (libmp.a): New rule. + + * mpbsd/mdiv.c: #include "dmincl.c", not "mpz_dmincl.c" + * gmp.h: Move #define of __GNU_MP__ into the `#if __GNU_MP__' block. + * mp.h: Likewise. Update typedefs from gmp.h. + * mpbsd/configure.in: New file. + * mpbsd/Makefile.in: New file. + * mpbsd/configure: Link to master configure. + * mpbsd/config.sub: Link to master config.sub. + + * Makefile.in: Set RANLIB_TEST. + * (libgmp.a): Use it. + * (libgmp.a): Do ranlib before moving the libgmp.a to the build + directory. + * mp?/Makefile.in: Don't use or set RANLIB. + +Thu Feb 15 16:38:41 1996 Torbjorn Granlund + + * mpz/add_ui.c: MP_INT => mpz_t. + * mpz/cmp_ui.c: Likewise. + * mpz/fac_ui.c: Likewise. + * mpz/inp_binary.c: Likewise. + * mpz/inp_raw.c: Likewise. + * mpz/legendre.c: Likewise. + * mpz/jacobi.c: Likewise. + * mpz/out_binary.c: Likewise. + * mpz/out_raw.c: Likewise. + * mpz/random2.c: Likewise. + * mpz/random.c: Likewise. + * mpz/realloc.c: Likewise. + + * mpz/legendre.c: __mpz_2factor(X) => mpz_scan1(X,0), + __mpz_odd_less1_2factor => mpz_scan1(X,1). + * mpz/ntsup.c: File deleted. + * mpz/Makefile.in: Corresponding changes. + + * mpz/pprime_p: Use mpz_scan1 to avoid looping. + + * mpz/fac_ui.c: Type of `k' and `p' is `unsigned long'. + * mpz/pprime_p.c: Pass long to *_ui functions. + * mpz/gcdext.c: Likewise. + * mpz/fdiv_r_2exp.c: Likewise. + * mpz/fac_ui.c: Likewise. + + * mpz/powm.c: Don't use mpn_rshift when mod_shift_cnt is 0. + + * mpz/tests/Makefile.in (st-sqrtrem): Fix typo. + + * mpz/cmp_ui.c: #undef mpz_cmp_ui. + * mpz/cmp_si.c: #undef mpz_cmp_si. + * gmp.h (mpz_cmp_ui): New #define. + (mpz_cmp_si): New #define. + +Wed Feb 14 22:11:24 1996 Torbjorn Granlund + + * gmp.h: Test __cplusplus in addition to __STDC__. + * gmp-impl.h: Likewise. + + * gmp.h: Surround declarations with extern "C" { ... }. + +Tue Feb 13 15:20:45 1996 Torbjorn Granlund + + * mpz/fdiv_r_2exp.c: Use MPN_NORMALIZE. + * mpz/tdiv_r_2exp.c: Likewise. + + * mpz/fdiv_r_2exp.c: New file. + * mpz/fdiv_q_2exp.c: New file. + * mpz/tdiv_r_2exp.c: Renamed from mpz/mod_2exp.c. + * mpz/tdiv_q_2exp.c: Renamed from mpz/div_2exp.c + * mpz/Makefile.in: Corresponding changes. + + * mpz/scan0.c,scan1.c: New files. + * mpz/Makefile.in: Compile them. + + * gmp.h (mpn_normal_size): Delete. + + * config.guess: Update from Cygnus version. + + * mpn/m68k/rshift.S: Use INSN2 macro for lea instructions. + * mpn/m68k/lshift.S: Likewise. + + * mpn/configure.in: Fix configuration for plain 68000. + +Mon Feb 12 01:06:06 1996 Torbjorn Granlund + + * mpz/tests/t-powm.c: Generate negative BASE operand. + + * mpz/powm.c: Make result always positive. + +Sun Feb 11 01:44:56 1996 Torbjorn Granlund + + * mpz/tests/*.c: Add t- prefix. + * mpz/tests/Makefile.in: Corresponding changes. + * mpz/tests/configure.in: Update srctrigger. + + * mpz/tests/gcd.c: Generate negative operands. + * mpz/tests/gcd2.c: Likewise. + + * mpz/gcdext.c: At end, if G is negative, negate all G, S, and T. + +Thu Feb 8 17:16:12 UTC 1996 Ken Weber + + * mp{z,n}/gcd.c: Change mpn_gcd interface. + * gmp.h: Ditto. + * gmp.texi: update documentation. + +Mon Feb 7 23:58:43 1996 Andreas Schwab + + * mpn/m68k/{lshift,rshift}.S: New files. + * mpn/m68k/syntax.h: New ELF_SYNTAX macros. + (MEM_INDX, R, PROLOG, EPILOG): New macros. + * mpn/m68k/*.S: Use R macro with register name. Use PROLOG and EPILOG + macros. Rename `size' to `s_size' or s1_size to avoid clash with ELF + .size directive. + * mpn/configure.in: New target m68k-*-linux*. + +Wed Feb 7 07:41:31 1996 Torbjorn Granlund + + * Makefile.in (cre-conv-tab): Workaround for SunOS make. + + * mpz/tests/reuse.c: New file. + * mpz/tests/Makefile.in: Handle reuse.c. + +Tue Feb 6 11:56:24 UTC 1996 Ken Weber + + * mpz/gcd.c: Fix g->size when one op is 0 and g == other op. + +Tue Feb 6 01:36:39 1996 Torbjorn Granlund + + * gmp.h (mpz_divexact): Delete parameter names. + (mpz_lcm): Delete spurious declaration. + + * mpz/dmincl.c: Fix typo. + +Mon Feb 5 01:11:56 1996 Torbjorn Granlund + + * mpn/generic/gcd.c (gcd_2): Declare consistently. + + * mpz/tdiv_q.c: Optimize division by a single-limb divisor. + * mpz/dmincl.c: Likewise. + + * mpz/add.c: Use MPN_NORMALIZE instead of mpn_normal_size. + * mpz/sub.c: Likewise. + * mpn/generic/sqrt.c: Likewise. + + * mpn/tests/{add_n,sub_n,lshift,rshift}.c: Put garbage in the + destination arrays. + +Fri Feb 2 02:21:27 1996 Torbjorn Granlund + + * mpz/{jacobi.c,legendre.c,ntsup.c,invert.c}: New files. + * mpz/Makefile.in: Compile them. + + * mpn/Makefile.in (INCLUDES): Don't search in `generic'. + +Thu Feb 1 02:15:11 1996 Torbjorn Granlund + + Change from Ken Weber: + * mpz/divexact.c: Make it work when quot is identical to either input. + + * mpf/ui_sub.c: New file. + * mpf/Makefile.in: Compile it. + + * gmp-impl.h (MPZ_TMP_INIT): alloca -> TMP_ALLOC. + * mpz/{c,f}div_{q,qr,r}.c: Use TMP_DECL/TMP_MARK/TMP_FREE since + these use MPZ_TMP_INIT. + * mpz/mod.c: Likewise. + * mpq/{add,sub}.c: Likewise. + * mpq/canonicalize: Likewise. + + * mpq/{add,sub,mul,div}.c: Use mpz_divexact. MP_INT -> mpz_t. + * mpq/canonicalize.c: Likewise. + +Wed Jan 31 01:45:00 1996 Torbjorn Granlund + + * mpn/generic/gcd.c: Misc changes from Ken. + + * mpz/tests/gcd2.c: New file. + * mpz/tests/Makefile.in: Handle gcd2.c. + + * mpn/generic/gcd.c (mpn_gcd): When GCD == ORIG_V, return vsize, + not orig_vsize. Fix parameter declaration. + + * mpz/mod_ui.c: Delete file. + * mpz/Makefile.in: Don't try to compile mod_ui. + + * mpz/cdiv_*_ui.c): Make them work right. + * gmp.h: Declare cdiv*. + +Tue Jan 30 02:22:56 1996 Torbjorn Granlund + + * mpz/{cdiv_q.c,cdiv_q_ui.c,cdiv_qr.c,cdiv_qr_ui.c,cdiv_r.c, + cdiv_r_ui.c,cdiv_ui.c}: New files. + * mpz/Makefile.in: Compile them. + + * All files: Make file permissions right. + + Changes from Ken Weber: + * mpn/generic/accelgcd.c: Delete. + * mpn/generic/bingcd.c: Delete. + * mpn/generic/numbits.c: Delete. + * mpn/generic/gcd.c: New file. + * mpn/configure.in (functions): Update accordingly. + * mpz/divexact.c: New file. + * mpz/Makefile.in: Compile divexact.c. + * mpz/gcd.c: Rewrite to accommodate for gcd changes in mpn. + * gmp.h: declare new functions, delete obsolete declarations. + * mpz/tests/dive.c: New file. + * mpz/tests/Makefile.in: Handle dive.c. + +Mon Jan 29 03:53:24 1996 Torbjorn Granlund + + * mpz/random.c: Handle negative SIZE parameter. + + * mpz/tests/tdiv(_ui).c: New name for tst-dm(_ui).c. + * mpz/tests/tst-mdm(_ui).c: Delete. + * mpz/tests/fdiv(_ui).c: New test based in tst-mdm(_ui). + * mpz/tests/*.c: Get rid of tst- prefix for DOS 8+3 naming. + * mpz/tests/Makefile.in: Corresponding changes. + * mpz/tests/configure.in: Update srctrigger. + + * mpn/generic/divmod.c: Update from divrem. + * mpn/generic/divrem.c: Misc cleanups. + +Sun Jan 28 03:25:08 1996 Torbjorn Granlund + + * All files: Use new TMP_ALLOC interface. + + * mpz/powm_ui.c: Make Jan 25 changes to powm.c also here. + + * mpz/tests/powm_ui.c: New file. + * mpz/tests/Makefile.in: Add rules for tst-powm and tst-powm_ui. + + * Makefile.in: Update dependency list. + * mpf/Makefile.in: Likewise. + * mpz/Makefile.in: Likewise. + * mpq/Makefile.in: Likewise. + * Makefile.in: Set RANLIB simply to ranlib, and allow configure + to override it. + + * mpz/Makefile.in (conf): Delete spurious target. + (mp_bases.c): Delete. + (cre-conv-tab rules): Delete. + + * Makefile.in (cre-conv-tab): Greatly simplify. + +Sat Jan 27 13:38:15 1996 Torbjorn Granlund + + * stack-alloc.c: New file. + * stack-alloc.h: New file. + + * gmp.h (__gmp_inline): Define using __inline__. + +Thu Jan 25 00:28:37 1996 Torbjorn Granlund + + * mpn/generic/scan0.c: New file. + * mpn/generic/scan1.c: Renamed from next_bit.c. + * mpn/configure.in (functions): Include scan0 and scan1. + + * mpn/m68k/*: #include sysdep.h. Use C_GLOBAL_NAME. + + * configure: Update from Cygnus version. + * config.guess: Likewise. + * config.sub: Likewise. + * configure: Pass --nfp to recursive configures. + + * mpz/tests/tst-*.c: Adjust SIZE and reps. + + * mpz/powm.c: Move esize==0 test earlier. + In final reduction of rp,rsize, don't call mpn_divmod unless + reduction is really needed. + + * mpz/tests/tst-powm.c: Fix thinko in checking code. + + * All files: Get rid of `__' prefix from mpn_* calls and declarations. + * gmp.h: #define __MPN. + * gmp.h: Use __MPN in #defines for mpn calls. + + * mpn/generic/mul_n.c: Prepend `i' to internal routines. + * gmp-impl.h: Add #defines using __MPN for those internal routines. + + * mpn/generic/sqrt.c: Change call to mpn_mul to mpn_mul_n. + +Wed Jan 24 13:28:19 1996 Torbjorn Granlund + + * mpn/sparc32/udiv_fp.S: New name for udiv_qrnnd.S. + * mpn/sparc32/udiv_nfp.S: New name for v8/udiv_qrnnd.S. + * mpn/sparc32/v8/supersparc: New directory. + * mpn/sparc32/v8/supersparc/udiv.S: New file. + +Tue Jan 23 01:10:11 1996 Torbjorn Granlund + + This major contribution is from Ken Weber: + * mpn/generic/accelgcd.c: New file. + * mpn/generic/bdivmod.c: New file. + * mpn/generic/bingcd.c: New file. + * mpn/generic/gcd_1.c: Rewrite. + * mpn/generic/numbits.c: New file (to go away soon). + * mpz/gcd.c: Rewrite. + * mpz/tests/tst-gcd.c (SIZE): Now 128. + * gmp.h: Declare new functions. + * mpn/configure.in (functions): List new files. + * gmp-impl.h (MPN_SWAP): Delete. + (MPN_LESS_BITS_LIMB, MPN_LESS_BITS, MPN_MORE_BITS): Delete. + (MPN_COMPL_INCR, MPN_COMPL): Delete. + +Mon Jan 22 02:04:59 1996 Torbjorn Granlund + + * gmp.h (mpn_name): New #define. + + * mpn/m88k/mc88110/addmul_1.s: New file. + * mpn/m88k/mc88110/add_n.S: New file. + * mpn/m88k/mc88110/sub_n.S: New file. + + * mpn/m88k/sub_n.s: Correctly initialize carry. + + * mpn/sparc32/{add_n.S,sub_n.S,lshift.S,rshift.S): `beq' => `be'. + +Sun Jan 21 00:04:35 1996 Torbjorn Granlund + + * mpn/sparc64/addmul_1.s: New file. + * mpn/sparc64/submul_1.s: New file. + * mpn/sparc64/rshift.s: New file. + +Sat Jan 20 00:32:54 1996 Torbjorn Granlund + + * mpz/iset.c: Fix typo introduced Dec 25. + +Wed Jan 17 13:16:44 1996 Torbjorn Granlund + + * config/mt-sprc8-gcc: New name for mt-sparc8-gcc. + * config/mt-sparcv8-gcc: Delete. + * configure.in: Corresponding changes. + +Tue Jan 16 16:31:01 1996 Torbjorn Granlund + + * gmp-impl.h: #include alloca.h when necessary. + + * longlong.h: Test __alpha instead of __alpha__, since the former + is the standard symbol. + +Mon Jan 15 18:06:57 1996 Torbjorn Granlund + + * mpn/sparc64/mul_1.s: Swap operands of mulx instructions. + * mpn/sparc64/lshift.s: New file. + +Fri Dec 29 17:34:03 1995 Torbjorn Granlund + + * mpn/x86/pentium/add_n.S: Get rid of #defines for register names. + * mpn/x86/pentium/sub_n.S: Likewise. + +Thu Dec 28 03:16:57 1995 Torbjorn Granlund + + * mpn/x86/pentium/mul_1.S: Rework loop to avoid AGI between update + of loop induction variable and load insn at beginning of loop. + * mpn/x86/pentium/addmul_1.S: Likewise. + * mpn/x86/pentium/submul_1.S: Likewise. + +Mon Dec 25 23:22:55 1995 Torbjorn Granlund + + * All files: Prefix user-visible structure fields with _mp_. + +Fri Dec 22 20:42:17 1995 Torbjorn Granlund + + * mpn/configure.in (m68k configs): Terminate path variable with + plain "m68k". + +Fri Dec 22 03:29:33 1995 Torbjorn Granlund + + * mpn/sparc32/add_n.S: Update from sub_n.S to fix bugs, and to + clean things up. + + * mpn/configure.in (m68k configs): Update #include path for new + mpn directory organization. + +Tue Dec 12 02:53:02 1995 Torbjorn Granlund + + * gmp.h: Prefix all structure field with _mp_. + * gmp-impl.h: Define access macros for these fields. + +Sun Dec 10 00:47:17 1995 Torbjorn Granlund + + * mpn/alpha/addmul_1.s: Prefix labels with `.'. + * mpn/alpha/submul_1.s: Likewise. + * mpn/alpha/[lr]shift.s: Likewise. + * mpn/alpha/udiv_qrnnd.S: Likewise. + * mpn/alpha/ev5/[lr]shift.s: Likewise. + + * mpn/alpha/ev5/lshift.s: Fix typos. + +Fri Dec 1 14:28:20 1995 Torbjorn Granlund + + * mpn/Makefile.in (.SUFFIXES): Define. + +Wed Nov 29 23:11:57 1995 Torbjorn Granlund + + * mpn/sparc64/{add_n.s, sub_n.s}: New files. + +Tue Nov 28 06:03:13 1995 Torbjorn Granlund + + * mpn/x86/syntax.h: Handle ELF_SYNTAX. + Rename GAS_SYNTAX => BSD_SYNTAX. + + * mpn/configure.in: Handle linuxelf and SysV for x86 variants. + +Mon Nov 27 01:32:12 1995 Torbjorn Granlund + + * mpn/hppa/hppa1_1/pa7100/submul_1.S: New file. + +Sun Nov 26 04:30:47 1995 Torbjorn Granlund + + * mpn/hppa/hppa1_1/pa7100/addmul_1.S: New file. + + * mpn/sparc32/add_n.S: Rewrite to use 64 bit loads/stores. + * mpn/sparc32/sub_n.S: Likewise. + +Fri Nov 17 00:18:46 1995 Torbjorn Granlund + + * mpn/configure.in: Handle m68k on NextStep. + +Thu Nov 16 02:30:26 1995 Torbjorn Granlund + + * mpn: Reorganize machine-specific directories. + * mpn/configure.in: Corresponding changes. + (sh, sh2): Handle these. + (m68k targets): Create asm-syntax.h. + +Thu Nov 9 02:20:50 1995 Torbjorn Granlund + + * mpn/generic/mul_n.c (____mpn_sqr_n): Delete code that calls abort. + (____mpn_mul_n): Likewise. + +Tue Nov 7 03:25:12 1995 Torbjorn Granlund + + * mpf/get_str.c: In exponentiation code (two places), don't swap + input and output areas when calling mpn_mul_1. + * mpf/set_str.c: Likewise. + +Fri Nov 3 02:35:58 1995 Torbjorn Granlund + + * mpf/Makefile.in: Make sure all objects are listed in dependency list; + delete spurious entries. + + * mpf/mul.c: Handle U or V being 0. Allow prec+1 for result precision. + + * mpf/set_prec.c: New computation of limb precision. + * mpf/set_dfl_prec.c: Likewise. + + * mpf/random2.c: Fix typo computing exp. + * mpf/get_str.c: In (uexp > usize) case, set n_limbs as a function of + the user-requested number of digits, n_digits. + +Thu Nov 2 16:25:07 1995 Torbjorn Granlund + + * mpn/generic/divrem.c (case 2): Don't move np vector back, it is + never read. + (default case): Put most significant limb from np in new variable n2; + decrease size argument for MPN_COPY_DECR; use n2 instead of np[dsize]. + +Wed Nov 1 02:59:53 1995 Torbjorn Granlund + + * mpn/sparc/[lr]shift.S: New files. + +Tue Oct 31 00:08:12 1995 Torbjorn Granlund + + * mpz/gcd_ui.c: Set w->size unconditionally when v is zero. + + * gmp-impl.h (assert): Delete definition. + + * mpf/sub.c: Delete all assert calls. Delete variable `cy'. + + * mpf/neg.c: Use prec+1 as precision. Optimize for when arguments + are the same. + * mpf/abs.c: Likewise. + * mpf/{set,neg,abs}.c: Make structure and variable names similar. + +Mon Oct 30 12:45:26 1995 Torbjorn Granlund + + * mpf/random2.c (random): Test __SVR4 in addition to __svr4__. + * mpn/generic/random2.c (random): Likewise. + +Sun Oct 29 01:54:28 1995 Torbjorn Granlund + + * mpf/div.c: Special handle U or V being 0. + + * mpf/random2.c: New file. + + * longlong.h (i860 rshift_rhlc): Define. + (i960 udiv_qrnnd): Define. + (i960 count_leading_zeros): Define. + (i960 add_ssaaaa): Define. + (i960 sub_ddmmss): Define. + (i960 rshift_rhlc): Define. + +Sat Oct 28 19:09:15 1995 Torbjorn Granlund + + * mpn/pentium/rshift.S: Fix and generalize condition for when to use + special code for shift by 1. + * mpn/pentium/lshift.S: Likewise. + +Thu Oct 26 00:02:56 1995 Torbjorn Granlund + + * gmp.h: #undef __need_size_t. + * mp.h: Update from gmp.h. + +Wed Oct 25 00:17:27 1995 Torbjorn Granlund + + * mpf/Makefile.in: Compile set_prec.c. + * mpf/realloc.c: Delete this file. + * mpf/Makefile.in: Delete mentions of realloc.c. + + * gmp.h (__mpf_struct): Get rid of `alloc' field. + * mpf/clear.c: Likewise. + * mpf/init*.c: Likewise. + * mpf/set_prec.c: Likewise. + * mpf/iset*.c: Likewise. + + * mpf/iset_str.c: New file. + + * mpn/configure.in: Handle pyramid. + + * mpf/set.c: Use prec+1 as precision. + + * mpf/set_prec.c: New file. + +Tue Oct 24 00:56:41 1995 Torbjorn Granlund + + * mpn/generic/divrem.c: New file. Will replace mpn/generic/divmod.c + when rest of source is converted. + * mpn/configure.in (functions): Add `divrem' + * mpn/generic/set_str.c: Never call __mpn_mul_1 with zero size. + + * mpf/get_str.c: Completely rewritten. + * mpf/add.c: Fix several problems. + * mpf/sub.c: Compare operands from most significant end until + first difference, exclude skipped limbs from computation. + Accordingly simplify normalization code. + * mpf/set_str.c: Fix several problems. + * mpf/dump.c: New file. + * mpf/Makefile.in: Compile dump.c. + * mpf/init2.c: Set prec field correctly. + +Sun Oct 22 03:02:09 1995 Torbjorn Granlund + + * cre-conv-tab.c: #include math.h; don't declare log and floor. + +Sat Oct 21 23:04:10 1995 Torbjorn Granlund + + * mpf/mul_ui.c: Handle U being 0. + +Wed Oct 18 19:39:27 1995 Torbjorn Granlund + + * mpn/generic/set_str.c: Correctly handle input like "000000000000". + Misc cleanups. + +Tue Oct 17 15:14:13 1995 Torbjorn Granlund + + * longlong.h: Define COUNT_LEADING_ZEROS_0 for machines where + appropriate. + +Mon Oct 16 19:14:43 1995 Torbjorn Granlund + + * mpf/add.c: Rewrite. + * mpf/set_str.c: New file. Needs more work. + +Sat Oct 14 00:14:04 1995 Torbjorn Granlund + + * mpf/div_2exp.c: Vastly simplify. + * mpf/mul_2exp.c: Likewise. + + * mpf/sub.c: Rewrite. + + * gmp-impl.h (udiv_qrnnd_preinv2gen): Terminate comment. + + * mpf/dump.c: Free allocated memory. + + * gmp-impl.h (assert): Define. + +Wed Oct 11 13:31:00 1995 Torbjorn Granlund + + * mpn/pentium/rshift.S: Install new code to optimize shift-by-1. + +Tue Oct 10 00:37:21 1995 Torbjorn Granlund + + * mpn/pentium/lshift.S: Install new code to optimize shift-by-1. + + * mpn/powerpc32/{lshift.s,rshift.s}: New files. + + * configure.in: Fix typo. + +Sat Oct 7 08:17:09 1995 Torbjorn Granlund + + * longlong.h (smul_ppmm): Correct type of __m0 and __m1. + +Wed Oct 4 16:31:28 1995 Torbjorn Granlund + + * mpn/configure.in: Handle alphaev5. + * mpn/ev4: New name for alpha subdir. + * mpn/ev5: New subdir. + * mpn/ev5/lshift.s: New file. + +Tue Oct 3 15:06:45 1995 Torbjorn Granlund + + * mpn/alpha/mul_1.s: Avoid static increments of pointers; use + corresponding offsets in ldq and stq instructions instead. + (Loop): Swap cmpult and stq to save one cycle on EV5. + + * mpn/tests/{add_n.s,sub_n.s,lshift.s,rshift.s,mul_1.s,addmul_1.s, + submul_1.s}: Don't check results if NOCHECK is defined. + +Mon Oct 2 11:40:18 1995 Torbjorn Granlund + + * longlong.h (mips umul_ppmm [32 and 64 bit versions]): + Make new variants, based on GCC version number, that use `l' and `h' + constraints instead of explicit mflo and mfhi instructions + +Sun Oct 1 00:17:47 1995 Torbjorn Granlund + + * mpn/mc88100/add_n.s: Decrease unrolling factor from 16 to 8. + * mpn/mc88100/sub_n.s: Likewise. + + * config/mt-m88110: New file. + * configure.in: Use it. + + * mpn/mc88110/mul_1.s: Fix thinko. + +Sat Sep 30 21:28:19 1995 Torbjorn Granlund + + * mpz/set_d.c: Declare `size' at function start. + + * experimental: New directory for mpx and mpz2. + + * mpz/tdiv_q.c: Clarify comments. + * mpz/{mod.c,mod_ui.c}: New file, for math mod function. + + * mpn/sh2/{mul_1.s,addmul_1.s,submul_1.s}: New files. + + * mpn/sh/{add_n.s,sub_n.s}: New files. + + * mpn/pyr/{add_n.s,sub_n.s,mul_1.s,addmul_1.s}: New files. + + * mpn/i960/{add_n.s,sub_n.s}: New files. + + * mpn/alpha/addmul_1.s (Loop): Move decrement of r18 to before umulh, + to save cycles on EV5. + * mpn/alpha/submul_1.s: Ditto. + * mpn/alpha/mul_1.s: Ditto. + +Thu Sep 28 02:48:59 1995 Torbjorn Granlund + + * gmp.h (mp_limb, mp_limb_signed): Define as `long long' if + _LONG_LONG_LIMB is defined. + + * longlong.h (m88110): Test __m88110__, not __mc88110__ + + * mpn/mc88110/mul_1.s: Rewrite. + +Tue Sep 26 23:29:05 1995 Torbjorn Granlund + + * config.sub: Update from current Cygnus version. + + * mpn/configure.in: Recognize canonical m88*, not mc88*. + +Fri Sep 22 14:58:05 1995 Torbjorn Granlund + + * mpz/set_d.c: New file. + * mpz/Makefile.in: Build new files. + + * mpq/get_d.c: Replace usage of scalbn with ldexp. + + * mpn/{vax,i386}/gmp-mparam.h: New files. + * gmp-impl.h (ieee_double_extract): Define here. + * mpf/set_d.c (ieee_double_extract): Not here. + +Thu Sep 21 00:56:36 1995 Torbjorn Granlund + + * longlong.h (C umul_ppmm): Use UWtype, not USItype for temps. + (udiv_qrnnd): For cases implemented with call to __udiv_qrnnd, + protect with new symbol LONGLONG_STANDALONE. + (68000 umul_ppmm): Use %# prefix for immediate constants. + +Wed Sep 20 15:36:23 1995 Torbjorn Granlund + + * mpn/generic/divmod_1.c: Handle + divisor_limb == 1 << (BITS_PER_MP_LIMB - 1) + specifically also when normalization_steps != 0. + +Mon Sep 18 15:42:30 1995 Torbjorn Granlund + + * mpq/get_d.c: New file. + +Sun Sep 17 02:04:36 1995 Torbjorn Granlund + + * longlong.h (pyr): Botch up for now. + +Sat Sep 16 00:11:50 1995 Torbjorn Granlund + + * mpn/clipper/mul_1.s: New file. + * mpn/clipper/add_n.s: New file. + * mpn/clipper/sub_n.s: New file. + * mpn/configure.in: Handle clipper*-*-*. + + * mpn/configure.in: Recognize rs6000-*-*. + +Fri Sep 15 00:41:34 1995 Torbjorn Granlund + + * mpn/alpha/add_n.s: New file. + * mpn/alpha/sub_n.s: New file. + + * mpn/mips3: New name for mpn/r4000. + * mpn/mips2: New name for mpn/r3000. + * mpn/configure.in: Corresponding changes. + + * mpn/generic/perfsqr.c (primes): Delete. + (residue_map): Delete. + +Thu Sep 14 00:07:58 1995 Torbjorn Granlund + + * mpn/r3000/sub_n.s: Fix typo. + + * dm_trunc.c: Delete spurious file. + + * mpz/out_binary.c: Fix typo. + + * mpn/configure.in (per-target): Make mips*-*-irix6* imply r4000. + + * gmp-impl.h: For sparc and sgi, include alloca.h. + + * mpn/z8000/mul_1.s: Replace `test r' with `and r,r'. Replace + `ldk r,#0' with `xor r,r'. + +Wed Sep 6 00:58:38 1995 Torbjorn Granlund + + * mpz/inp_binary.c: New file. + * mpz/out_binary.c: New file. + * mpz/Makefile.in: Build new files. + +Tue Sep 5 22:53:51 1995 Torbjorn Granlund + + * gmp.h (__mpz_struct): Change `long int' => `mp_size_t' for alloc + and size fields. + +Sat Sep 2 17:47:59 1995 Torbjorn Granlund + + * mpn/r4000/{add_n.s,sub_n.s}: Optimize away some pointer arithmetic. + * mpn/r3000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files, + derived from r4000 code. + +Fri Sep 1 05:35:52 1995 Torbjorn Granlund + + * mpn/r3000/mul_1.s: Fix typo. + + * mpn/powerpc32: Fix some old vs new mnemonic issues. + + * mpn/powerpc32/{add_n.s,sub_n.s}: New files. + * mpn/r4000/{add_n.s,sub_n.s,lshift.s,rshift.s}: New files. + +Wed Aug 30 10:43:47 1995 Torbjorn Granlund + + * mpn/r3000/mul_1.s ($LC1): Use addiu for immediate add. + * mpn/r4000/{mul_1.s,addmul_1.s,submul_1.s}: New files. + + * config.guess: Update to latest FSF revision. + +Mon Aug 28 02:18:13 1995 Torbjorn Granlund + + * mpz/out_str.c: Cast str to char * in fputs call. + + * gmp-impl.h: Define UQItype, SItype, and USItype also + when not __GNUC__. + +Fri Aug 25 01:45:04 1995 Torbjorn Granlund + + * mpn/i386/syntax.h: Renamed from asm-syntax.h. + * mpn/mc68020/syntax.h: Renamed from asm-syntax.h. + * mpn/configure.in: Corresponding changes. + +Sun Aug 13 19:20:04 1995 Torbjorn Granlund + + * mpn/generic/random2.c: Test __hpux, not hpux. + +Sat Apr 15 20:50:33 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/sparc/add_n.S: Make it work for PIC. + * mpn/sparc/sub_n.s: Likewise. + * mpn/sparc8/addmul_1.S: Likewise. + * mpn/sparc8/mul_1.S: Likewise. + * mpn/i386/add_n.S: Likewise. + * mpn/i386/sub_n.S: Likewise. + +Thu Apr 13 23:15:03 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/configure.in: Don't search power subdir for generic ppc configs. + Add some ppc cpu-specific configs. Misc clean up. + +Mon Apr 10 00:16:35 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/ui_pow_ui.c: Delete spurious code to handle negative results. + +Sun Apr 9 12:38:11 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * longlong.h (SPARC v8 udiv_qrnnd): Generate remainder in C, + not in asm. + + * mpn/generic/sqrt.c (SQRT): Test for __SOFT_FLOAT. + +Tue Mar 28 00:19:52 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/generic/hamdist.c (popc_limb): Make Mar 16 change here too. + +Fri Mar 17 23:29:22 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * longlong.h (SH umul_ppmm): Define. + +Thu Mar 16 16:40:44 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/generic/popcount.c (popc_limb): Rearrange 32 bit case + to help CSE. + +Fri Mar 10 20:03:49 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/powerpc32/mul_1.s: Clear cy before entering loop. + Rearrange loop to save a cycle. + * mpn/powerpc32/addmul_1.s: New file. + * mpn/powerpc32/submul_1.s: New file. + +Fri Feb 17 22:44:45 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/configure.in: Set target_makefile_frag for freebsd + in new case stmt. + * mpn/config/t-freebsd: New file. + * mpn/Makefile.in: Add #### for frag insertion. + (XCFLAGS): Clear by default. + (.c.o, .S.o rules): Pass XCFLAGS. + +Tue Feb 7 16:27:50 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * longlong.h (68000 umul_ppmm): Merge improvements from henderson. + +Tue Jan 24 04:23:20 1995 Torbjorn Granlund (tege@tiny.cygnus.com) + + * longlong.h (default umul_ppmm): Store input parameters in temporaries + to avoid reading them twice. + (default smul_ppmm): New definition. + +Thu Dec 29 04:20:07 1994 Jim Meyering (meyering@comco.com) + + * generic/perfsqr.c (__mpn_perfect_square_p): Remove declaration + of unused variable. + * generic/pre_mod_1.c (__mpn_preinv_mod_1): Likewise. + * mpz/powm.c (pow): Likewise. + + * mpz/and.c (mpz_and): Use {} instead of `;' for empty else clause + to placate `gcc -Wall'. + * mpz/ior.c (mpz_ior): Likewise. + +Wed Dec 28 13:31:40 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/m*68*/*.S: #include asm-syntax.h, not asm.h. + +Mon Dec 26 17:15:36 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * longlong.h: Test for more symbols, in __mc68000__ case. + + * mpn/mpn/config.sub: Recognize m68060. + * mpn/configure.in: Change mc* to m* for 68k targets. + * mpn/Makefile.in (.S.o): Delete spurious creation of temp .c file. + +Mon Dec 19 01:56:30 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * config.sub: Recognize pentium as a valid CPU. + * mpn/configure.in: Handle pentium specifically, to use new assembly + code. + +Mon Dec 19 00:13:01 1994 Jim Meyering (meyering@comco.com) + + * gmp.h: Define _GMP_H_HAVE_FILE if FILE, __STDIO_H__, or H_STDIO + is defined. + * gmp.h: test _GMP_H_HAVE_FILE instead of FILE everywhere else. + +Mon Dec 19 00:04:54 1994 Kent Boortz (boortz@sics.se) + + * Makefile.in (recursive makes): Pass CFLAGS. + +Sun Dec 18 22:34:49 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/pentium: New directory. + + * mpz/pprime.c: Make sure to mpz_clear all temporaries. + + * longlong.h: Don't use udiv instruction when SUPERSPARC is defined. + * configure.in: Handle supersparc*-. + * config/mt-supspc-gcc: New file. + * config/mt-sparc8-gcc: New name for mt-sparcv8-gcc. + +Mon Dec 12 22:22:10 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/i386/*.S: #include "asm-syntax.h", not "asm.h". + #include sysdep.h before asm-syntax.h. + + * mpn/mc68020/asm-syntax.h: #undef ALIGN before defining it. + * mpn/i386/asm-syntax.h: Likewise. + + * mpn/mc68020/asm-syntax.h: New name for asm.h. + * mpn/i386/asm-syntax.h: New name for asm.h. + +Tue Dec 6 21:55:25 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/array_init.c: Fix typo in declaration. + +Fri Nov 18 19:50:52 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/Makefile.in (.S.o): Pass CFLAGS and INCLUDES. + +Mon Nov 14 00:34:12 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/generic/random2.c (random): Test for __svr4__. + +Wed Oct 12 23:28:16 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * cre-conv-tab.c (main): Avoid upper-case X in printf format string. + +Tue Aug 23 17:16:35 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/perfsqr.c: Use mpn_perfect_square_p. + * mpn/generic/perfsqr.c: New file. + +Wed Jul 6 13:46:51 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/array_init.c: New file. + * mpz/Makefile.in: Compile array_init. + * gmp.h: Declare mpz_array_init. + +Mon Jul 4 01:10:03 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/add.c: Fix bogus comment. + * mpz/sub.c: Likewise. + +Sat Jul 2 02:14:56 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpn/generic/pre_mod_1.c: New file. + * mpz/perfsqr.c: Use __mpn_preinv_mod_1 when faster. + +Fri Jul 01 22:10:19 1994 Richard Earnshaw (rwe11@cl.cam.ac.uk) + + * longlong.h (arm umul_ppmm): Fix typos in last change. Mark + hard-coded registers with "%|" + +Thu Jun 30 03:59:33 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpz/perfsqr.c: Define PP, etc, for machines with 64 bit limbs. + Use __mpn_mod_1. + * mpz/perfsqr.c: Don't clobber REM in quadratic residue check loop. + +Wed Jun 29 18:45:41 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpn/generic/sqrt.c (SQRT): New asm for IBM POWER2. + + * mpz/gcd_ui.c: Return 0 if result does not fit an unsigned long. + + * gmp.h: Use "defined (__STDC__)" consistently. + +Tue Jun 28 18:44:58 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * gmp.h (mpz_get_si): Don't use "signed" keyword for return type. + + * mpz/tests/Makefile.in: Use CFLAGS for linking. + + * Makefile.in (CFLAGS): Use -O2 here. + * mpn/Makefile (CFLAGS): Not here. + + * mpq/cmp_ui.c: Fix typo. + * mpq/canonicalize.c: Fix typo. + * mpz/gcd_ui.c: Handle gcd(0,v) and gcd(u,0) correctly. + * mpn/generic/gcd_1.c: Fix braino in last change. + +Mon Jun 27 16:10:27 1994 Torbjorn Granlund (tege@rtl.cygnus.com) + + * mpz/gcd_ui.c: Change return type and return result. + Allow destination param to be NULL. + * gmp.h: Corresponding change. + * mpn/generic/gcd_1.c: Handle zero return from mpn_mod_1. + +Tue Jun 14 02:17:43 1994 Torbjorn Granlund (tege@tiny.cygnus.com) + + * mpn/i386/asm.h (ALIGN): Make it take a parameter. + * mpn/i386/*.S: Use ALIGN to align all loops. + + * mpn/i386/*.S: Move colon inside C_GLOBAL_NAME expression. + (Makes old versions of GAS happy.) + +Sat May 28 01:43:54 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * Many files: Delete unused variables and labels. + * mpn/generic/dump.c: cast printf width argument to int. + +Wed May 25 00:42:37 1994 Torbjorn Granlund (tege@thepub.cygnus.com) + + * mpz/gcd.c (mpz_gcd): Normalize after __mpn_sub calls. + (xmod): Ignore return value of __mpn_divmod. + (xmod): Improve normalization code. + +Sat May 21 01:30:09 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpz/gcdext.c: Cosmetic changes. + + * mpz/fdiv_ui.c: New file. + +Fri May 20 00:24:53 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpz/tests/Makefile.in: Use explicit rules for running tests, + not a shell loop. + (clean): Delete stmp-*. + + * mpz/Makefile.in: Update. + + * mpz/div_ui.c: Don't include longlong.h. + * mpz/dm_ui.c: Likewise. + + * mpz/fdiv_q.c, mpz/fdiv_q_ui.c, mpz/fdiv_qr.c, mpz/fdiv_qr_ui.c, + mpz/fdiv_r.c, mpz/fdiv_r_ui.c: New files. Code partly from deleted + mdm.c, mdm_ui.c, etc, partly rewritten. + * mpz/dm_floor_ui.c, mpz/dm_floor.c: Delete. + * mpz/mdm.c, mpz/mdm_ui.c, mpz/mdiv.c, mpz/mdiv_ui.c, mpz/mmod.c, + mpz/mmod_ui.c: Delete. + + * mpz/tdiv_q.c, mpz/tdiv_q_ui.c, mpz/tdiv_qr.c, mpz/tdiv_qr_ui.c, + mpz/tdiv_r.c, mpz/tdiv_r_ui.c: + New names for files implementing truncating division. + * mpz/div_ui.c, mpz/dm_ui.c, mpz/mod_ui.c: Simplify. + + * mpn/Makefile.in (.S.o): Don't rely on CPP being defined, use CC + instead. + (clean): Delete tmp-*. + +Thu May 19 01:37:44 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpz/cmp.c: Call __mpn_cmp. + + * mpz/popcount.c: Fix typo. + + * mpz/powm_ui.c: Simplify main loop. Keep principal operand size + smaller than MSIZE when possible. + * mpz/powm.c: Likewise. + + * mpn/generic/sqrt.c: Move alloca calls into where the memory is + needed. Simplify. + + * gmp.h: (_PROTO): New macro. + Add many function declarations; use _PROTO macro in all declarations. + + * mpf/*.c: Prepend mpn calls with __. + +Wed May 18 20:57:06 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpf/*ui*.c: Make ui argument `long' for consistency with mpz + functions. + + * mpf/div_ui.c: Simplify. + +Tue May 17 01:05:14 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpz/*.c: Prepend mpn calls with __. + + * mpz/mul_ui.c: Use mpn_mul_1. + +Mon May 16 17:19:41 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpn/i386/mul_1.S: Use C_GLOBAL_NAME. + * mpn/i386/mul_1.S, mpn/i386/addmul_1.S, mpn/i386/submul_1.S: + Nuke use of LAB. + +Sat May 14 14:21:02 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * gmp-impl.h: Don't define abort here. + + * mpz/pow_ui.c: Increase temporary allocation. + * mpz/ui_pow_ui.c: Likewise. + + * gmp.h (mpz_add_1, mpz_sub_1): Don't call memcpy. + + * All Makefile.in: Delete spurious -I arguments. + Update dependencies. + + * mpz/popcount.c: New file. + * mpz/hamdist.c: New file. + + * All configure: Latest version from Cygnus. + + * mpq/Makefile.in: New file. + * mpq/configure.in: New file. + * Makefile.in, configure.in: Enable compilation of mpq. + + * mpq/set_z.c: Fix typos. + * mpq/canonicalize.c: Fix typos. + * mpq/cmp_ui.c: Fix typos. + + * mpf/add_ui.c: Read U->D into UP always. Delete spurious MPN_COPY. + * mpf/sub_ui.c: Likewise. + + * gmp-impl.h: Don't redefine alloca. + + * COPYING.LIB: Renamed from COPYING. + +Wed May 11 01:45:44 1994 Torbjorn Granlund (tege@adder.cygnus.com) + + * mpz/powm_ui.c: When shifting E left by C+1, handle out-of-range + shift counts. Fix typo when testing negative_result. + * mpz/powm.c: Likewise. + + * mpz/ui_pow_ui.c: New file. + * mpz/Makefile.in: Update. + + * mpz/pow_ui.c: Call __mpn_mul_n instead of __mpn_mul when possible. + + * mpz/div.c, mpz/div_ui.c, mpz/gcd.c: Prefix external mpn calls. + * mpz/gcd.c: Declare mpn_xmod. + + * mpz/powm.c: Major changes to accommodate changed mpn semantics. + * mpz/powm_ui.c: Update from mpz/powm.c. + + * mpz/tests/tst-io.c: New file. + * mpz/tests/tst-logic: New file. + * mpz/tests/Makefile.in: Update. + + * mpz/inp_str.c: Get base right when checking for first digit. + * mpz/inp_str.c: Allocate more space for DEST when needed. + + * mpz/com.c: Use mpn_add_1 and mpn_sub_1. + * mpz/and.c, mpz/ior.c: Likewise. Simplify somewhat. + + * mpz/add_ui.c: Use mpn_add_1 and mpn_sub_1. + Rename parameters to be consistent with mpz/sub_ui. + General simplifications. + * mpz/sub_ui.x: Likewise. + +Tue Aug 10 19:41:16 1993 Torbjorn Granlund (tege@prudens.matematik.su.se) + + * mpf: New directory. + * mpf/*.c: Merge basic set of mpf functions. + + * Many logs missing... + +Sun Apr 25 18:40:26 1993 Torbjorn Granlund (tege@pde.nada.kth.se) + + * memory.c: Use #if instead of #ifdef for __STDC__ for consistency. + * bsd/xtom.c: Likewise. + + * mpz/div.c: Remove free_me and free_me_size and their usage. + Use mpn_divmod for division; corresponding changes in return value + convention. + * mpz/powm.c: `carry_digit' => `carry_limb'. + * bsd/sdiv.c: Clarify comment. + +Sun Apr 25 00:31:28 1993 Torbjorn Granlund (tege@pde.nada.kth.se) + + * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'. + +Sat Apr 24 16:23:33 1993 Torbjorn Granlund (tege@pde.nada.kth.se) + + * longlong.h (__udiv_qrnnd_c): Make all variables `unsigned long int'. + + * gmp-impl.h: #define ABS. + * (Many files): Use ABS instead of abs. + + * mpn/generic/sqrt.c, mpz/clrbit.c, mpz/get_si.c, mpz/mod_2exp.c, + mpz/pow_ui.c: Cast 1 to mp_limb before shifting. + + * mpz/perfsqr.c: Use #if, not plain if for exclusion of code for + non-32-bit machines. + +Tue Apr 20 13:13:58 1993 Torbjorn Granlund (tege@du.nada.kth.se) + + * mpn/generic/sqrt.c: Handle overflow for intermediate quotients by + rounding them down to fit. + + * mpz/perfsqr.c (PP): Define in hexadecimal to avoid GCC warnings. + + * mpz/inp_str.c (char_ok_for_base): New function. + (mpz_inp_str): Use it. + +Sun Mar 28 21:54:06 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) + + * mpz/inp_raw.c: Allocate x_index, not xsize limbs. + +Mon Mar 15 11:44:06 1993 Torbjorn Granlund (tege@pde.nada.kth.se) + + * mpz/pprime.c: Declare param `const'. + * gmp.h: Add declarations for mpz_com. + +Thu Feb 18 14:10:34 1993 Torbjorn Granlund (tege@pde.nada.kth.se) + + * mpq/add.c, mpq/sub.c: Call mpz_clear for t. + +Fri Feb 12 20:27:34 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) + + * mpz/inp_str.c: Recog minus sign as first character. + +Wed Feb 3 01:36:02 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) + + * mpz/iset.c: Handle 0 size. + +Tue Feb 2 13:03:33 1993 Torbjorn Granlund (tege@cyklop.nada.kth.se) + + * mpz/mod_ui.c: Initialize dividend_size before it's used. + +Mon Jan 4 09:11:15 1993 Torbjorn Granlund (tege@sics.se) + + * bsd/itom.c: Declare param explicitly 'signed'. + * bsd/sdiv.c: Likewise. + + * mpq/cmp.c: Remove unused variable tmp_size. + * mpz/powm_ui.c: Fix typo in esize==0 if stmt. + * mpz/powm.c: Likewise. + +Sun Nov 29 01:16:11 1992 Torbjorn Granlund (tege@sics.se) + + * mpn/generic/divmod_1.c (mpn_divmod_1): Handle + divisor_limb == 1 << (BITS_PER_MP_LIMB - 1) + specifically. + + * Reorganize sources. New directories mpn, mpn/MACH, mpn/generic, + mpz, mpq, bsd. Use full file name for change logs hereafter. + +Wed Oct 28 17:40:04 1992 Torbjorn Granlund (tege@jupiter.sics.se) + + * longlong.h (__hppa umul_ppmm): Fix typos. + (__hppa sub_ddmmss): Swap input arguments. + + * mpz_perfsqr.c (mpz_perfect_square_p): Avoid , before } in + initializator. + +Sun Oct 25 20:30:06 1992 Torbjorn Granlund (tege@jupiter.sics.se) + + * mpz_pprime.c (mpz_probab_prime_p): Handle numbers <= 3 + specifically (used to consider all negative numbers prime). + + * mpz_powm_ui: `carry_digit' => `carry_limb'. + + * sdiv: Handle zero dividend specifically. Replace most code in + this function with a call to mpn_divmod_1. + +Fri Sep 11 22:15:55 1992 Torbjorn Granlund (tege@tarrega.sics.se) + + * mpq_clear: Don't free the MP_RAT! + + * mpn_lshift, mpn_rshift, mpn_rshiftci: Remove `long' from 4:th arg. + +Thu Sep 3 01:47:07 1992 Torbjorn Granlund (tege@jupiter.sics.se) + + * All files: Remove leading _ from mpn function names. + +Wed Sep 2 22:21:16 1992 Torbjorn Granlund (tege@jupiter.sics.se) + + Fix from Jan-Hein Buhrman: + * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c: Make them work as documented. + + * mpz_mmod.c, mpz_mdm.c: Move decl of TEMP_DIVISOR to reflect its + life. + +Sun Aug 30 18:37:15 1992 Torbjorn Granlund (tege@jupiter.sics.se) + + * _mpz_get_str: Use mpz_sizeinbase for computing out_len. + * _mpz_get_str: Don't remove leading zeros. Abort if there are some. + +Wed Mar 4 17:56:56 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp.h: Change definition of MP_INT to make the & before params + optional. Use typedef to define it. + * mp.h: Use typedef to define MINT. + +Tue Feb 18 14:38:39 1992 Torbjorn Granlund (tege@zevs.sics.se) + + longlong.h (hppa umul_ppmm): Add missing semicolon. Declare type + of __w1 and __w0. + +Fri Feb 14 21:33:21 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Make default count_leading_zeros work for machines > + 32 bits. Prepend `__' before local variables to avoid conflicts + with users' variables. + + * mpn_dm_1.c: Remove udiv_qrnnd_preinv ... + * gmp-impl.h: ... and put it here. + * mpn_mod_1: Use udiv_qrnnd_preinv if it is faster than udiv_qrnnd. + +Tue Feb 11 17:20:12 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_mul: Enhance base case by handling small multiplicands. + * mpn_dm_1.c: Revert last change. + +Mon Feb 10 11:55:15 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_dm_1.c: Don't define udiv_qrnnd_preinv unless needed. + +Fri Feb 7 16:26:16 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_mul: Replace code for base case. + +Thu Feb 6 15:10:42 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_dm_1.c (_mpn_divmod_1): Add code for avoiding division by + pre-inverting divisor. + +Sun Feb 2 11:10:25 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Make __LLDEBUG__ work differently. + (_IBMR2): Reinsert old code. + +Sat Feb 1 16:43:00 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h (#ifdef _IBMR2): Replace udiv_qrnnd with new code + using floating point operations. Don't define + UDIV_NEEDS_NORMALIZATION any longer. + +Fri Jan 31 15:09:13 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Define UMUL_TIME and UDIV_TIME for most machines. + * longlong.h (#ifdef __hppa): Define umul_ppmm. + +Wed Jan 29 16:41:36 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_cmp: Only one length parameter, assume operand lengths are + the same. Don't require normalization. + * mpq_cmp, mpz_add, mpz_sub, mpz_gcd, mpn_mul, mpn_sqrt: Change for + new mpn_cmp definition. + +Tue Jan 28 11:18:55 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * _mpz_get_str: Fix typo in comment. + +Mon Jan 27 09:44:16 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * Makefile.in: Add new files. + + * mpn_dm_1.c: New file with function _mpn_divmod_1. + * mpz_dm_ui.c (mpz_divmod_ui): Use _mpn_divmod_1. + * mpz_div_ui: Likewise. + + * mpn_mod_1.c: New file with function _mpn_mod_1. + * mpz_mod_ui: Use _mpn_mod_1. + +Thu Jan 23 18:54:09 1992 Torbjorn Granlund (tege@zevs.sics.se) + + Bug found by Paul Zimmermann (zimmermann@inria.inria.fr): + * mpz_div_ui.c (mpz_div_ui), mpz_dm_ui.c (mpz_divmod_ui): + Handle dividend == 0. + +Wed Jan 22 12:02:26 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_pprime.c: Use "" for #include. + +Sun Jan 19 13:36:55 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_rshiftci.c (header): Correct comment. + +Wed Jan 15 18:56:04 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_powm, mpz_powm_ui (if (bsize > msize)): Do alloca (bsize + 1) + to make space for ignored quotient at the end. (The quotient might + always be an extra limb.) + +Tue Jan 14 21:28:48 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_powm_ui: Fix comment. + * mpz_powm: Likewise. + +Mon Jan 13 18:16:25 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * tests/Makefile.in: Prepend $(TEST_PREFIX) to Makefile target. + +Sun Jan 12 13:54:28 1992 Torbjorn Granlund (tege@zevs.sics.se) + + Fixes from Kazumaro Aoki: + * mpz_out_raw: Take abs of size to handle negative values. + * mpz_inp_raw: Reallocate before reading ptr from X. + * mpz_inp_raw: Store, don't read, size to x->size. + +Tue Jan 7 17:50:25 1992 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp.h, mp.h: Remove parameter names from prototypes. + +Sun Dec 15 00:09:36 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * tests/Makefile.in: Prepend "./" to file names when executing + tests. + + * Makefile.in: Fix many problems. + +Sat Dec 14 01:00:02 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_sqrt.c: New file with _mpn_sqrt. + * mpz_sqrt, mpz_sqrtrem, mpz_perfect_square_p: Use _mpn_sqrt. + * msqrt.c: Delete. Create from mpz_sqrtrem.c in Makefile.in. + * mpz_do_sqrt.c: Delete. + * Makefile.in: Update to reflect these changes. + + * Makefile.in, configure, configure.subr: New files + (from bothner@cygnus.com). + * dist-Makefile: Delete. + + * mpz_fac_ui: Fix comment. + + * mpz_random2: Rewrite a bit to make it possible for the most + significant limb to be == 1. + + * mpz_pprime.c (mpz_probab_prime_p): Remove \t\n. + +Fri Dec 13 23:10:02 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_do_sqrt: Simplify special case for U == 0. + * m*sqrt*.c, mpz_perfsqr.c (mpz_perfect_square_p): + Rename _mpz_impl_sqrt to _mpz_do_sqrt. + +Fri Dec 13 12:52:28 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp-impl.h (MPZ_TMP_INIT): Cast to the right type. + +Thu Dec 12 22:17:29 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_add, mpn_sub, mpn_mul, mpn_div: Change type of several + variables to mp_size. + +Wed Dec 11 22:00:34 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_rshift.c: Fix header comments. + +Mon Dec 9 17:46:10 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.2. + + * gmp-impl.h (MPZ_TMP_INIT): Cast alloca return value. + + * dist-Makefile: Add missing dependency for cre-mparam. + + * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c, + mpz_mmod_ui.c, mpz_mdm_ui.c: Remove obsolete comment. + + * dist-Makefile (clean): clean in tests subdir too. + * tests/Makefile: Define default values for ROOT and SUB. + + * longlong.h (__a29k__ udiv_qrnnd): Change "q" to "1" for operand + 2 constraint. + +Mon Nov 11 00:06:05 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_sizeinb.c (mpz_sizeinbase): Special code for size == 0. + +Sat Nov 9 23:47:38 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.1.94. + + * dist-Makefile, Makefile, tests/Makefile: Merge tests into + distribution. + +Fri Nov 8 22:57:19 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp.h: Don't use keyword `signed' for non-ANSI compilers. + +Thu Nov 7 22:06:46 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Cosmetic changes to keep it identical to gcc2 version + of longlong.h. + * longlong.h (__ibm032__): Fix operand order for add_ssaaaa and + sub_ddmmss. + +Mon Nov 4 00:36:46 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_mul: Fix indentation. + + * mpz_do_sqrt: Don't assume 32 bit limbs (had constant + 4294967296.0). + * mpz_do_sqrt: Handle overflow in conversion from double returned + by SQRT to mp_limb. + + * gmp.h: Add missing function definitions. + +Sun Nov 3 18:25:25 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_pow_ui: Change type of `i' to int. + + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. + * ChangeLog: Add change log entry. +Stack overflow. + + * mpz_pow_ui.c: Fix typo in comment. + + * dist-Makefile: Create rpow.c from mpz_powm_ui.c. + * mpz_powm_ui.c: Add code for rpow. + * rpow.c: Delete this file. The rpow function is now implemented + in mpz_powm_ui.c. + + * mpz_fac_ui.c: New file. + * gmp.h, dist-Makefile: Add stuff for mpz_fac_ui. + + Bug found by John Amanatides (amana@sasquatch.cs.yorku.ca): + * mpz_powm_ui, mpz_powm: Call _mpn_mul in the right way, with + the first argument not smaller than the second. + +Tue Oct 29 13:56:55 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * cre-conv-tab.c (main), cre-mparam.c (main): Fix typo in output + header text. + +Mon Oct 28 00:35:29 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_random2: Handle size == 0. + + * gmp-impl.h (struct __mp_bases): Rename chars_per_limb_exactly to + chars_per_bit_exactly, and change its definition. + * cre-conv-tab.c (main): Output field according to its new + definition. + * mpz_out_str, _mpz_get_str, mpz_sizeinb, mout: + Use chars_per_bit_exactly. + + * mpz_random2: Change the loop termination condition in order to + get a large most significant limb with higher probability. + + * gmp.h: Add declaration of new mpz_random2 and mpz_get_si. + * mpz_get_si.c: New file. + * dist-Makefile: Add mpz_random2 and mpz_get_si. + + * mpz_sizeinb.c (mpz_sizeinbase): Special code for base being a + power of 2, giving exact result. + + * mpn_mul: Fix MPN_MUL_VERIFY in various ways. + * mpn_mul: New macro KARATSUBA_THRESHOLD. + * mpn_mul (karatsuba's algorithm): Don't write intermediate results + to prodp, use temporary pp instead. (Intermediate results can be + larger than the final result, possibly writing into hyperspace.) + * mpn_mul: Make smarter choice between Karatsuba's algorithm and the + shortcut algorithm. + * mpn_mul: Fix typo, cy instead of xcy. Unify carry handling code. + +Sun Oct 27 19:57:32 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_mul: In non-classical case, choose Karatsuba's algorithm only + when usize > 1.5 vsize. + + * mpn_mul: Break between classical and Karatsuba's algorithm at + KARATSUBA_THRESHOLD, if defined. Default to 8. + + * mpn_div: Kludge to fix stray memory read. + +Sat Oct 26 20:06:14 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_gcdext: Handle a = b = 0. Remove memory leakage by calling + mpz_clear for all temporary variables. + + * mpz_gcd: Reduce w_bcnt in _mpn_lshift call to hold that + function's argument constraints. Compute wsize correctly. + + * mpz_gcd: Fix typo in comment. + + * memory.c (_mp_default_allocate, _mp_default_reallocate): Call + abort if allocation fails, don't just exit. + +Fri Oct 25 22:17:20 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_random2.c: New file. + +Thu Oct 17 18:06:42 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be): + * mpq_cmp: Take sign into account, don't just compare the + magnitudes. + * mpq_cmp: Call _mpn_mul in the right way, with the first argument + not smaller than the second. + +Wed Oct 16 19:27:32 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_random: Ensure the result is normalized. + +Tue Oct 15 14:55:13 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_clrbit: Support non-ANSI compilers. + +Wed Oct 9 18:03:28 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h (68k add_ssaaaa, sub_ddmmss): Generalize constraints. + +Tue Oct 8 17:42:59 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_mdm_ui: Add comments. + + * mpz_mdiv: Use MPZ_TMP_INIT instead of mpz_init. + * mpz_init_ui: Change spacing and header comment. + +Thu Oct 3 18:36:13 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * dist-Makefile: Prepend `./' before some filenames. + +Sun Sep 29 14:02:11 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.1 (public). + + * mpz_com: New name of mpz_not. + * dist-Makefile: Change mpz_not to mpz_com. + +Tue Sep 24 12:44:11 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Fix header comment. + +Mon Sep 9 15:16:24 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.0.92. + + * mpn_mul.c (_mpn_mul): Handle leading zero limbs in non-Karatsuba + case. + + * longlong.h (m68000 umul_ppmm): Clobber one register less by + slightly rearranging the code. + +Sun Sep 1 18:53:25 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * dist-Makefile (stamp-stddefh): Fix typo. + +Sat Aug 31 20:41:31 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.0.91. + + * mpz_mdiv.c, mpz_mmod.c, mpz_mdm.c, mpz_mdiv_ui.c, + mpz_mmod_ui.c, mpz_mdm_ui.c: New files and functions. + * gmp.h, gmp.texi: Define the new functions. + +Fri Aug 30 08:32:56 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_gcdext: Compute t argument from the other quantities at the + end, of the function, not in the loop. New feature: Allow t to be + NULL. + + * mpz_add.c, mpz_sub.c, mpz_mul.c, mpz_powm.c, mpz_gcd.c: Don't + include "mp.h". Use type name `MP_INT' always. + + * dist-Makefile, mpz_cmp.c: Merge mcmp.c from mpz_cmp.c. + +Wed Aug 28 00:45:11 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * dist-Makefile (documentation): Go via tmp.texi to avoid the + creation of gmp.dvi if any errors occur. Make tex read input + from /dev/null. + +Fri Aug 23 15:58:52 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h (68020, i386): Don't define machine-dependent + __umulsidi3 (so the default definition is used). + * longlong.h (all machines): Cast all operands, sources and + destinations, to `unsigned long int'. + * longlong.h: Add gmicro support. + +Thu Aug 22 00:28:29 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Rename BITS_PER_LONG to LONG_TYPE_SIZE. + * longlong.h (__ibm032__): Define count_leading_zeros and umul_ppmm. + * longlong.h: Define UMUL_TIME and UDIV_TIME for some CPUs. + * _mpz_get_str.c: Add code to do division by big_base using only + umul_qrnnd, if that is faster. Use UMUL_TIME and UDIV_TIME to + decide which variant to use. + +Wed Aug 21 15:45:23 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h (__sparc__ umul_ppmm): Move two insn from end to the + nops. (Saves two insn.) + + * longlong.h (__sparc__ umul_ppmm): Rewrite in order to avoid + branch, and to permit input/output register overlap. + + * longlong.h (__29k__): Remove duplicated udiv_qrnnd definition. + * longlong.h (__29k__ umul_ppmm): Split asm instructions into two + asm statements (gives better code if either the upper or lower + part of the product is unused. + +Tue Aug 20 17:57:59 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * _mpz_get_str.c (outside of functions): Remove + num_to_ascii_lower_case and num_to_ascii_upper_case. Use string + constants in the function instead. + +Mon Aug 19 00:37:42 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * cre-conv-tab.c (main): Output table in hex. Output 4 fields, not + 3, for components 0 and 1. + + * gmp.h: Add declaration of mpq_neg. + + Released 1.0beta.13. + + * _mpz_set_str.c (mpz_set_str): Cast EOF and SPC to char before + comparing to enum literals SPC and EOF. This makes the code work + for compilers where `char' is unsigned. (Bug found by Brian + Beuning). + + Released 1.0beta.12. + + * mpz_mod_ui: Remove references to quot. Remove quot_ptr, quot_size + declarations and assignment code. + +Sun Aug 18 14:44:26 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_mod_ui: Handle dividend < 0. + + Released 1.0beta.11. + + * mpz_dm_ui, mpz_div_ui, mpz_mod_ui, sdiv: Make them share the same + general structure, variable names, etc. + + * sdiv: Un-normalize the remainder in n1 before it is negated. + + * longlong.h: Mention UDIV_NEEDS_NORMALIZATION in description of + udiv_qrnnd. + + * mpz_dm_ui.c (mpz_divmod_ui), mpz_div_ui.c (mpz_div_ui): Increment + the quotient size if the dividend size is incremented. (Bug found + by Brian Beuning.) + + * mpz_mod_ui: Shift back the remainder, if UDIV_NEEDS_NORMALIZATION. + (Bug found by Brian Beuning.) + + * mpz_mod_ui: Replace "digit" by "limb". + + * mpz_perfsqr.c (mpz_perfect_square_p): Disable second test case + for non-32-bit machines (PP is hardwired for such machines). + * mpz_perfsqr.c (outside of functions): Define PP value with an L. + + * mpn_mul.c (_mpn_mul): Add verification code that is activated if + DEBUG is defined. Replace "digit" by "limb". + * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 4.): Normalize temp + after the addition. + * mpn_mul.c (_mpn_mul: Karatsuba's algorithm: 1.): Compare u0_size + and v0_size, and according to the result, swap arguments in + recursive call. (Don't violate mpn_mul's own argument + constraints.) + +Fri Aug 16 13:47:12 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.0beta.10. + + * longlong.h (IBMR2): Add udiv_qrnnd. + + * mpz_perfsqr: Remove unused variables. + + * mpz_and (case for different signs): Initialize loop variable i! + + * dist-Makefile: Update automatically generated dependencies. + * dist-Makefile (madd.c, msub.c, pow.c, mult.c, gcd.c): Add mp.h, + etc to dependency file lists. + + * longlong.h (add_ssaaaa, sub_ddmmss [C default versions]): Make __x + `unsigned long int'. + * longlong.h: Add `int' after `unsigned' and `long' everywhere. + +Wed Aug 14 18:06:48 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Add ARM, i860 support. + + * mpn_lshift, mpn_rshift, mpn_rshiftci: Rename *_word with *_limb. + +Tue Aug 13 21:57:43 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * _mpz_get_str.c, _mpz_set_str.c, mpz_sizeinb.c (mpz_sizeinbase), + mpz_out_str.c, mout.c: Remove declaration of __mp_bases. + * gmp-impl.h: Put it here, and make it `const'. + * cre-conv-tab.c (main): Make struct __mp_bases `const'. + +Mon Aug 12 17:11:46 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * cre-conv-tab.c (main): Use %lu in printf for long ints. + + * dist-Makefile: Fix cre-* dependencies. + + * cre-conv-tab.c (main): Output field big_base_inverted. + + * gmp-impl.h (struct bases): New field big_base_inverted. + * gmp-impl.h (struct bases): Change type of chars_per_limb_exactly + to float (in order to keep the structure smaller). + + * mp.h, gmp.h: Change names of macros for avoiding multiple + includes. + +Fri Aug 9 18:01:36 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * _mpz_get_str: Only shift limb array if normalization_steps != 0 + (optimization). + + * longlong.h (sparc umul_ppmm): Use __asm__, not asm. + * longlong.h (IBMR2 umul_ppmm): Refer to __m0 and __m1, not to m0 + and m1 (overlap between output and input operands did not work). + * longlong.h: Add VAX, ROMP and HP-PA support. + * longlong.h: Sort the machine dependent code in alphabetical order + on the CPU name. + * longlong.h: Hack comments. + +Thu Aug 8 14:13:36 1991 Torbjorn Granlund (tege@zevs.sics.se) + + Released 1.0beta.9. + + * longlong.h: Define BITS_PER_LONG to 32 if it's not already + defined. + * Define __BITS4 to BITS_PER_LONG / 4. + * Don't assume 32 bit word size in "count_leading_zeros" C macro. + Use __BITS4 and BITS_PER_LONG instead. + + * longlong.h: Don't #undef internal macros (reverse change of Aug 3). + + * longlong.h (68k): Define add_ssaaaa sub_ddmmss, and umul_ppmm + even for plain mc68000. + + * mpq_div: Flip the sign of the numerator *and* denominator of the + result if the intermediate denominator is negative. + + * mpz_and.c, mpz_ior.c: Use MPN_COPY for all copying operations. + + * mpz_and.c: Compute the result size more conservatively. + * mpz_ior.c: Likewise. + + * mpz_realloc: Never allocate zero space even if NEW_SIZE == 0. + + * dist-Makefile: Remove madd.c, msub.c, pow.c, mult.c, gcd.c from + BSDMP_SRCS. + + * dist-Makefile: Create mult.c from mpz_mul.c. + * mult.c: Delete this file. + + * _mpz_set_str: Normalize the result (for bases 2, 4, 8... it was + not done properly if the input string had many leading zeros). + +Sun Aug 4 16:54:14 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * dist-Makefile (gcd.c, pow.c, madd.c, msub.c): Make these targets + work with VPATH and GNU MP. + + * mpz_gcd: Don't call mpz_set; inline its functionality. + + * mpq_mul, mpq_div: Fix several serious typos. + + * mpz_dmincl, mpz_div: Don't normalize the quotient if it's already + zero. + + * mpq_neg.c: New file. + + * dist-Makefile: Remove obsolete dependencies. + + * mpz_sub: Fix typo. + + Bugs found by Pierre-Joseph Gailly (pjg@sunbim.be): + * mpq_mul, mpq_div: Initialize tmp[12] variables even when the gcd + is just 1. + * mpz_gcd: Handle gcd(0,v) and gcd(u,0) in special cases. + +Sat Aug 3 23:45:28 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h: Clean up comments. + * longlong.h: #undef internal macros. + +Fri Aug 2 18:29:11 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpq_set_si, mpq_set_ui: Canonicalize 0/x to 0/1. + * mpq_set_si, mpq_set_ui: Cosmetic formatting changes. + + * mpz_dmincl.c: Normalize the remainder before shifting it back. + + * mpz_dm_ui.c (mpz_divmod_ui): Handle rem == dividend. + + * mpn_div.c: Fix comment. + + * mpz_add.c, mpz_sub.c: Use __MP_INT (not MP_INT) for intermediate + type, in order to work for both GNU and Berkeley functions. + + * dist-Makefile: Create gcd.c from mpz_gcd.c, pow.c from mpz_powm, + madd.c from mpz_add.c, msub.c from mpz_sub.c. + respectively. + * pow.c, gcd.c, mpz_powmincl.c, madd.c, msub.c: Remove these. + * mpz_powm.c, mpz_gcd.c, mpz_add.c, mpz_sub.c: #ifdef for GNU and + Berkeley function name variants. + * dist-Makefile: Add created files to "clean" target. + +Tue Jul 16 15:19:46 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpq_get_den: No need for absolute value of the size, the + denominator is always positive. + + * mpz_get_ui: If the operand is zero, return zero. Don't read the + limb array! + + * mpz_dmincl.c: Don't ignore the return value from _mpn_rshift, it + is the size of the remainder. + +Mon Jul 15 11:08:05 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Several files: Remove unused variables and functions. + + * gmp-impl.h: Declare _mpz_impl_sqrt. + + * mpz_dm_ui (mpz_divmod_ui), sdiv: Shift back the remainder if + UDIV_NEEDS_NORMALIZATION. (Fix from Brian Beuning.) + + * mpz_dm_ui.c, sdiv: Replace *digit with *limb. + + * mpz_ior: Add missing else statement in -OP1 | -OP2 case. + * mpz_ior: Add missing else statement in OP1 | -OP2 case. + * mpz_ior: Swap also OP1 and OP2 pointers in -OP1 & OP2 case. + * mpz_ior: Duplicate _mpz_realloc code. + + * mpz_and: Add missing else statement in -OP1 & -OP2 case. + * mpz_and: Rewrite OP1 & -OP2 case. + * mpz_and: Swap also OP1 and OP2 pointers in -OP1 & OP2 case. + + * mpz_gcdext: Loop in d1.size (not b->size). (Fix from Brian + Beuning.) + + * mpz_perfsqr: Fix argument order in _mpz_impl_sqrt call. (Fix from + Brian Beuning.) + +Fri Jul 12 17:10:33 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpq_set.c, mpq_set_ui.c, mpq_set_si.c, mpq_inv.c, + mpq_get_num.c, mpq_get_den.c, mpq_set_num.c, mpq_set_den.c: + New files. + + * mpz_dmincl.c: Remove second re-allocation of rem->d. It + was never executed. + + * dist-Makefile: Use `-r' instead of `-x' for test for ranlib (as + some unixes' test doesn't have the -r option). + + * *.*: Cast allocated pointers to the appropriate type (makes old C + compilers happier). + + * cre-conv-tab.c (main): Divide max_uli by 2 and multiply again + after conversion to double. (Kludge for broken C compilers.) + + * dist-Makefile (stamp-stddefh): New target. Test if "stddef.h" + exists in the system and creates a minimal one if it does not + exist. + * cre-stddefh.c: New file. + * dist-Makefile: Make libgmp.a and libmp.a depend on stamp-stddefh. + * dist-Makefile (clean): Add some more. + * gmp.h, mp.h: Unconditionally include "stddef.h". + +Thu Jul 11 10:08:21 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * min: Do ungetc of last read character. + * min.c: include stdio.h. + + * dist-Makefile: Go via tmp- files for cre* redirection. + * dist-Makefile: Add tmp* to "clean" target. + + * dist-Makefile: Use LOCAL_CC for cre*, to simplify cross + compilation. + + * gmp.h, mp.h: Don't define NULL here. + * gmp-impl.h: Define it here. + +Wed Jul 10 14:13:33 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_mod_2exp: Don't copy too much, overwriting most significant + limb. + + * mpz_and, mpz_ior: Don't read op[12]_ptr from op[12] when + reallocating res, if op[12]_ptr got their value from alloca. + + * mpz_and, mpz_ior: Clear up comments. + + * cre-mparam.c: Output parameters for `short int' and `int'. + + * mpz_and, mpz_ior: Negate negative op[12]_size in several places. + +Tue Jul 9 18:40:30 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp.h, mp.h: Test for _SIZE_T defined before typedef'ing size_t. + (Fix for Sun lossage.) + + * gmp.h: Add declaration of mpq_clear. + + * dist-Makefile: Check if "ranlib" exists, before using it. + * dist-Makefile: Add mpz_sqrtrem.c and mpz_size.c. + * mpz_powm: Fix typo, "pow" instead of "mpz_powm". + +Fri Jul 5 19:08:09 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * move: Remove incorrect comment. + + * mpz_free, mpq_free: Rename to *_clear. + * dist-Makefile: Likewise. + * mpq_add, mpq_sub, mpq_mul, mpq_div: Likewise. + + * mpz_dmincl.c: Don't call "move", inline its functionality. + +Thu Jul 4 00:06:39 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Makefile: Include dist-Makefile. Fix dist target to include + dist-Makefile (with the name "Makefile" in the archive). + + * dist-Makefile: New file made from Makefile. Add new mpz_... + functions. + + * mpz_powincl.c New file for mpz_powm (Berkeley MP pow) + functionality. Avoids code duplication. + * pow.c, mpz_powm.c: Include mpz_powincl.c + + * mpz_dmincl.c: New file containing general division code. Avoids + code duplication. + * mpz_dm.c (mpz_divmod), mpz_mod.c (mpz_mod), mdiv.c (mdiv): Include + mpz_dmincl.c. + + * _mpz_get_str: Don't call memmove, unless HAS_MEMMOVE is defined. + Instead, write the overlapping memory copying inline. + + * mpz_dm_ui.c: New name for mpz_divmod_ui.c (SysV file name limit). + + * longlong.h: Don't use #elif. + * mpz_do_sqrt.c: Likewise. + + * longlong.h: Use __asm__ instead of asm. + * longlong.h (sparc udiv_qrnnd): Make it to one string over several + lines. + + * longlong.h: Preend __ll_ to B, highpart, and lowpart. + + * longlong.h: Move array t in count_leading_zeros to the new file + mp_clz_tab.c. Rename the array __clz_tab. + * All files: #ifdef for traditional C compatibility. + +Wed Jul 3 11:42:14 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_and: Initialize res_ptr always (used to be initialized only + when reallocating). + + * longlong.h (umul_ppmm [C variant]): Make __ul...__vh + `unsigned int', and cast the multiplications. This way + compilers more easily can choose cheaper multiplication + instructions. + + * mpz_mod_2exp: Handle input argument < modulo argument. + * mpz_many: Make sure mp_size is the type for sizes, not int. + + * mpz_init, mpz_init_set*, mpq_init, mpq_add, mpq_sub, mpq_mul, + mpq_div: Change mpz_init* interface. Structure pointer as first + arg to initialization function, no longer *return* struct. + +Sun Jun 30 19:21:44 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Rename mpz_impl_sqrt.c to mpz_do_sqrt.c to satisfy SysV 14 + character file name length limit. + + * Most files: Rename MINT to MP_INT. Rename MRAT to MP_RAT. + * mpz_sizeinb.c: New file with function mpz_sizeinbase. + * mp_bases.c: New file, with array __mp_bases. + * _mpz_get_str, _mpz_set_str: Remove struct bases, use extern + __mp_bases instead. + * mout, mpz_out_str: Use array __mp_bases instead of function + _mpz_get_cvtlen. + * mpz_get_cvtlen.c: Remove. + * Makefile: Update. + +Sat Jun 29 21:57:28 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * longlong.h (__sparc8__ umul_ppmm): Insert 3 nop:s for wr delay. + * longlong.h (___IBMR2__): Define umul_ppmm, add_ssaaaa, sub_ddmmss. + * longlong.h (__sparc__): Don't call .umul; expand asm instead. + Don't define __umulsidi3 (i.e. use default definition). + +Mon Jun 24 17:37:23 1991 Torbjorn Granlund (tege@amon.sics.se) + + * _mpz_get_str.c (num_to_ascii_lower_case, num_to_ascii_upper_case): + Swap 't' and 's'. + +Sat Jun 22 13:54:01 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_gcdext.c: New file. + + * mpn_mul: Handle carry and unexpected operand sizes in last + additions/subtractions. (Bug trigged when v1_size == 1.) + + * mp*_alloc*: Rename functions to mp*_init* (files to mp*_iset*.c). + * mpq_*: Call mpz_init*. + + * mpz_pow_ui, rpow: Use _mpn_mul instead of mult. Restructure. + +Wed May 29 20:32:33 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_get_cvtlen: multiply by size. + +Sun May 26 15:01:15 1991 Torbjorn Granlund (tege@bella.nada.kth.se) + + Alpha-release 0.95. + + Fixes from Doug Lea (dl@g.oswego.edu): + * mpz_mul_ui: Loop to MULT_SIZE (not PROD_SIZE). Adjust PROD_SIZE + correctly. + * mpz_div: Prepend _ to mpz_realloc. + * mpz_set_xs, mpz_set_ds: Fix typos in function name. + +Sat May 25 22:51:16 1991 Torbjorn Granlund (tege@bella.nada.kth.se) + + * mpz_divmod_ui: New function. + + * sdiv: Make the sign of the remainder correct. + +Thu May 23 15:28:24 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Alpha-release 0.94. + + * mpz_mul_ui: Include longlong.h. + + * mpz_perfsqr.c (mpz_perfect_square_p): Call _mpz_impl_sqrt instead + of msqrt. + + * mpz_impl_sqrt: Don't call "move", inline its functionality. + + * mdiv: Use MPN_COPY instead of memcpy. + * rpow, mpz_mul, mpz_mod_2exp: Likewise. + * pow.c: Likewise, and fix bug in the size arg. + + * xtom: Don't use mpz_alloc, inline needed code instead. Call + _mpz_set_str instead of mpz_set_str. + + * Makefile: Make two libraries, libmp.a and libgmp.a. + +Thu May 22 20:25:29 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Add manual to distribution. + * Fold in many missing routines described in the manual. + * Update Makefile. + +Wed May 22 13:48:46 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_set_str: Make it handle 0x prefix OK. + +Sat May 18 18:31:02 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * memory.c (_mp_default_reallocate): Swap OLD_SIZE and NEW_SIZE + arguments. + * mpz_realloc (_mpz_realloc): Swap in call to _mp_reallocate_func. + * min: Likewise. + +Thu May 16 20:43:05 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * memory.c: Make the default allocations functions global. + * mp_set_fns (mp_set_memory_functions): Make a NULL pointer mean the + default memory function. + +Wed May 8 20:02:42 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_div: Handle DEN the same as QUOT correctly by copying DEN->D + even if no normalization is needed. + * mpz_div: Rework reallocation scheme, to avoid excess copying. + + * mpz_sub_ui.c, mpz_add_ui.c: New files. + + * mpz_cmp.c, mpz_cmp_ui.c: New files. + + * mpz_mul_2exp: Handle zero input MINT correctly. + + * mpn_rshiftci: Don't handle shift counts > BITS_PER_MP_DIGIT. + + * mpz_out_raw.c, mpz_inp_raw.c: New files for raw I/O. + +Tue May 7 15:44:58 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_rshift: Don't handle shift counts > BITS_PER_MP_DIGIT. + * mpz_div_2exp: Don't call _mpn_rshift with cnt > BITS_PER_MP_DIGIT. + * gcd, mpz_gcd: Likewise. + + * gcd, mpz_gcd: Handle common 2 factors correctly. + +Mon May 6 20:22:59 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * gmp-impl.h (MPN_COPY): Inline a loop instead of calling memcpy. + + * gmp-impl.h, mpz_get_str, rpow: Swap DST and SRC in TMPCOPY* macros. + +Sun May 5 15:16:23 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpz_div: Remove test for QUOT == 0. + +Sun Apr 28 20:21:04 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * pow: Don't make MOD normalization in place, as it's a bad idea to + write on an input parameter. + * pow: Reduce BASE if it's > MOD. + * pow, mult, mpz_mul: Simplify realloc code. + +Sat Apr 27 21:03:11 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * Install multiplication using Karatsuba's algorithm as default. + +Fri Apr 26 01:03:57 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * msqrt: Store in ROOT even for U==0, to make msqrt(0) defined. + + * mpz_div_2exp.c, mpz_mul_2exp.c: New files for shifting right and + left, respectively. + * gmp.h: Add definitions for mpz_div_2exp and mpz_mul_2exp. + + * mlshift.c, mrshift.c: Remove. + +Wed Apr 24 21:39:22 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * mpn_mul: Check only for m2_size == 0 in function header. + +Mon Apr 22 01:31:57 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * karatsuba.c: New file for Karatsuba's multiplication algorithm. + + * mpz_random, mpz_init, mpz_mod_2exp: New files and functions. + + * mpn_cmp: Fix header comment. + +Sun Apr 21 00:10:44 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * pow: Switch off initial base reduction. + +Sat Apr 20 22:06:05 1991 Torbjorn Granlund (tege@echnaton.sics.se) + + * mpz_get_str: Don't generate initial zeros for initial word. + Used to write outside of allocated storage. + +Mon Apr 15 15:48:08 1991 Torbjorn Granlund (tege@zevs.sics.se) + + * _mpz_realloc: Make it accept size in number of mp_digits. + * Most functions: Use new _mpz_realloc definition. + + * mpz_set_str: Remove calls _mp_free_func. + + * Most functions: Rename mpn_* to _mpn_*. Rename mpz_realloc to + _mpz_realloc. + * mpn_lshift: Redefine _mpn_lshift to only handle small shifts. + * mdiv, mpz_div, ...: Changes for new definition of _mpn_lshift. + * msqrt, mp*_*shift*: Define cnt as unsigned (for speed). + +Sat Apr 6 14:05:16 1991 Torbjorn Granlund (tege@musta.nada.kth.se) + + * mpn_mul: Multiply by the first digit in M2 in a special + loop instead of zeroing the product area. + + * mpz_abs.c: New file. + + * sdiv: Implement as mpz_div_si for speed. + + * mpn_add: Make it work for second source operand == 0. + + * msub: Negate the correct operand, i.e. V before swapping, not + the smaller of U and V! + * madd, msub: Update abs_* when swapping operands, and not after + (optimization). + +Fri Apr 5 00:19:36 1991 Torbjorn Granlund (tege@black.nada.kth.se) + + * mpn_sub: Make it work for subtrahend == 0. + + * madd, msub: Rewrite to minimize mpn_cmp calls. Ensure + mpn_cmp is called with positive sizes (used to be called + incorrectly with negative sizes sometimes). + + * msqrt: Make it divide by zero if fed with a negative number. + * Remove if statement at end of precision calculation that was + never true. + + * itom, mp.h: The argument is of type short, not int. + + * mpz_realloc, gmp.h: Make mpz_realloc return the new digit pointer. + + * mpz_get_str.c, mpz_set_str.c, mpz_new_str.c: Don't include mp.h. + + * Add COPYING to distribution. + + * mpz_div_ui.c, mpz_div_si.c, mpz_new_ui.c, mpz_new_si.c: New files. + +Fri Mar 15 00:26:29 1991 Torbjorn Granlund (tege@musta.nada.kth.se) + + * Add Copyleft headers to all files. + + * mpn_mul.c, mpn_div.c: Add header comments. + * mult.c, mdiv.c: Update header comments. + + * mpq_add.c, mpq_sub.c, mpq_div.c, mpq_new.c, mpq_new_ui.c, + mpq_free.c: New files for rational arithmetics. + + * mpn_lshift.c: Avoid writing the most significant word if it is 0. + + * mdiv.c: Call mpn_lshift for the normalization. + * mdiv.c: Remove #ifdefs. + + * Makefile: Add ChangeLog to DISTFILES. + + * mpn_div.c: Make the add_back code work (by removing abort()). + * mpn_div.c: Make it return if the quotient is size as compared + with the difference NSIZE - DSIZE. If the stored quotient is + larger than that, return 1, otherwise 0. + * gmp.h: Fix mpn_div declaration. + * mdiv.c: Adopt call to mpn_div. + * mpz_div.c: New file (developed from mdiv.c). + + * README: Update routine names. + +Thu Mar 14 18:45:28 1991 Torbjorn Granlund (tege@musta.nada.kth.se) + + * mpq_mul.c: New file for rational multiplication. + + * gmp.h: Add definitions for rational arithmetics. + + * mpn_div: Kludge the case where the high numerator digit > the + high denominator digit. (This code is going to be optimized later.) + + * New files: gmp.h for GNU specific functions, gmp-common.h for + definitions common for mp.h and gmp.h. + + * Ensure mp.h just defines what BSD mp.h defines. + + * pow.c: Fix typo for bp allocation. + + * Rename natural number functions to mpn_*, integer functions to + mpz_*. + +Tue Mar 5 18:47:04 1991 Torbjorn Granlund (tege@musta.nada.kth.se) + + * mdiv.c (_mp_divide, case 2): Change test for estimate of Q from + "n0 >= r" to "n0 > r". + + * msqrt: Tune the increasing precision scheme, to do fewer steps. + +Tue Mar 3 18:50:10 1991 Torbjorn Granlund (tege@musta.nada.kth.se) + + * msqrt: Use the low level routines. Use low precision in the + beginning, and increase the precision as the result converges. + (This optimization gave a 6-fold speedup.) diff --git a/Build/source/libs/gmp/gmp-6.0.0/INSTALL b/Build/source/libs/gmp/gmp-6.0.0/INSTALL new file mode 100644 index 00000000000..75199a1aba7 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/INSTALL @@ -0,0 +1,80 @@ +Copyright 1996, 1997, 1999-2002, 2006 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 either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +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 General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. + + + + + + INSTALLING GNU MP + ================= + + +These instructions are only for the impatient. Others should read the install +instructions in gmp.info. Use + + info -f doc/gmp.info + +from the gmp source directory. + +Here are some brief instructions on how to install GMP. First you need to +compile. Since you're impatient, try this + + ./configure + make + make check <= VERY IMPORTANT!! + +If that fails, or you care about the performance of GMP, you need to read the +full instructions in the chapter "Installing GMP" in the manual. + +You should not skip the "make check" part; the risk that the GMP sources are +miscompiled are unfortunately quite high. And if they indeed are, "make check" +is very likely to trigger the compiler-introduced bug. + +Optionally, you can install the library with the following command. This will +be to /usr/local by default, and you'll probably need to be "root" to be able +to write there. + + make install + +To create the printable documentation from the texinfo source, type "make +gmp.dvi" or "make gmp.ps". This requires various "tex" commands. + +If you are new to GMP, it is a good idea you at least read the chapter "GMP +Basics" in the manual. + +Some known build problems are noted in the "Installing GMP" chapter of +the manual. Please report other problems to gmp-bugs@gmplib.org. + +The GMP web site is located here: https://gmplib.org/. + + +---------------- +Local variables: +mode: text +fill-column: 78 +End: diff --git a/Build/source/libs/gmp/gmp-6.0.0/Makefile.am b/Build/source/libs/gmp/gmp-6.0.0/Makefile.am new file mode 100644 index 00000000000..8567c0e3f6c --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/Makefile.am @@ -0,0 +1,445 @@ +## Process this file with automake to generate Makefile.in + + +# Copyright 1991, 1993, 1994, 1996, 1997, 1999-2004, 2006-2009, 2011-2014 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 either: +# +# * the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your +# option) any later version. +# +# or +# +# * the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any +# later version. +# +# or both in parallel, as here. +# +# 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 General Public License +# for more details. +# +# You should have received copies of the GNU General Public License and the +# GNU Lesser General Public License along with the GNU MP Library. If not, +# see https://www.gnu.org/licenses/. + + +# The following options are the same as AM_INIT_AUTOMAKE in configure.in, +# except no $(top_builddir) on ansi2knr. That directory is wanted for the +# Makefiles in subdirectories, but here we must omit it so automake gives +# the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr". +# +# AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies + + +# Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the +# libtool manual. +# +# CURRENT:REVISION:AGE +# +# 1. No interfaces changed, only implementations (good): Increment REVISION. +# +# 2. Interfaces added, none removed (good): Increment CURRENT, increment +# AGE, set REVISION to 0. +# +# 3. Interfaces removed (BAD, breaks upward compatibility): Increment +# CURRENT, set AGE and REVISION to 0. +# +# Do this separately for libgmp, libgmpxx and libmp, and only for releases. +# +# GMP -version-info +# release libgmp libgmpxx libmp +# 2.0.x - - - +# 3.0 3:0:0 - 3:0:0 +# 3.0.1 3:1:0 - 3:0:0 +# 3.1 4:0:1 - 4:0:1 +# 3.1.1 4:1:1 - 4:1:1 +# 4.0 5:0:2 3:0:0 4:2:1 +# 4.0.1 5:1:2 3:1:0 4:3:1 +# 4.1 6:0:3 3:2:0 4:4:1 +# 4.1.1 6:1:3 3:3:0 4:5:1 +# 4.1.2 6:2:3 3:4:0 4:6:1 +# 4.1.3 6:3:3 3:5:0 4:7:1 +# 4.1.4 6:3:3 3:5:0 4:7:1 WRONG, same as 4.1.3! +# 4.2 6:0:3 3:2:0 4:4:1 REALLY WRONG, same as 4.1! +# 4.2.1 7:1:4 4:1:1 4:10:1 WRONG for libgmpxx +# 4.2.2 7:2:4 4:2:0 4:11:1 +# 4.2.3 7:3:4 4:3:0 4:12:1 +# 4.2.4 7:4:4 4:4:0 4:13:1 +# 4.3.0 8:0:5 5:0:1 4:14:1 +# 4.3.1 8:1:5 5:1:1 4:15:1 WRONG Really used same as 4.3.0 +# 4.3.2 8:2:5 5:2:1 4:16:1 +# 5.0.0 9:0:6 6:0:2 4:20:1 Should have been 10:0:0 +# 5.0.1 10:1:0 6:1:2 4:21:1 +# 5.0.2 10:2:0 6:2:2 4:22:1 +# 5.0.3 10:3:0 6:3:2 4:23:1 +# 5.0.4 10:4:0 6:4:2 4:24:1 +# 5.0.5 10:5:0 6:5:2 4:25:1 +# 5.1.0 11:0:1 7:0:3 - +# 5.1.1 11:1:1 7:1:3 - +# 5.1.2 11:2:1 7:2:3 - +# 6.0.0 12:0:2 8:0:4 - +# +# Starting at 3:0:0 is a slight abuse of the versioning system, but it +# ensures we're past soname libgmp.so.2, which was used on Debian GNU/Linux +# packages of gmp 2. Pretend gmp 2 was 2:0:0, so the interface changes for +# gmp 3 mean 3:0:0 is right. +# +# We interpret "implementation changed" in item "1." above as meaning any +# release, ie. the REVISION is incremented every time (if nothing else). +# Even if we thought the code generated will be identical on all systems, +# it's still good to get the shared library filename (like +# libgmpxx.so.3.0.4) incrementing, to make it clear which GMP it's from. + +LIBGMP_LT_CURRENT = 12 +LIBGMP_LT_REVISION = 0 +LIBGMP_LT_AGE = 2 + +LIBGMPXX_LT_CURRENT = 8 +LIBGMPXX_LT_REVISION = 0 +LIBGMPXX_LT_AGE = 4 + + +SUBDIRS = tests mpn mpz mpq mpf printf scanf rand cxx demos tune doc + +EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf \ + COPYING.LESSERv3 COPYINGv2 COPYINGv3 + + +if WANT_CXX +GMPXX_HEADERS_OPTION = gmpxx.h +endif +EXTRA_DIST += gmpxx.h + +# gmp.h and mp.h are architecture dependent, mainly since they encode the +# limb size used in libgmp. For that reason they belong under $exec_prefix +# not $prefix, strictly speaking. +# +# $exec_prefix/include is not in the default include path for gcc built to +# the same $prefix and $exec_prefix, which might mean gmp.h is not found, +# but anyone knowledgeable enough to be playing with exec_prefix will be able +# to address that. +# +includeexecdir = $(exec_prefix)/include +include_HEADERS = $(GMPXX_HEADERS_OPTION) +nodist_includeexec_HEADERS = gmp.h +lib_LTLIBRARIES = libgmp.la $(GMPXX_LTLIBRARIES_OPTION) + +BUILT_SOURCES = gmp.h + +DISTCLEANFILES = $(BUILT_SOURCES) config.m4 @gmp_srclinks@ + +# Tell gmp.h it's building gmp, not an application, used by windows DLL stuff. +INCLUDES=-D__GMP_WITHIN_GMP + + +MPF_OBJECTS = mpf/init$U.lo mpf/init2$U.lo mpf/inits$U.lo mpf/set$U.lo \ + mpf/set_ui$U.lo mpf/set_si$U.lo mpf/set_str$U.lo mpf/set_d$U.lo \ + mpf/set_z$U.lo mpf/iset$U.lo mpf/iset_ui$U.lo mpf/iset_si$U.lo \ + mpf/iset_str$U.lo mpf/iset_d$U.lo mpf/clear$U.lo mpf/clears$U.lo \ + mpf/get_str$U.lo mpf/dump$U.lo mpf/size$U.lo mpf/eq$U.lo mpf/reldiff$U.lo \ + mpf/sqrt$U.lo mpf/random2$U.lo mpf/inp_str$U.lo mpf/out_str$U.lo \ + mpf/add$U.lo mpf/add_ui$U.lo mpf/sub$U.lo mpf/sub_ui$U.lo mpf/ui_sub$U.lo \ + mpf/mul$U.lo mpf/mul_ui$U.lo mpf/div$U.lo mpf/div_ui$U.lo \ + mpf/cmp$U.lo mpf/cmp_d$U.lo mpf/cmp_ui$U.lo mpf/cmp_si$U.lo \ + mpf/mul_2exp$U.lo mpf/div_2exp$U.lo mpf/abs$U.lo mpf/neg$U.lo \ + mpf/set_q$U.lo mpf/get_d$U.lo mpf/get_d_2exp$U.lo mpf/set_dfl_prec$U.lo \ + mpf/set_prc$U.lo mpf/set_prc_raw$U.lo mpf/get_dfl_prec$U.lo \ + mpf/get_prc$U.lo mpf/ui_div$U.lo mpf/sqrt_ui$U.lo \ + mpf/ceilfloor$U.lo mpf/trunc$U.lo mpf/pow_ui$U.lo \ + mpf/urandomb$U.lo mpf/swap$U.lo \ + mpf/fits_sint$U.lo mpf/fits_slong$U.lo mpf/fits_sshort$U.lo \ + mpf/fits_uint$U.lo mpf/fits_ulong$U.lo mpf/fits_ushort$U.lo \ + mpf/get_si$U.lo mpf/get_ui$U.lo \ + mpf/int_p$U.lo + +MPZ_OBJECTS = mpz/abs$U.lo mpz/add$U.lo mpz/add_ui$U.lo \ + mpz/aorsmul$U.lo mpz/aorsmul_i$U.lo mpz/and$U.lo mpz/array_init$U.lo \ + mpz/bin_ui$U.lo mpz/bin_uiui$U.lo \ + mpz/cdiv_q$U.lo mpz/cdiv_q_ui$U.lo \ + mpz/cdiv_qr$U.lo mpz/cdiv_qr_ui$U.lo \ + mpz/cdiv_r$U.lo mpz/cdiv_r_ui$U.lo mpz/cdiv_ui$U.lo \ + mpz/cfdiv_q_2exp$U.lo mpz/cfdiv_r_2exp$U.lo \ + mpz/clear$U.lo mpz/clears$U.lo mpz/clrbit$U.lo \ + mpz/cmp$U.lo mpz/cmp_d$U.lo mpz/cmp_si$U.lo mpz/cmp_ui$U.lo \ + mpz/cmpabs$U.lo mpz/cmpabs_d$U.lo mpz/cmpabs_ui$U.lo \ + mpz/com$U.lo mpz/combit$U.lo \ + mpz/cong$U.lo mpz/cong_2exp$U.lo mpz/cong_ui$U.lo \ + mpz/divexact$U.lo mpz/divegcd$U.lo mpz/dive_ui$U.lo \ + mpz/divis$U.lo mpz/divis_ui$U.lo mpz/divis_2exp$U.lo mpz/dump$U.lo \ + mpz/export$U.lo mpz/mfac_uiui$U.lo \ + mpz/2fac_ui$U.lo mpz/fac_ui$U.lo mpz/oddfac_1$U.lo mpz/prodlimbs$U.lo \ + mpz/fdiv_q_ui$U.lo mpz/fdiv_qr$U.lo mpz/fdiv_qr_ui$U.lo \ + mpz/fdiv_r$U.lo mpz/fdiv_r_ui$U.lo mpz/fdiv_q$U.lo \ + mpz/fdiv_ui$U.lo mpz/fib_ui$U.lo mpz/fib2_ui$U.lo mpz/fits_sint$U.lo \ + mpz/fits_slong$U.lo mpz/fits_sshort$U.lo mpz/fits_uint$U.lo \ + mpz/fits_ulong$U.lo mpz/fits_ushort$U.lo mpz/gcd$U.lo \ + mpz/gcd_ui$U.lo mpz/gcdext$U.lo mpz/get_d$U.lo mpz/get_d_2exp$U.lo \ + mpz/get_si$U.lo mpz/get_str$U.lo mpz/get_ui$U.lo mpz/getlimbn$U.lo \ + mpz/hamdist$U.lo \ + mpz/import$U.lo mpz/init$U.lo mpz/init2$U.lo mpz/inits$U.lo \ + mpz/inp_raw$U.lo mpz/inp_str$U.lo mpz/invert$U.lo \ + mpz/ior$U.lo mpz/iset$U.lo mpz/iset_d$U.lo mpz/iset_si$U.lo \ + mpz/iset_str$U.lo mpz/iset_ui$U.lo mpz/jacobi$U.lo mpz/kronsz$U.lo \ + mpz/kronuz$U.lo mpz/kronzs$U.lo mpz/kronzu$U.lo \ + mpz/lcm$U.lo mpz/lcm_ui$U.lo mpz/limbs_finish$U.lo \ + mpz/limbs_modify$U.lo mpz/limbs_read$U.lo mpz/limbs_write$U.lo \ + mpz/lucnum_ui$U.lo mpz/lucnum2_ui$U.lo \ + mpz/millerrabin$U.lo mpz/mod$U.lo mpz/mul$U.lo mpz/mul_2exp$U.lo \ + mpz/mul_si$U.lo mpz/mul_ui$U.lo \ + mpz/n_pow_ui$U.lo mpz/neg$U.lo mpz/nextprime$U.lo \ + mpz/out_raw$U.lo mpz/out_str$U.lo mpz/perfpow$U.lo mpz/perfsqr$U.lo \ + mpz/popcount$U.lo mpz/pow_ui$U.lo mpz/powm$U.lo mpz/powm_sec$U.lo \ + mpz/powm_ui$U.lo mpz/primorial_ui$U.lo \ + mpz/pprime_p$U.lo mpz/random$U.lo mpz/random2$U.lo \ + mpz/realloc$U.lo mpz/realloc2$U.lo mpz/remove$U.lo mpz/roinit_n$U.lo \ + mpz/root$U.lo mpz/rootrem$U.lo mpz/rrandomb$U.lo mpz/scan0$U.lo \ + mpz/scan1$U.lo mpz/set$U.lo mpz/set_d$U.lo mpz/set_f$U.lo \ + mpz/set_q$U.lo mpz/set_si$U.lo mpz/set_str$U.lo mpz/set_ui$U.lo \ + mpz/setbit$U.lo \ + mpz/size$U.lo mpz/sizeinbase$U.lo mpz/sqrt$U.lo \ + mpz/sqrtrem$U.lo mpz/sub$U.lo mpz/sub_ui$U.lo mpz/swap$U.lo \ + mpz/tdiv_ui$U.lo mpz/tdiv_q$U.lo mpz/tdiv_q_2exp$U.lo \ + mpz/tdiv_q_ui$U.lo mpz/tdiv_qr$U.lo mpz/tdiv_qr_ui$U.lo \ + mpz/tdiv_r$U.lo mpz/tdiv_r_2exp$U.lo mpz/tdiv_r_ui$U.lo \ + mpz/tstbit$U.lo mpz/ui_pow_ui$U.lo mpz/ui_sub$U.lo mpz/urandomb$U.lo \ + mpz/urandomm$U.lo mpz/xor$U.lo + +MPQ_OBJECTS = mpq/abs$U.lo mpq/aors$U.lo \ + mpq/canonicalize$U.lo mpq/clear$U.lo mpq/clears$U.lo \ + mpq/cmp$U.lo mpq/cmp_si$U.lo mpq/cmp_ui$U.lo mpq/div$U.lo \ + mpq/get_d$U.lo mpq/get_den$U.lo mpq/get_num$U.lo mpq/get_str$U.lo \ + mpq/init$U.lo mpq/inits$U.lo mpq/inp_str$U.lo mpq/inv$U.lo \ + mpq/md_2exp$U.lo mpq/mul$U.lo mpq/neg$U.lo mpq/out_str$U.lo \ + mpq/set$U.lo mpq/set_den$U.lo mpq/set_num$U.lo \ + mpq/set_si$U.lo mpq/set_str$U.lo mpq/set_ui$U.lo \ + mpq/equal$U.lo mpq/set_z$U.lo mpq/set_d$U.lo \ + mpq/set_f$U.lo mpq/swap$U.lo + +MPN_OBJECTS = mpn/fib_table$U.lo mpn/mp_bases$U.lo + +PRINTF_OBJECTS = \ + printf/asprintf$U.lo printf/asprntffuns$U.lo \ + printf/doprnt$U.lo printf/doprntf$U.lo printf/doprnti$U.lo \ + printf/fprintf$U.lo \ + printf/obprintf$U.lo printf/obvprintf$U.lo printf/obprntffuns$U.lo \ + printf/printf$U.lo printf/printffuns$U.lo \ + printf/snprintf$U.lo printf/snprntffuns$U.lo \ + printf/sprintf$U.lo printf/sprintffuns$U.lo \ + printf/vasprintf$U.lo printf/vfprintf$U.lo printf/vprintf$U.lo \ + printf/vsnprintf$U.lo printf/vsprintf$U.lo \ + printf/repl-vsnprintf$U.lo + +SCANF_OBJECTS = \ + scanf/doscan$U.lo scanf/fscanf$U.lo scanf/fscanffuns$U.lo \ + scanf/scanf$U.lo scanf/sscanf$U.lo scanf/sscanffuns$U.lo \ + scanf/vfscanf$U.lo scanf/vscanf$U.lo scanf/vsscanf$U.lo + +RANDOM_OBJECTS = \ + rand/rand$U.lo rand/randclr$U.lo rand/randdef$U.lo rand/randiset$U.lo \ + rand/randlc2s$U.lo rand/randlc2x$U.lo rand/randmt$U.lo \ + rand/randmts$U.lo rand/rands$U.lo rand/randsd$U.lo rand/randsdui$U.lo \ + rand/randbui$U.lo rand/randmui$U.lo + +# no $U for C++ files +CXX_OBJECTS = \ + cxx/isfuns.lo cxx/ismpf.lo cxx/ismpq.lo cxx/ismpz.lo cxx/ismpznw.lo \ + cxx/limits.lo cxx/osdoprnti.lo cxx/osfuns.lo \ + cxx/osmpf.lo cxx/osmpq.lo cxx/osmpz.lo + +# In libtool 1.5 it doesn't work to build libgmp.la from the convenience +# libraries like mpz/libmpz.la. Or rather it works, but it ends up putting +# PIC objects into libgmp.a if shared and static are both built. (The PIC +# objects go into mpz/.libs/libmpz.a, and thence into .libs/libgmp.a.) +# +# For now the big lists of objects above are used. Something like mpz/*.lo +# would probably work, but might risk missing something out or getting +# something extra. The source files for each .lo are listed in the +# Makefile.am's in the subdirectories. +# +# Currently, for libgmp, unlike libmp below, we're not using +# -export-symbols, since the tune and speed programs, and perhaps some of +# the test programs, want to access undocumented symbols. + +libgmp_la_SOURCES = gmp-impl.h longlong.h \ + assert.c compat.c errno.c extract-dbl.c invalid.c memory.c \ + mp_bpl.c mp_clz_tab.c mp_dv_tab.c mp_minv_tab.c mp_get_fns.c mp_set_fns.c \ + version.c nextprime.c primesieve.c +EXTRA_libgmp_la_SOURCES = tal-debug.c tal-notreent.c tal-reent.c +libgmp_la_DEPENDENCIES = @TAL_OBJECT@ \ + $(MPF_OBJECTS) $(MPZ_OBJECTS) $(MPQ_OBJECTS) \ + $(MPN_OBJECTS) @mpn_objs_in_libgmp@ \ + $(PRINTF_OBJECTS) $(SCANF_OBJECTS) $(RANDOM_OBJECTS) +libgmp_la_LIBADD = $(libgmp_la_DEPENDENCIES) +libgmp_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMP_LDFLAGS) \ + -version-info $(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE) + + +# We need at least one .cc file in $(libgmpxx_la_SOURCES) so automake will +# use $(CXXLINK) rather than the plain C $(LINK). cxx/dummy.cc is that +# file. + +if WANT_CXX +GMPXX_LTLIBRARIES_OPTION = libgmpxx.la +endif +libgmpxx_la_SOURCES = cxx/dummy.cc +libgmpxx_la_DEPENDENCIES = $(CXX_OBJECTS) libgmp.la +libgmpxx_la_LIBADD = $(libgmpxx_la_DEPENDENCIES) +libgmpxx_la_LDFLAGS = $(GMP_LDFLAGS) $(LIBGMPXX_LDFLAGS) \ + -version-info $(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE) + + + +install-data-hook: + @echo '' + @echo '+-------------------------------------------------------------+' + @echo '| CAUTION: |' + @echo '| |' + @echo '| If you have not already run "make check", then we strongly |' + @echo '| recommend you do so. |' + @echo '| |' + @echo '| GMP has been carefully tested by its authors, but compilers |' + @echo '| are all too often released with serious bugs. GMP tends to |' + @echo '| explore interesting corners in compilers and has hit bugs |' + @echo '| on quite a few occasions. |' + @echo '| |' + @echo '+-------------------------------------------------------------+' + @echo '' + + +# The "test -f" support for srcdir!=builddir is similar to the automake .c.o +# etc rules, but with each foo.c explicitly, since $< is not portable +# outside an inference rule. +# +# A quoted 'foo.c' is used with the "test -f"'s to avoid Sun make rewriting +# it as part of its VPATH support. See the autoconf manual "Limitations of +# Make". +# +# Generated .h files which are used by gmp-impl.h are BUILT_SOURCES since +# they must exist before anything can be compiled. +# +# Other generated .h files are also BUILT_SOURCES so as to get all the +# build-system stuff over and done with at the start. Also, dependencies on +# the .h files are not properly expressed for the various objects that use +# them. + +EXTRA_DIST += bootstrap.c + +fac_table.h: gen-fac$(EXEEXT_FOR_BUILD) + ./gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fac_table.h || (rm -f fac_table.h; exit 1) +BUILT_SOURCES += fac_table.h + +gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c + $(CC_FOR_BUILD) `test -f 'gen-fac$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fac$(U_FOR_BUILD).c -o gen-fac$(EXEEXT_FOR_BUILD) +DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-fac.c + + +fib_table.h: gen-fib$(EXEEXT_FOR_BUILD) + ./gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1) +BUILT_SOURCES += fib_table.h + +mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD) + ./gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1) +BUILT_SOURCES += mpn/fib_table.c + +gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c + $(CC_FOR_BUILD) `test -f 'gen-fib$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-fib$(U_FOR_BUILD).c -o gen-fib$(EXEEXT_FOR_BUILD) +DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-fib.c + + +mp_bases.h: gen-bases$(EXEEXT_FOR_BUILD) + ./gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1) +BUILT_SOURCES += mp_bases.h + +mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD) + ./gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1) +BUILT_SOURCES += mpn/mp_bases.c + +gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c + $(CC_FOR_BUILD) `test -f 'gen-bases$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-bases$(U_FOR_BUILD).c -o gen-bases$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) +DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-bases.c + + +trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD) + ./gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1) +BUILT_SOURCES += trialdivtab.h + +gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c + $(CC_FOR_BUILD) `test -f 'gen-trialdivtab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-trialdivtab$(U_FOR_BUILD).c -o gen-trialdivtab$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) +DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-trialdivtab.c + + +mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD) + ./gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1) +BUILT_SOURCES += mpn/jacobitab.h + +gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c + $(CC_FOR_BUILD) `test -f 'gen-jacobitab$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-jacobitab$(U_FOR_BUILD).c -o gen-jacobitab$(EXEEXT_FOR_BUILD) +DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-jacobitab.c + + +mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD) + ./gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1) +BUILT_SOURCES += mpn/perfsqr.h + +gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c + $(CC_FOR_BUILD) `test -f 'gen-psqr$(U_FOR_BUILD).c' || echo '$(srcdir)/'`gen-psqr$(U_FOR_BUILD).c -o gen-psqr$(EXEEXT_FOR_BUILD) $(LIBM_FOR_BUILD) +DISTCLEANFILES += gen-psqr$(EXEEXT_FOR_BUILD) +EXTRA_DIST += gen-psqr.c + +# Distribute mini-gmp. Test sources copied by dist-hook. +EXTRA_DIST += mini-gmp/README mini-gmp/mini-gmp.c mini-gmp/mini-gmp.h \ + mini-gmp/tests/Makefile mini-gmp/tests/run-tests + +# Avoid: CVS - cvs directories +# *~ - emacs backups +# .#* - cvs merge originals +# +# *~ and .#* only occur when a whole directory without it's own Makefile.am +# is distributed, like "doc" or the mpn cpu subdirectories. +# +dist-hook: + -find $(distdir) \( -name CVS -type d \) -o -name "*~" -o -name ".#*" \ + | xargs rm -rf + cp "$(srcdir)"/mini-gmp/tests/*.[ch] "$(distdir)/mini-gmp/tests" +# grep -F $(VERSION) $(srcdir)/Makefile.am \ +# | grep -q "^# *$(VERSION) *$(LIBGMP_LT_CURRENT):$(LIBGMP_LT_REVISION):$(LIBGMP_LT_AGE) *$(LIBGMPXX_LT_CURRENT):$(LIBGMPXX_LT_REVISION):$(LIBGMPXX_LT_AGE)" +# test -z "`sed -n 's/^# *[0-9]*\.[0-9]*\.[0-9]* *\([0-9]*:[0-9]*:[0-9]*\) *\([0-9]*:[0-9]*:[0-9]*\) *\([0-9]*:[0-9]*:[0-9]*\).*/A\1\nB\2\nC\3/p' $(srcdir)/Makefile.am | grep -v 'A6:3:3\|B3:5:0\|C4:7:1' | sort | uniq -d`" + +.PHONY: check-mini-gmp clean-mini-gmp + +check-mini-gmp: + abs_srcdir="`cd $(srcdir) && pwd`" ; \ + $(MKDIR_P) mini-gmp/tests \ + && cd mini-gmp/tests \ + && LD_LIBRARY_PATH="../../.libs:$$LD_LIBRARY_PATH" \ + DYLD_LIBRARY_PATH="../../.libs:$$DYLD_LIBRARY_PATH" \ + $(MAKE) -f "$$abs_srcdir/mini-gmp/tests/Makefile" \ + VPATH="$$abs_srcdir/mini-gmp/tests" \ + srcdir="$$abs_srcdir/mini-gmp/tests" \ + MINI_GMP_DIR="$$abs_srcdir/mini-gmp" \ + LDFLAGS="-L../../.libs" \ + LIBS="-lgmp -lm" \ + CC="$(CC_FOR_BUILD)" EXTRA_CFLAGS="-g -I../.." check + +clean-mini-gmp: + if [ -d mini-gmp/tests ] ; then \ + abs_srcdir="`cd $(srcdir) && pwd`" ; \ + cd mini-gmp/tests \ + && $(MAKE) -f "$$abs_srcdir/mini-gmp/tests/Makefile" clean ; \ + fi + +clean-local: clean-mini-gmp +distclean-local: clean-mini-gmp diff --git a/Build/source/libs/gmp/gmp-6.0.0/NEWS b/Build/source/libs/gmp/gmp-6.0.0/NEWS new file mode 100644 index 00000000000..5f77bce1e14 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/NEWS @@ -0,0 +1,891 @@ +Copyright 1996, 1999-2014 Free Software Foundation, Inc. + +Verbatim copying and distribution of this entire article is permitted in any +medium, provided this notice is preserved. + + +Changes between GMP version 5.1.* and 6.0.0 + + BUGS FIXED + * The function mpz_invert now considers any number invertible in Z/1Z. + + * The mpn multiply code now handles operands of more than 2^31 limbs + correctly. (Note however that the mpz code is limited to 2^32 bits on + 32-bit hosts and 2^37 bits on 64-bit hosts.) + + * Contains all fixes from release 5.1.3. + + SPEEDUPS + * Plain division of large operands is faster and more monotonous in operand + size. + + * Major speedup for ARM, in particular ARM Cortex-A15, thanks to improved + assembly. + + * Major speedup for SPARC T4/T5 and speedup also for T3, thanks to a lot of + new assembly. + + * Speedup for Intel Sandy Bridge, Ivy Bridge, Haswell, thanks to rewritten + and vastly expanded assembly support. Speedup also for the older Core 2 + and Nehalem. + + * Faster mixed arithmetic between mpq_class and double. + + * With g++, optimise more operations when one argument is a simple constant. + + FEATURES + * Support for new Intel and AMD CPUs. + + * Support for ARM64 alias Aarch64 alias ARMv8. + + * New public functions mpn_sec_mul and mpn_sec_sqr, implementing side-channel + silent multiplication and squaring. + + * New public functions mpn_sec_div_qr and mpn_sec_div_r, implementing + side-channel silent division. + + * New public functions mpn_cnd_add_n and mpn_cnd_sub_n. Side-channel silent + conditional addition and subtraction. + + * New public function mpn_sec_powm, implementing side-channel silent modexp. + + * New public function mpn_sec_invert, implementing side-channel silent + modular inversion. + + * Better support for applications which use the mpz_t type, but nevertheless + need to call some of the lower-level mpn functions. See the documentation + for mpz_limbs_read and related functions. + + MISC + * This release will not work on NetBSD 5.x, FreeBSD 7.x, 8.x or 9 series + before 9.3. The reason is that the m4 command is not correctly + implemented. (Workaround: Use an older GMP release, or install GNU m4 from + /usr/ports and tell GMP to use it.) + + * This release will not build properly on FreeBSD/amd64 before version 10 + using the 32-bit ABI (once a working m4 is installed). The reason is + broken limits.h. (Workaround: Use an older GMP release if using the 32-bit + ABI on these FreeBSD releases is important.) + + * This release will not work reliably on FreeBSD 10.0 for i386 or amd64 using + the 32-bit ABI. The reason is bugs in the compiler 'clang'. Depending on + CPU-dependent compiler flags, GMP may or may not be miscompiled in a + particular build. (Workaround: Compiling gcc from /usr/ports should work, + except that gcc circularly depends on GMP; we have not been able to test + that workaround due to FreeBSD 10.0 bugs affecting its ability to run under + KVM and Xen.) + + * This release will not compile on FreeBSD before version 10 for i386, + targeting any modern AMD processor. The reason is bugs in the old gcc + bundled with FreeBSD. (Workaround: install a less obsolete gcc from + /usr/ports and tell GMP to use it, or override the -march=amdfam10 + GMP configure command line argument.) + + +Changes between GMP version 5.1.2 and 5.1.3 + + BUGS FIXED + * The internal functions mpn_sbpi1_div_qr_sec mpn_sbpi1_div_r_sec could + compute garbage with a low probability. They are now rewritten, and the + test code has been improved. + + * A bug in the ia64 implementation of mpn_divrem_2, clobbering some + callee-save registers, has been fixed. This is an internal + function, with the bug manifesting itself as miscomputation in, + e.g., mpn_sqrtrem. + + * The documentation now correctly says 'const' for input arguments. + + SPEEDUPS + * None. + + FEATURES + * None. + + MISC + * None. + + +Changes between GMP version 5.1.1 and 5.1.2 + + BUGS FIXED + * A bug in mpz_powm_ui triggered by base arguments of at least 15000 decimal + digits or mod arguments of at least 7500 decimal digits has been fixed. + + * An AMD Bulldozer specific bug affecting the 64-bit Windows ABI has been + fixed. This bug was in a key function (mpn_mul_1) and made both Bulldozer + specific builds and fat builds run on Bulldozer completely non-functional. + + SPEEDUPS + * None. + + FEATURES + * None. + + MISC + * Fixes and generalisations to the test suite. + + * Minor portability enhancements. + + +Changes between GMP version 5.1.0 and 5.1.1 + + BUGS FIXED + * On Windows 64-bit, an error causing link errors about + __gmp_binvert_limb_table has been fixed. + + * Aarch64 alias ARM64 support now works. + + * A possible buffer overrun in mpz_ior has been fixed. + + * A rare sign flip in mpz_remove has been fixed. + + * A bug causing problems with mpf numbers with absolute value >= 2^31 has + been fixed. + + * Several bugs in mini-gmp have been fixed. + + * A bug caused by automake, related to the 'distcheck' target, has been fixed + by upgrading the automake used for GMP release engineering. + + SPEEDUPS + * None. + + FEATURES + * Preliminary support for the x32 ABI under x86-64. + + MISC + * The mini-gmp testsuite now tests the entire set of functions. + + * Various improvements of the GMP testsuite. + + +Changes between GMP version 5.0.* and 5.1.0 + + BUGS FIXED + * When reading a C++ number (like mpz_class) in an istream reaches the end + of the stream, the eofbit is now set. + + * The result sign of mpz_rootrem's remainder is now always correct. + + * The mpz_remove function now handles negative divisors. + + * Contains all fixes from release 5.0.5. + + SPEEDUPS + * The n-factorial and n-over-k functions have been reimplemented for great + speedups for small and large operands. + + * New subquadratic algorithm for the Kronecker/Jacobi/Legendre symbol. + + * Major speedup for ARM, in particular ARM Cortex-A9 and A15, thanks to broad + assembly support. + + * Significant speedup for POWER6 and POWER7 thanks to improved assembly. + + * The performance under M$ Windows' 64-bit ABI has been greatly improved + thanks to complete assembly support. + + * Minor speed improvements of many functions and for many platforms. + + FEATURES + * Many new CPUs recognised. + + * New functions for multi-factorials, and primorial: mpz_2fac_ui, + mpz_mfac_uiui and mpz_primorial_ui. + + * The mpz_powm_sec function now uses side-channel silent division for + converting into Montgomery residues. + + * The fat binary mechanism is now more robust in its CPU recognition. + + MISC + * Inclusion of assembly code is now controlled by the configure options + --enable-assembly and --disable-assembly. The "none" CPU target is gone. + + * In C++, the conversions mpq_class->mpz_class, mpf_class->mpz_class and + mpf_class->mpq_class are now explicit. + + * Includes "mini-gmp", a small, portable, but less efficient, implementation + of a subset of GMP's mpn and mpz interfaces. Used in GMP bootstrap, but it + can also be bundled with applications as a fallback when the real GMP + library is unavailable. + + * The ABIs under AIX are no longer called aix32 and aix64, but mode64 and 32. + This is more consistent with other powerpc systems. + + * The coverage of the testsuite has been improved, using the lcov tool. See + also https://gmplib.org/devel/lcov/. + + * It is now possible to compile GMP using a C++ compiler. + + * K&R C compilers are no longer supported. + + * The BSD MP compatibility functions have been removed. + + +Changes between GMP version 5.0.4 and 5.0.5 + + BUGS FIXED + * A bug causing AMD 11h processors to be treated like AMD 10h has been fixed. + The 11h processors do not correctly handle all 10h (aka K10) instructions, + and GMP's use of these instructions results in major miscomputations (not + as one would have hoped CPU traps of some 'illegal instruction' sort). + + * A bug affecting recent Intel Sandy Bridge CPUs resulting in configuration + failures has been fixed. + + SPEEDUPS + * None. + + FEATURES + * A couple of tests added to the self-check suite. + + MISC + * None. + + +Changes between GMP version 5.0.3 and 5.0.4 + + BUGS FIXED + * Thresholds in mpn_powm_sec for both fat and non-fat builds are now used + safely, plugging a one-word buffer overrun introduced in the 5.0.3 release + (for non-fat) and a multi-word buffer overrun that existed since 5.0 (for + fat). (We have not been able to provoke malign stack smashing in any of + the ~100 configurations explored by the GMP nightly builds, but the bug + should be assumed to be exploitable.) + + * Two bugs in multiplication code causing incorrect computation with + extremely low probability have been fixed. + + * A bug in the test suite causing buffer overruns during "make check", + sometimes leading to subsequent malloc crashes, has been fixed. + + * Two bugs in the gcd code have been fixed. They could lead to incorrect + results, but for uniformly distributed random operands, the likelihood for + that is infinitesimally small. (There was also a third bug, but that was + an incorrect ASSERT, which furthermore was not enabled by default.) + + * A bug affecting 32-bit PowerPC division has been fixed. The bug caused + miscomputation for certain divisors in the range 2^32 ... 2^64-1 (about 1 + in 2^30 of these). + + SPEEDUPS + * None, except indirectly through recognition of new CPUs, and through better + tuning parameters. + + FEATURES + * Some more tests added to the self-check suite. + + * The AMD "Bulldozer" CPU is now recognised. + + MISC + * None. + + +Changes between GMP version 5.0.2 and 5.0.3 + + BUGS FIXED + * A few minor bugs related to portability fixed. + + * A slight timing leak of the powm_sec functions have been sealed. (This + leak could possibly be used to extract the most significant few bits of the + exponent. "Few" here means at most 10.) + + * The mpz_nextprime function now runs a safer number of pseudo-random prime + tests. + + * A bug in division code possibly causing incorrect computation was fixed. + + SPEEDUPS + * None, except indirectly through recognition of new CPUs, and through better + tuning parameters. + + FEATURES + * New CPUs recognised. + + * IBM S/390 are now supported in both 31/32-bit and 64-bit mode. (We have + not been able to fully test this on any multilib machine, since IBM expired + our guest account a few days before our release.) + + MISC + * None. + + +Changes between GMP version 5.0.1 and 5.0.2 + + BUGS FIXED + * Many minor bugs related to portability fixed. + + * The support for HPPA 2.0N now works, after an assembly bug fix. + + * A test case type error has been fixed. The symptom of this bug was + spurious 'make check' failures. + + SPEEDUPS + * None, except indirectly through recognition of new CPUs. + + FEATURES + * Fat builds are now supported for 64-bit x86 processors also under Darwin. + + MISC + * None. + + +Changes between GMP version 5.0.0 and 5.0.1 + + BUGS FIXED + * Fat builds fixed. + + * Fixed crash for huge multiplies when old FFT_TABLE2 type of parameter + selection tables' sentinel was smaller than multiplied operands. + + * The solib numbers now reflect the removal of the documented but preliminary + mpn_bdivmod function; we correctly flag incompatibility with GMP 4.3. GMP + 5.0.0 has this wrong, and should perhaps be uninstalled to avoid confusion. + + SPEEDUPS + * Multiplication of large numbers has indirectly been sped up through better + FFT tuning and processor recognition. Since many operations depend on + multiplication, there will be a general speedup. + + FEATURES + * More Core i3, i5 an Core i7 processor models are recognised. + + * Fixes and workarounds for Mac OS quirks should make this GMP version build + using many of the different versions of "Xcode". + + MISC + * The amount of scratch memory needed for multiplication of huge numbers has + been reduced substantially (but is still larger than in GMP 4.3.) + + * Likewise, the amount of scratch memory needed for division of large numbers + has been reduced substantially. + + * The FFT tuning code of tune/tuneup.c has been completely rewritten, and + new, large FFT parameter selection tables are provided for many machines. + + * Upgraded to the latest autoconf, automake, libtool. + + +Changes between GMP version 4.3.X and 5.0.0 + + BUGS FIXED + * None (contains the same fixes as release 4.3.2). + + SPEEDUPS + * Multiplication has been overhauled: + (1) Multiplication of larger same size operands has been improved with + the addition of two new Toom functions and a new internal function + mpn_mulmod_bnm1 (computing U * V mod (B^n-1), B being the word base. + This latter function is used for the largest products, waiting for a + better Schoenhage-Strassen U * V mod (B^n+1) implementation. + (2) Likewise for squaring. + (3) Multiplication of different size operands has been improved with the + addition of many new Toom function, and by selecting underlying + functions better from the main multiply functions. + + * Division and mod have been overhauled: + (1) Plain "schoolbook" division is reimplemented using faster quotient + approximation. + (2) Division Q = N/D, R = N mod D where both the quotient and remainder + are needed now runs in time O(M(log(N))). This is an improvement of + a factor log(log(N)) + (3) Division where just the quotient is needed is now O(M(log(Q))) on + average. + (4) Modulo operations using Montgomery REDC form now take time O(M(n)). + (5) Exact division Q = N/D by means of mpz_divexact has been improved + for all sizes, and now runs in time O(M(log(N))). + + * The function mpz_powm is now faster for all sizes. Its complexity has + gone from O(M(n)log(n)m) to O(M(n)m) where n is the size of the modulo + argument and m is the size of the exponent. It is also radically + faster for even modulus, since it now partially factors such modulus + and performs two smaller modexp operations, then uses CRT. + + * The internal support for multiplication yielding just the lower n limbs + has been improved by using Mulders' algorithm. + + * Computation of inverses, both plain 1/N and 1/N mod B^n have been + improved by using well-tuned Newton iterations, and wrap-around + multiplication using mpn_mulmod_bnm1. + + * A new algorithm makes mpz_perfect_power_p asymptotically faster. + + * The function mpz_remove uses a much faster algorithm, is better tuned, + and also benefits from the division improvements. + + * Intel Atom and VIA Nano specific optimisations. + + * Plus hundreds of smaller improvements and tweaks! + + FEATURES + * New mpz function: mpz_powm_sec for side-channel quiet modexp + computations. + + * New mpn functions: mpn_sqr, mpn_and_n, mpn_ior_n, mpn_xor_n, mpn_nand_n, + mpn_nior_n, mpn_xnor_n, mpn_andn_n, mpn_iorn_n, mpn_com, mpn_neg, + mpn_copyi, mpn_copyd, mpn_zero. + + * The function mpn_tdiv_qr now allows certain argument overlap. + + * Support for fat binaries for 64-bit x86 processors has been added. + + * A new type, mp_bitcnt_t for bignum bit counts, has been introduced. + + * Support for Windows64 through mingw64 has been added. + + * The cofactors of mpz_gcdext and mpn_gcdext are now more strictly + normalised, returning to how GMP 4.2 worked. (Note that also release + 4.3.2 has this change.) + + MISC + * The mpn_mul function should no longer be used for squaring, + instead use the new mpn_sqr. + + * The algorithm selection has been improved, the number of thresholds have + more than doubled, and the tuning and use of existing thresholds have + been improved. + + * The tune/speed program can measure many of new functions. + + * The mpn_bdivmod function has been removed. We do not consider this an + incompatible change, since the function was marked as preliminary. + + * The testsuite has been enhanced in various ways. + + +Changes between GMP version 4.3.1 and 4.3.2 + + Bugs: + * Fixed bug in mpf_eq. + * Fixed overflow issues in mpz_set_str, mpz_inp_str, mpf_set_str, and + mpf_get_str. + * Avoid unbounded stack allocation for unbalanced multiplication. + * Fixed bug in FFT multiplication. + + Speedups: + * None, except that proper processor recognition helps affected processors. + + Features: + * Recognise more "Core 2" processor variants. + * The cofactors of mpz_gcdext and mpn_gcdext are now more strictly + normalised, returning to how GMP 4.2 worked. + + +Changes between GMP version 4.3.0 and 4.3.1 + + Bugs: + * Fixed bug in mpn_gcdext, affecting also mpz_gcdext and mpz_invert. + The bug could cause a cofactor to have a leading zero limb, which + could lead to crashes or miscomputation later on. + * Fixed some minor documentation issues. + + Speedups: + * None. + + Features: + * Workarounds for various issues with Mac OS X's build tools. + * Recognise more IBM "POWER" processor variants. + + +Changes between GMP version 4.2.X and 4.3.0 + + Bugs: + * Fixed bug in mpz_perfect_power_p with recognition of negative perfect + powers that can be written both as an even and odd power. + * We might accidentally have added bugs since there is a large amount of + new code in this release. + + Speedups: + * Vastly improved assembly code for x86-64 processors from AMD and Intel. + * Major improvements also for many other processor families, such as + Alpha, PowerPC, and Itanium. + * New sub-quadratic mpn_gcd and mpn_gcdext, as well as improved basecase + gcd code. + * The multiply FFT code has been slightly improved. + * Balanced multiplication now uses 4-way Toom in addition to schoolbook, + Karatsuba, 3-way Toom, and FFT. + * Unbalanced multiplication has been vastly improved. + * Improved schoolbook division by means of faster quotient approximation. + * Several new algorithms for division and mod by single limbs, giving + many-fold speedups. + * Improved nth root computations. + * The mpz_nextprime function uses sieving and is much faster. + * Countless minor tweaks. + + Features: + * Updated support for fat binaries for x86_32 include current processors + * Lots of new mpn internal interfaces. Some of them will become public + in a future GMP release. + * Support for the 32-bit ABI under x86-apple-darwin. + * x86 CPU recognition code should now default better for future + processors. + * The experimental nails feature does not work in this release, but + it might be re-enabled in the future. + + Misc: + * The gmp_version variable now always contains three parts. For this + release, it is "4.3.0". + + +Changes between GMP version 4.2.3 and 4.2.4 + + Bugs: + * Fix bug with parsing exponent '+' sign in mpf. + * Fix an allocation bug in mpf_set_str, also affecting mpf_init_set_str, and + mpf_inp_str. + + Speedups: + * None, except that proper processor recognition helps affected processors. + + Features: + * Recognize new AMD processors. + + +Changes between GMP version 4.2.2 and 4.2.3 + + Bugs: + * Fix x86 CPU recognition code to properly identify recent AMD and Intel + 64-bit processors. + * The >> operator of the C++ wrapper gmpxx.h now does floor rounding, not + truncation. + * Inline semantics now follow the C99 standard, and works with recent GCC + releases. + * C++ bitwise logical operations work for more types. + * For C++, gmp.h now includes cstdio, improving compiler compatibility. + * Bases > 36 now work properly in mpf_set_str. + + Speedups: + * None, except that proper processor recognition helps affected processors. + + Features: + * The allocation functions now detect overflow of the mpz_t type. This means + that overflow will now cause an abort, except when the allocation + computation itself overflows. (Such overflow can probably only happen in + powering functions; we will detect powering overflow in the future.) + + +Changes between GMP version 4.2.1 and 4.2.2 + + * License is now LGPL version 3. + + Bugs: + * Shared library numbers corrected for libcxx. + * Fixed serious bug in gmpxx.h where a=a+b*c would generate garbage. + Note that this only affects C++ programs. + * Fix crash in mpz_set_d for arguments with large negative exponent. + * Fix 32-bit ABI bug with Itanium assembly for popcount and hamdist. + * Fix assembly syntax problem for powerpc-ibm-aix with AIX native assembler. + * Fix problems with x86 --enable-fat, where the compiler where told to + generate code for the build machine, not plain i386 code as it should. + * Improved recognition of powerpc systems wrt Altivec/VMX capability. + * Misc minor fixes, mainly workarounds for compiler/assembler bugs. + + Speedups: + * "Core 2" and Pentium 4 processors, running in 64-bit mode will get a + slight boost as they are now specifically recognized. + + Features: + * New support for x86_64-solaris + * New, rudimentary support for x86-apple-darwin and x86_64-apple-darwin. + (Please see https://gmplib.org/macos.html for more information.) + + +Changes between GMP version 4.2 and 4.2.1 + + Bugs: + * Shared library numbers corrected. + * Broken support for 32-bit AIX fixed. + * Misc minor fixes. + + Speedups: + * Exact division (mpz_divexact) now falls back to plain division for large + operands. + + Features: + * Support for some new systems. + + +Changes between GMP version 4.1.4 and 4.2 + + Bugs: + * Minor bug fixes and code generalizations. + * Expanded and improved test suite. + + Speedups: + * Many minor optimizations, too many to mention here. + * Division now always subquadratic. + * Computation of n-factorial much faster. + * Added basic x86-64 assembly code. + * Floating-point output is now subquadratic for all bases. + * FFT multiply code now about 25% faster. + * Toom3 multiply code faster. + + Features: + * Much improved configure. + * Workarounds for many more compiler bugs. + * Temporary allocations are now made on the stack only if small. + * New systems supported: HPPA-2.0 gcc, IA-64 HP-UX, PowerPC-64 Darwin, + Sparc64 GNU/Linux. + * New i386 fat binaries, selecting optimised code at runtime (--enable-fat). + * New build option: --enable-profiling=instrument. + * New memory function: mp_get_memory_functions. + * New Mersenne Twister random numbers: gmp_randinit_mt, also now used for + gmp_randinit_default. + * New random functions: gmp_randinit_set, gmp_urandomb_ui, gmp_urandomm_ui. + * New integer functions: mpz_combit, mpz_rootrem. + * gmp_printf etc new type "M" for mp_limb_t. + * gmp_scanf and friends now accept C99 hex floats. + * Numeric input and output can now be in bases up to 62. + * Comparisons mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d recognise infinities. + * Conversions mpz_get_d, mpq_get_d, mpf_get_d truncate towards zero, + previously their behaviour was unspecified. + * Fixes for overflow issues with operands >= 2^31 bits. + + Caveats: + * mpfr is gone, and will from now on be released only separately. Please see + www.mpfr.org. + + +Changes between GMP version 4.1.3 and 4.1.4 + +* Bug fix to FFT multiplication code (crash for huge operands). +* Bug fix to mpf_sub (miscomputation). +* Support for powerpc64-gnu-linux. +* Better support for AMD64 in 32-bit mode. +* Upwardly binary compatible with 4.1.3, 4.1.2, 4.1.1, 4.1, 4.0.1, 4.0, + and 3.x versions. + + +Changes between GMP version 4.1.2 and 4.1.3 + +* Bug fix for FFT multiplication code (miscomputation). +* Bug fix to K6 assembly code for gcd. +* Bug fix to IA-64 assembly code for population count. +* Portability improvements, most notably functional AMD64 support. +* mpz_export allows NULL for countp parameter. +* Many minor bug fixes. +* mpz_export allows NULL for countp parameter. +* Upwardly binary compatible with 4.1.2, 4.1.1, 4.1, 4.0.1, 4.0, and 3.x + versions. + + +Changes between GMP version 4.1.1 and 4.1.2 + +* Bug fixes. + + +Changes between GMP version 4.1 and 4.1.1 + +* Bug fixes. +* New systems supported: NetBSD and OpenBSD sparc64. + + +Changes between GMP version 4.0.1 and 4.1 + +* Bug fixes. +* Speed improvements. +* Upwardly binary compatible with 4.0, 4.0.1, and 3.x versions. +* Asymptotically fast conversion to/from strings (mpz, mpq, mpn levels), but + also major speed improvements for tiny operands. +* mpn_get_str parameter restrictions relaxed. +* Major speed improvements for HPPA 2.0 systems. +* Major speed improvements for UltraSPARC systems. +* Major speed improvements for IA-64 systems (but still sub-optimal code). +* Extended test suite. +* mpfr is back, with many bug fixes and portability improvements. +* New function: mpz_ui_sub. +* New functions: mpz_export, mpz_import. +* Optimization for nth root functions (mpz_root, mpz_perfect_power_p). +* Optimization for extended gcd (mpz_gcdext, mpz_invert, mpn_gcdext). +* Generalized low-level number format, reserving a `nails' part of each + limb. (Please note that this is really experimental; some functions + are likely to compute garbage when nails are enabled.) +* Nails-enabled Alpha 21264 assembly code, allowing up to 75% better + performance. (Use --enable-nails=4 to enable it.) + + +Changes between GMP version 4.0 and 4.0.1 + +* Bug fixes. + + +Changes between GMP version 3.1.1 and 4.0 + +* Bug fixes. +* Speed improvements. +* Upwardly binary compatible with 3.x versions. +* New CPU support: IA-64, Pentium 4. +* Improved CPU support: 21264, Cray vector systems. +* Support for all MIPS ABIs: o32, n32, 64. +* New systems supported: Darwin, SCO, Windows DLLs. +* New divide-and-conquer square root algorithm. +* New algorithms chapter in the manual. +* New malloc reentrant temporary memory method. +* New C++ class interface by Gerardo Ballabio (beta). +* Revamped configure, featuring ABI selection. +* Speed improvements for mpz_powm and mpz_powm_ui (mainly affecting small + operands). +* mpz_perfect_power_p now properly recognizes 0, 1, and negative perfect + powers. +* mpz_hamdist now supports negative operands. +* mpz_jacobi now accepts non-positive denominators. +* mpz_powm now supports negative exponents. +* mpn_mul_1 operand overlap requirements relaxed. +* Float input and output uses locale specific decimal point where available. +* New gmp_printf, gmp_scanf and related functions. +* New division functions: mpz_cdiv_q_2exp, mpz_cdiv_r_2exp, mpz_divexact_ui. +* New divisibility tests: mpz_divisible_p, mpz_divisible_ui_p, + mpz_divisible_2exp_p, mpz_congruent_p, mpz_congruent_ui_p, + mpz_congruent_2exp_p. +* New Fibonacci function: mpz_fib2_ui. +* New Lucas number functions: mpz_lucnum_ui, mpz_lucnum2_ui. +* Other new integer functions: mpz_cmp_d, mpz_cmpabs_d, mpz_get_d_2exp, + mpz_init2, mpz_kronecker, mpz_lcm_ui, mpz_realloc2. +* New rational I/O: mpq_get_str, mpq_inp_str, mpq_out_str, mpq_set_str. +* Other new rational functions: mpq_abs, mpq_cmp_si, mpq_div_2exp, + mpq_mul_2exp, mpq_set_f. +* New float tests: mpf_integer_p, mpf_fits_sint_p, mpf_fits_slong_p, + mpf_fits_sshort_p, mpf_fits_uint_p, mpf_fits_ulong_p, mpf_fits_ushort_p. +* Other new float functions: mpf_cmp_d, mpf_get_default_prec, mpf_get_si, + mpf_get_ui, mpf_get_d_2exp. +* New random functions: gmp_randinit_default, gmp_randinit_lc_2exp_size. +* New demo expression string parser (see demos/expr). +* New preliminary perl interface (see demos/perl). +* Tuned algorithm thresholds for many more CPUs. + + +Changes between GMP version 3.1 and 3.1.1 + +* Bug fixes for division (rare), mpf_get_str, FFT, and miscellaneous minor + things. + + +Changes between GMP version 3.0 and 3.1 + +* Bug fixes. +* Improved `make check' running more tests. +* Tuned algorithm cutoff points for many machines. This will improve speed for + a lot of operations, in some cases by a large amount. +* Major speed improvements: Alpha 21264. +* Some speed improvements: Cray vector computers, AMD K6 and Athlon, Intel P5 + and Pentium Pro/II/III. +* The mpf_get_prec function now works as it did in GMP 2. +* New utilities for auto-tuning and speed measuring. +* Multiplication now optionally uses FFT for very large operands. (To enable + it, pass --enable-fft to configure.) +* Support for new systems: Solaris running on x86, FreeBSD 5, HP-UX 11, Cray + vector computers, Rhapsody, Nextstep/Openstep, MacOS. +* Support for shared libraries on 32-bit HPPA. +* New integer functions: mpz_mul_si, mpz_odd_p, mpz_even_p. +* New Kronecker symbol functions: mpz_kronecker_si, mpz_kronecker_ui, + mpz_si_kronecker, mpz_ui_kronecker. +* New rational functions: mpq_out_str, mpq_swap. +* New float functions: mpf_swap. +* New mpn functions: mpn_divexact_by3c, mpn_tdiv_qr. +* New EXPERIMENTAL function layer for accurate floating-point arithmetic, mpfr. + To try it, pass --enable-mpfr to configure. See the mpfr subdirectory for + more information; it is not documented in the main GMP manual. + + +Changes between GMP version 3.0 and 3.0.1 + +* Memory leaks in gmp_randinit and mpz_probab_prime_p fixed. +* Documentation for gmp_randinit fixed. Misc documentation errors fixed. + + +Changes between GMP version 2.0 and 3.0 + +* Source level compatibility with past releases (except mpn_gcd). +* Bug fixes. +* Much improved speed thanks to both host independent and host dependent + optimizations. +* Switch to autoconf/automake/libtool. +* Support for building libgmp as a shared library. +* Multiplication and squaring using 3-way Toom-Cook. +* Division using the Burnikel-Ziegler method. +* New functions computing binomial coefficients: mpz_bin_ui, mpz_bin_uiui. +* New function computing Fibonacci numbers: mpz_fib_ui. +* New random number generators: mpf_urandomb, mpz_rrandomb, mpz_urandomb, + mpz_urandomm, gmp_randclear, gmp_randinit, gmp_randinit_lc_2exp, + gmp_randseed, gmp_randseed_ui. +* New function for quickly extracting limbs: mpz_getlimbn. +* New functions performing integer size tests: mpz_fits_sint_p, + mpz_fits_slong_p, mpz_fits_sshort_p, mpz_fits_uint_p, mpz_fits_ulong_p, + mpz_fits_ushort_p. +* New mpf functions: mpf_ceil, mpf_floor, mpf_pow_ui, mpf_trunc. +* New mpq function: mpq_set_d. +* New mpz functions: mpz_addmul_ui, mpz_cmpabs, mpz_cmpabs_ui, mpz_lcm, + mpz_nextprime, mpz_perfect_power_p, mpz_remove, mpz_root, mpz_swap, + mpz_tdiv_ui, mpz_tstbit, mpz_xor. +* New mpn function: mpn_divexact_by3. +* New CPU support: DEC Alpha 21264, AMD K6 and Athlon, HPPA 2.0 and 64, + Intel Pentium Pro and Pentium-II/III, Sparc 64, PowerPC 64. +* Almost 10 times faster mpz_invert and mpn_gcdext. +* The interface of mpn_gcd has changed. +* Better support for MIPS R4x000 and R5000 under Irix 6. +* Improved support for SPARCv8 and SPARCv9 processors. + + +Changes between GMP version 2.0 and 2.0.2 + +* Many bug fixes. + + +Changes between GMP version 1.3.2 and 2.0 + +* Division routines in the mpz class have changed. There are three classes of + functions, that rounds the quotient to -infinity, 0, and +infinity, + respectively. The first class of functions have names that begin with + mpz_fdiv (f is short for floor), the second class' names begin with mpz_tdiv + (t is short for trunc), and the third class' names begin with mpz_cdiv (c is + short for ceil). + + The old division routines beginning with mpz_m are similar to the new + mpz_fdiv, with the exception that some of the new functions return useful + values. + + The old function names can still be used. All the old functions names will + now do floor division, not trunc division as some of them used to. This was + changed to make the functions more compatible with common mathematical + practice. + + The mpz_mod and mpz_mod_ui functions now compute the mathematical mod + function. I.e., the sign of the 2nd argument is ignored. + +* The mpq assignment functions do not canonicalize their results. A new + function, mpq_canonicalize must be called by the user if the result is not + known to be canonical. +* The mpn functions are now documented. These functions are intended for + very time critical applications, or applications that need full control over + memory allocation. Note that the mpn interface is irregular and hard to + use. +* New functions for arbitrary precision floating point arithmetic. Names + begin with `mpf_'. Associated type mpf_t. +* New and improved mpz functions, including much faster GCD, fast exact + division (mpz_divexact), bit scan (mpz_scan0 and mpz_scan1), and number + theoretical functions like Jacobi (mpz_jacobi) and multiplicative inverse + (mpz_invert). +* New variable types (mpz_t and mpq_t) are available that makes syntax of + mpz and mpq calls nicer (no need for & before variables). The MP_INT and + MP_RAT types are still available for compatibility. +* Uses GNU configure. This makes it possible to choose target architecture + and CPU variant, and to compile into a separate object directory. +* Carefully optimized assembly for important inner loops. Support for DEC + Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel Pentium and generic x86, Intel + i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM + PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7, + SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM, + Clipper, IBM ROMP (RT), and Pyramid AP/XP. +* Faster. Thanks to the assembler code, new algorithms, and general tuning. + In particular, the speed on machines without GCC is improved. +* Support for machines without alloca. +* Now under the LGPL. + +INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2 + +* mpq assignment functions do not canonicalize their results. +* mpz division functions round differently. +* mpz mod functions now really compute mod. +* mpz_powm and mpz_powm_ui now really use mod for reduction. diff --git a/Build/source/libs/gmp/gmp-6.0.0/README b/Build/source/libs/gmp/gmp-6.0.0/README new file mode 100644 index 00000000000..013899dc09c --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/README @@ -0,0 +1,116 @@ +Copyright 1991, 1996, 1999, 2000, 2007 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 either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +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 General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. + + + + + + + THE GNU MP LIBRARY + + +GNU MP is a library for arbitrary precision arithmetic, operating on signed +integers, rational numbers, and floating point numbers. It has a rich set of +functions, and the functions have a regular interface. + +GNU MP is designed to be as fast as possible, both for small operands and huge +operands. The speed is achieved by using fullwords as the basic arithmetic +type, by using fast algorithms, with carefully optimized assembly code for the +most common inner loops for lots of CPUs, and by a general emphasis on speed +(instead of simplicity or elegance). + +GNU MP is believed to be faster than any other similar library. Its advantage +increases with operand sizes for certain operations, since GNU MP in many +cases has asymptotically faster algorithms. + +GNU MP is free software and may be freely copied on the terms contained in the +files COPYING* (see the manual for information on which license(s) applies to +which components of GNU MP). + + + + OVERVIEW OF GNU MP + +There are five classes of functions in GNU MP. + + 1. Signed integer arithmetic functions (mpz). These functions are intended + to be easy to use, with their regular interface. The associated type is + `mpz_t'. + + 2. Rational arithmetic functions (mpq). For now, just a small set of + functions necessary for basic rational arithmetics. The associated type + is `mpq_t'. + + 3. Floating-point arithmetic functions (mpf). If the C type `double' + doesn't give enough precision for your application, declare your + variables as `mpf_t' instead, set the precision to any number desired, + and call the functions in the mpf class for the arithmetic operations. + + 4. Positive-integer, hard-to-use, very low overhead functions are in the + mpn class. No memory management is performed. The caller must ensure + enough space is available for the results. The set of functions is not + regular, nor is the calling interface. These functions accept input + arguments in the form of pairs consisting of a pointer to the least + significant word, and an integral size telling how many limbs (= words) + the pointer points to. + + Almost all calculations, in the entire package, are made by calling these + low-level functions. + + 5. Berkeley MP compatible functions. + + To use these functions, include the file "mp.h". You can test if you are + using the GNU version by testing if the symbol __GNU_MP__ is defined. + +For more information on how to use GNU MP, please refer to the documentation. +It is composed from the file doc/gmp.texi, and can be displayed on the screen +or printed. How to do that, as well how to build the library, is described in +the INSTALL file in this directory. + + + + REPORTING BUGS + +If you find a bug in the library, please make sure to tell us about it! + +You should first check the GNU MP web pages at https://gmplib.org/, under +"Status of the current release". There will be patches for all known serious +bugs there. + +Report bugs to gmp-bugs@gmplib.org. What information is needed in a useful bug +report is described in the manual. The same address can be used for suggesting +modifications and enhancements. + + + + +---------------- +Local variables: +mode: text +fill-column: 78 +End: diff --git a/Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 b/Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 new file mode 100644 index 00000000000..227712a5db0 --- /dev/null +++ b/Build/source/libs/gmp/gmp-6.0.0/acinclude.m4 @@ -0,0 +1,3984 @@ +dnl GMP specific autoconf macros + + +dnl Copyright 2000-2006, 2009, 2011, 2013, 2014 Free Software Foundation, Inc. +dnl +dnl This file is part of the GNU MP Library. +dnl +dnl The GNU MP Library is free software; you can redistribute it and/or modify +dnl it under the terms of either: +dnl +dnl * the GNU Lesser General Public License as published by the Free +dnl Software Foundation; either version 3 of the License, or (at your +dnl option) any later version. +dnl +dnl or +dnl +dnl * the GNU General Public License as published by the Free Software +dnl Foundation; either version 2 of the License, or (at your option) any +dnl later version. +dnl +dnl or both in parallel, as here. +dnl +dnl The GNU MP Library is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +dnl for more details. +dnl +dnl You should have received copies of the GNU General Public License and the +dnl GNU Lesser General Public License along with the GNU MP Library. If not, +dnl see https://www.gnu.org/licenses/. + + +dnl Some tests use, or must delete, the default compiler output. The +dnl possible filenames are based on what autoconf looks for, namely +dnl +dnl a.out - normal unix style +dnl b.out - i960 systems, including gcc there +dnl a.exe - djgpp +dnl a_out.exe - OpenVMS DEC C called via GNV wrapper (gnv.sourceforge.net) +dnl conftest.exe - various DOS compilers + + +define(IA64_PATTERN, +[[ia64*-*-* | itanium-*-* | itanium2-*-*]]) + +dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all +dnl of which config.sub accepts. (Though none of which are likely to work +dnl with GMP.) +dnl +define(M68K_PATTERN, +[[m68k-*-* | m68[0-9][0-9][0-9]-*-*]]) + +define(POWERPC64_PATTERN, +[[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]]) + +define(S390_PATTERN, +[[s390-*-* | z900esa-*-* | z990esa-*-* | z9esa-*-* | z10esa-*-* | z196esa-*-*]]) + +define(S390X_PATTERN, +[[s390x-*-* | z900-*-* | z990-*-* | z9-*-* | z10-*-* | z196-*-*]]) + +define(X86_PATTERN, +[[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]]) + +define(X86_64_PATTERN, +[[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar-*-* | bulldozer-*-* | piledriver-*-* | steamroller-*-* | excavator-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]]) + +dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY) +dnl --------------------------------- +dnl Emit code to set shell variable DSTVAR to the suffix for a fat binary +dnl routine from DIRECTORY. DIRECTORY can be a shell expression like $foo +dnl etc. +dnl +dnl The suffix is directory separators / or \ changed to underscores, and +dnl if there's more than one directory part, then the first is dropped. +dnl +dnl For instance, +dnl +dnl x86 -> x86 +dnl x86/k6 -> k6 +dnl x86/k6/mmx -> k6_mmx + +define(GMP_FAT_SUFFIX, +[[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]]) + + +dnl GMP_REMOVE_FROM_LIST(listvar,item) +dnl ---------------------------------- +dnl Emit code to remove any occurrence of ITEM from $LISTVAR. ITEM can be a +dnl shell expression like $foo if desired. + +define(GMP_REMOVE_FROM_LIST, +[remove_from_list_tmp= +for remove_from_list_i in $[][$1]; do + if test $remove_from_list_i = [$2]; then :; + else + remove_from_list_tmp="$remove_from_list_tmp $remove_from_list_i" + fi +done +[$1]=$remove_from_list_tmp +]) + + +dnl GMP_STRIP_PATH(subdir) +dnl ---------------------- +dnl Strip entries */subdir from $path and $fat_path. + +define(GMP_STRIP_PATH, +[GMP_STRIP_PATH_VAR(path, [$1]) +GMP_STRIP_PATH_VAR(fat_path, [$1]) +]) + +define(GMP_STRIP_PATH_VAR, +[tmp_path= +for i in $[][$1]; do + case $i in + */[$2]) ;; + *) tmp_path="$tmp_path $i" ;; + esac +done +[$1]="$tmp_path" +]) + + +dnl GMP_INCLUDE_GMP_H +dnl ----------------- +dnl Expand to the right way to #include gmp-h.in. This must be used +dnl instead of gmp.h, since that file isn't generated until the end of the +dnl configure. +dnl +dnl Dummy value for GMP_LIMB_BITS is enough +dnl for all current configure-time uses of gmp.h. + +define(GMP_INCLUDE_GMP_H, +[[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */ +#define GMP_NAIL_BITS $GMP_NAIL_BITS +#define GMP_LIMB_BITS 123 +$DEFN_LONG_LONG_LIMB +#include "$srcdir/gmp-h.in"] +]) + + +dnl GMP_HEADER_GETVAL(NAME,FILE) +dnl ---------------------------- +dnl Expand at autoconf time to the value of a "#define NAME" from the given +dnl FILE. The regexps here aren't very rugged, but are enough for gmp. +dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted. + +define(GMP_HEADER_GETVAL, +[patsubst(patsubst( +esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]), +[^.*$1[ ]+],[]), +[[ + ]*$],[])]) + + +dnl GMP_VERSION +dnl ----------- +dnl The gmp version number, extracted from the #defines in gmp-h.in at +dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits +dnl like 3.0.1 if patchlevel > 0. + +define(GMP_VERSION, +[GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl +.GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl +.GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)]) + + +dnl GMP_SUBST_CHECK_FUNCS(func,...) +dnl ------------------------------ +dnl Setup an AC_SUBST of HAVE_FUNC_01 for each argument. + +AC_DEFUN([GMP_SUBST_CHECK_FUNCS], +[m4_if([$1],,, +[_GMP_SUBST_CHECK_FUNCS(ac_cv_func_[$1],HAVE_[]m4_translit([$1],[a-z],[A-Z])_01) +GMP_SUBST_CHECK_FUNCS(m4_shift($@))])]) + +dnl Called: _GMP_SUBST_CHECK_FUNCS(cachevar,substvar) +AC_DEFUN([_GMP_SUBST_CHECK_FUNCS], +[case $[$1] in +yes) AC_SUBST([$2],1) ;; +no) [$2]=0 ;; +esac +]) + + +dnl GMP_SUBST_CHECK_HEADERS(foo.h,...) +dnl ---------------------------------- +dnl Setup an AC_SUBST of HAVE_FOO_H_01 for each argument. + +AC_DEFUN([GMP_SUBST_CHECK_HEADERS], +[m4_if([$1],,, +[_GMP_SUBST_CHECK_HEADERS(ac_cv_header_[]m4_translit([$1],[./],[__]), +HAVE_[]m4_translit([$1],[a-z./],[A-Z__])_01) +GMP_SUBST_CHECK_HEADERS(m4_shift($@))])]) + +dnl Called: _GMP_SUBST_CHECK_HEADERS(cachevar,substvar) +AC_DEFUN([_GMP_SUBST_CHECK_HEADERS], +[case $[$1] in +yes) AC_SUBST([$2],1) ;; +no) [$2]=0 ;; +esac +]) + + +dnl GMP_COMPARE_GE(A1,B1, A2,B2, ...) +dnl --------------------------------- +dnl Compare two version numbers A1.A2.etc and B1.B2.etc. Set +dnl $gmp_compare_ge to yes or no according to the result. The A parts +dnl should be variables, the B parts fixed numbers. As many parts as +dnl desired can be included. An empty string in an A part is taken to be +dnl zero, the B parts should be non-empty and non-zero. +dnl +dnl For example, +dnl +dnl GMP_COMPARE($major,10, $minor,3, $subminor,1) +dnl +dnl would test whether $major.$minor.$subminor is greater than or equal to +dnl 10.3.1. + +AC_DEFUN([GMP_COMPARE_GE], +[gmp_compare_ge=no +GMP_COMPARE_GE_INTERNAL($@) +]) + +AC_DEFUN([GMP_COMPARE_GE_INTERNAL], +[ifelse(len([$3]),0, +[if test -n "$1" && test "$1" -ge $2; then + gmp_compare_ge=yes +fi], +[if test -n "$1"; then + if test "$1" -gt $2; then + gmp_compare_ge=yes + else + if test "$1" -eq $2; then + GMP_COMPARE_GE_INTERNAL(m4_shift(m4_shift($@))) + fi + fi +fi]) +]) + + +dnl GMP_PROG_AR +dnl ----------- +dnl GMP additions to $AR. +dnl +dnl A cross-"ar" may be necessary when cross-compiling since the build +dnl system "ar" might try to interpret the object files to build a symbol +dnl table index, hence the use of AC_CHECK_TOOL. +dnl +dnl A user-selected $AR is always left unchanged. AC_CHECK_TOOL is still +dnl run to get the "checking" message printed though. +dnl +dnl If extra flags are added to AR, then ac_cv_prog_AR and +dnl ac_cv_prog_ac_ct_AR are set too, since libtool (cvs 2003-03-31 at +dnl least) will do an AC_CHECK_TOOL and that will AR from one of those two +dnl cached variables. (ac_cv_prog_AR is used if there's an ac_tool_prefix, +dnl or ac_cv_prog_ac_ct_AR is used otherwise.) FIXME: This is highly +dnl dependent on autoconf internals, perhaps it'd work to put our extra +dnl flags into AR_FLAGS instead. +dnl +dnl $AR_FLAGS is set to "cq" rather than leaving it to libtool "cru". The +dnl latter fails when libtool goes into piecewise mode and is unlucky +dnl enough to have two same-named objects in separate pieces, as happens +dnl for instance to random.o (and others) on vax-dec-ultrix4.5. Naturally +dnl a user-selected $AR_FLAGS is left unchanged. +dnl +dnl For reference, $ARFLAGS is used by automake (1.8) for its ".a" archive +dnl file rules. This doesn't get used by the piecewise linking, so we +dnl leave it at the default "cru". +dnl +dnl FIXME: Libtool 1.5.2 has its own arrangements for "cq", but that version +dnl is broken in other ways. When we can upgrade, remove the forcible +dnl AR_FLAGS=cq. + +AC_DEFUN([GMP_PROG_AR], +[dnl Want to establish $AR before libtool initialization. +AC_BEFORE([$0],[AC_PROG_LIBTOOL]) +gmp_user_AR=$AR +AC_CHECK_TOOL(AR, ar, ar) +if test -z "$gmp_user_AR"; then + eval arflags=\"\$ar${abi1}_flags\" + test -n "$arflags" || eval arflags=\"\$ar${abi2}_flags\" + if test -n "$arflags"; then + AC_MSG_CHECKING([for extra ar flags]) + AR="$AR $arflags" + ac_cv_prog_AR="$AR $arflags" + ac_cv_prog_ac_ct_AR="$AR $arflags" + AC_MSG_RESULT([$arflags]) + fi +fi +if test -z "$AR_FLAGS"; then + AR_FLAGS=cq +fi +]) + + +dnl GMP_PROG_M4 +dnl ----------- +dnl Find a working m4, either in $PATH or likely locations, and setup $M4 +dnl and an AC_SUBST accordingly. If $M4 is already set then it's a user +dnl choice and is accepted with no checks. GMP_PROG_M4 is like +dnl AC_PATH_PROG or AC_CHECK_PROG, but tests each m4 found to see if it's +dnl good enough. +dnl +dnl See mpn/asm-defs.m4 for details on the known bad m4s. + +AC_DEFUN([GMP_PROG_M4], +[AC_ARG_VAR(M4,[m4 macro processor]) +AC_CACHE_CHECK([for suitable m4], + gmp_cv_prog_m4, +[if test -n "$M4"; then + gmp_cv_prog_m4="$M4" +else + cat >conftest.m4 <<\EOF +dnl Must protect this against being expanded during autoconf m4! +dnl Dont put "dnl"s in this as autoconf will flag an error for unexpanded +dnl macros. +[define(dollarhash,``$][#'')ifelse(dollarhash(x),1,`define(t1,Y)', +``bad: $][# not supported (SunOS /usr/bin/m4) +'')ifelse(eval(89),89,`define(t2,Y)', +`bad: eval() doesnt support 8 or 9 in a constant (OpenBSD 2.6 m4) +')ifelse(eval(9,9),10,`define(t3,Y)', +`bad: eval() doesnt support radix in eval (FreeBSD 8.x,9.0,9.1,9.2 m4) +')ifelse(t1`'t2`'t3,YYY,`good +')] +EOF +dnl ' <- balance the quotes for emacs sh-mode + echo "trying m4" >&AC_FD_CC + gmp_tmp_val=`(m4 conftest.m4) 2>&AC_FD_CC` + echo "$gmp_tmp_val" >&AC_FD_CC + if test "$gmp_tmp_val" = good; then + gmp_cv_prog_m4="m4" + else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="$PATH:/usr/5bin" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + echo "trying $ac_dir/m4" >&AC_FD_CC + gmp_tmp_val=`($ac_dir/m4 conftest.m4) 2>&AC_FD_CC` + echo "$gmp_tmp_val" >&AC_FD_CC + if test "$gmp_tmp_val" = good; then + gmp_cv_prog_m4="$ac_dir/m4" + break + fi + done + IFS="$ac_save_ifs" + if test -z "$gmp_cv_prog_m4"; then + AC_MSG_ERROR([No usable m4 in \$PATH or /usr/5bin (see config.log for reasons).]) + fi + fi + rm -f conftest.m4 +fi]) +M4="$gmp_cv_prog_m4" +AC_SUBST(M4) +]) + + +dnl GMP_M4_M4WRAP_SPURIOUS +dnl ---------------------- +dnl Check for spurious output from m4wrap(), as described in mpn/asm-defs.m4. +dnl +dnl The following systems have been seen with the problem. +dnl +dnl - Unicos alpha, but its assembler doesn't seem to mind. +dnl - MacOS X Darwin, its assembler fails. +dnl - NetBSD 1.4.1 m68k, and gas 1.92.3 there gives a warning and ignores +dnl the bad last line since it doesn't have a newline. +dnl - NetBSD 1.4.2 alpha, but its assembler doesn't seem to mind. +dnl - HP-UX ia64. +dnl +dnl Enhancement: Maybe this could be in GMP_PROG_M4, and attempt to prefer +dnl an m4 with a working m4wrap, if it can be found. + +AC_DEFUN([GMP_M4_M4WRAP_SPURIOUS], +[AC_REQUIRE([GMP_PROG_M4]) +AC_CACHE_CHECK([if m4wrap produces spurious output], + gmp_cv_m4_m4wrap_spurious, +[# hide the d-n-l from autoconf's error checking +tmp_d_n_l=d""nl +cat >conftest.m4 <&AC_FD_CC +cat conftest.m4 >&AC_FD_CC +tmp_chars=`$M4 conftest.m4 | wc -c` +echo produces $tmp_chars chars output >&AC_FD_CC +rm -f conftest.m4 +if test $tmp_chars = 0; then + gmp_cv_m4_m4wrap_spurious=no +else + gmp_cv_m4_m4wrap_spurious=yes +fi +]) +GMP_DEFINE_RAW(["define(,<$gmp_cv_m4_m4wrap_spurious>)"]) +]) + + +dnl GMP_PROG_NM +dnl ----------- +dnl GMP additions to libtool AC_PROG_NM. +dnl +dnl Note that if AC_PROG_NM can't find a working nm it still leaves +dnl $NM set to "nm", so $NM can't be assumed to actually work. +dnl +dnl A user-selected $NM is always left unchanged. AC_PROG_NM is still run +dnl to get the "checking" message printed though. +dnl +dnl Perhaps it'd be worthwhile checking that nm works, by running it on an +dnl actual object file. For instance on sparcv9 solaris old versions of +dnl GNU nm don't recognise 64-bit objects. Checking would give a better +dnl error message than just a failure in later tests like GMP_ASM_W32 etc. +dnl +dnl On the other hand it's not really normal autoconf practice to take too +dnl much trouble over detecting a broken set of tools. And libtool doesn't +dnl do anything at all for say ranlib or strip. So for now we're inclined +dnl to just demand that the user provides a coherent environment. + +AC_DEFUN([GMP_PROG_NM], +[dnl Make sure we're the first to call AC_PROG_NM, so our extra flags are +dnl used by everyone. +AC_BEFORE([$0],[AC_PROG_NM]) +gmp_user_NM=$NM +AC_PROG_NM + +# FIXME: When cross compiling (ie. $ac_tool_prefix not empty), libtool +# defaults to plain "nm" if a "${ac_tool_prefix}nm" is not found. In this +# case run it again to try the native "nm", firstly so that likely locations +# are searched, secondly so that -B or -p are added if necessary for BSD +# format. This is necessary for instance on OSF with "./configure +# --build=alphaev5-dec-osf --host=alphaev6-dec-osf". +# +if test -z "$gmp_user_NM" && test -n "$ac_tool_prefix" && test "$NM" = nm; then + $as_unset lt_cv_path_NM + gmp_save_ac_tool_prefix=$ac_tool_prefix + ac_tool_prefix= + NM= + AC_PROG_NM + ac_tool_prefix=$gmp_save_ac_tool_prefix +fi + +if test -z "$gmp_user_NM"; then + eval nmflags=\"\$nm${abi1}_flags\" + test -n "$nmflags" || eval nmflags=\"\$nm${abi2}_flags\" + if test -n "$nmflags"; then + AC_MSG_CHECKING([for extra nm flags]) + NM="$NM $nmflags" + AC_MSG_RESULT([$nmflags]) + fi +fi +]) + + +dnl GMP_PROG_CC_WORKS(cc+cflags,[ACTION-IF-WORKS][,ACTION-IF-NOT-WORKS]) +dnl -------------------------------------------------------------------- +dnl Check if cc+cflags can compile and link. +dnl +dnl This test is designed to be run repeatedly with different cc+cflags +dnl selections, so the result is not cached. +dnl +dnl For a native build, meaning $cross_compiling == no, we require that the +dnl generated program will run. This is the same as AC_PROG_CC does in +dnl _AC_COMPILER_EXEEXT_WORKS, and checking here will ensure we don't pass +dnl a CC/CFLAGS combination that it rejects. +dnl +dnl sparc-*-solaris2.7 can compile ABI=64 but won't run it if the kernel +dnl was booted in 32-bit mode. The effect of requiring the compiler output +dnl will run is that a plain native "./configure" falls back on ABI=32, but +dnl ABI=64 is still available as a cross-compile. +dnl +dnl The various specific problems we try to detect are done in separate +dnl compiles. Although this is probably a bit slower than one test +dnl program, it makes it easy to indicate the problem in AC_MSG_RESULT, +dnl hence giving the user a clue about why we rejected the compiler. + +AC_DEFUN([GMP_PROG_CC_WORKS], +[AC_MSG_CHECKING([compiler $1]) +gmp_prog_cc_works=yes + +# first see a simple "main()" works, then go on to other checks +GMP_PROG_CC_WORKS_PART([$1], []) + +GMP_PROG_CC_WORKS_PART([$1], [function pointer return], +[/* The following provokes an internal error from gcc 2.95.2 -mpowerpc64 + (without -maix64), hence detecting an unusable compiler */ +void *g() { return (void *) 0; } +void *f() { return g(); } +]) + +GMP_PROG_CC_WORKS_PART([$1], [cmov instruction], +[/* The following provokes an invalid instruction syntax from i386 gcc + -march=pentiumpro on Solaris 2.8. The native sun assembler + requires a non-standard syntax for cmov which gcc (as of 2.95.2 at + least) doesn't know. */ +int n; +int cmov () { return (n >= 0 ? n : 0); } +]) + +GMP_PROG_CC_WORKS_PART([$1], [double -> ulong conversion], +[/* The following provokes a linker invocation problem with gcc 3.0.3 + on AIX 4.3 under "-maix64 -mpowerpc64 -mcpu=630". The -mcpu=630 + option causes gcc to incorrectly select the 32-bit libgcc.a, not + the 64-bit one, and consequently it misses out on the __fixunsdfdi + helper (double -> uint64 conversion). */ +double d; +unsigned long gcc303 () { return (unsigned long) d; } +]) + +GMP_PROG_CC_WORKS_PART([$1], [double negation], +[/* The following provokes an error from hppa gcc 2.95 under -mpa-risc-2-0 if + the assembler doesn't know hppa 2.0 instructions. fneg is a 2.0 + instruction, and a negation like this comes out using it. */ +double fneg_data; +unsigned long fneg () { return -fneg_data; } +]) + +GMP_PROG_CC_WORKS_PART([$1], [double -> float conversion], +[/* The following makes gcc 3.3 -march=pentium4 generate an SSE2 xmm insn + (cvtsd2ss) which will provoke an error if the assembler doesn't recognise + those instructions. Not sure how much of the gmp code will come out + wanting sse2, but it's easiest to reject an option we know is bad. */ +double ftod_data; +float ftod () { return (float) ftod_data; } +]) + +GMP_PROG_CC_WORKS_PART([$1], [gnupro alpha ev6 char spilling], +[/* The following provokes an internal compiler error from gcc version + "2.9-gnupro-99r1" under "-O2 -mcpu=ev6", apparently relating to char + values being spilled into floating point registers. The problem doesn't + show up all the time, but has occurred enough in GMP for us to reject + this compiler+flags. */ +#include /* for memcpy */ +struct try_t +{ + char dst[2]; + char size; + long d0, d1, d2, d3, d4, d5, d6; + char overlap; +}; +struct try_t param[6]; +int +param_init () +{ + struct try_t *p; + memcpy (p, ¶m[ 2 ], sizeof (*p)); + memcpy (p, ¶m[ 2 ], sizeof (*p)); + p->size = 2; + memcpy (p, ¶m[ 1 ], sizeof (*p)); + p->dst[0] = 1; + p->overlap = 2; + memcpy (p, ¶m[ 3 ], sizeof (*p)); + p->dst[0] = 1; + p->overlap = 8; + memcpy (p, ¶m[ 4 ], sizeof (*p)); + memcpy (p, ¶m[ 4 ], sizeof (*p)); + p->overlap = 8; + memcpy (p, ¶m[ 5 ], sizeof (*p)); + memcpy (p, ¶m[ 5 ], sizeof (*p)); + memcpy (p, ¶m[ 5 ], sizeof (*p)); + return 0; +} +]) + +# __builtin_alloca is not available everywhere, check it exists before +# seeing that it works +GMP_PROG_CC_WORKS_PART_TEST([$1],[__builtin_alloca availability], +[int k; int foo () { __builtin_alloca (k); }], + [GMP_PROG_CC_WORKS_PART([$1], [alloca array], +[/* The following provokes an internal compiler error from Itanium HP-UX cc + under +O2 or higher. We use this sort of code in mpn/generic/mul_fft.c. */ +int k; +int foo () +{ + int i, **a; + a = __builtin_alloca (k); + for (i = 0; i <= k; i++) + a[i] = __builtin_alloca (1 << i); +} +])]) + +GMP_PROG_CC_WORKS_PART([$1], [abs int -> double conversion], +[/* The following provokes an internal error from the assembler on + power2-ibm-aix4.3.1.0. gcc -mrios2 compiles to nabs+fcirz, and this + results in "Internal error related to the source program domain". + + For reference it seems to be the combination of nabs+fcirz which is bad, + not either alone. This sort of thing occurs in mpz/get_str.c with the + way double chars_per_bit_exactly is applied in MPN_SIZEINBASE. Perhaps + if that code changes to a scaled-integer style then we won't need this + test. */ + +double fp[1]; +int x; +int f () +{ + int a; + a = (x >= 0 ? x : -x); + return a * fp[0]; +} +]) + +GMP_PROG_CC_WORKS_PART([$1], [long long reliability test 1], +[/* The following provokes a segfault in the compiler on powerpc-apple-darwin. + Extracted from tests/mpn/t-iord_u.c. Causes Apple's gcc 3.3 build 1640 and + 1666 to segfault with e.g., -O2 -mpowerpc64. */ + +#if defined (__GNUC__) && ! defined (__cplusplus) +typedef unsigned long long t1;typedef t1*t2; +static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) +{t1 c,x,r;int i;if(v0){c=1;for(i=1;i> tnc; + high_limb = low_limb << cnt; + for (i = n - 1; i != 0; i--) + { + low_limb = *up++; + *rp++ = ~(high_limb | (low_limb >> tnc)); + high_limb = low_limb << cnt; + } + return retval; +} +int +main () +{ + unsigned long cy, rp[2], up[2]; + up[0] = ~ 0L; + up[1] = 0; + cy = lshift_com (rp, up, 2L, 1); + if (cy != 1L) + return 1; + return 0; +} +#else +int +main () +{ + return 0; +} +#endif +]) + +GMP_PROG_CC_WORKS_PART_MAIN([$1], [mpn_lshift_com optimization 2], +[/* The following is mis-compiled by Intel ia-64 icc version 1.8 under + "icc -O3", After several calls, the function writes partial garbage to + the result vector. Perhaps relates to the chk.a.nc insn. This code needs + to be run to show the problem, but that's fine, the offending cc is a + native-only compiler so we don't have to worry about cross compiling. */ + +#if ! defined (__cplusplus) +#include +void +lshift_com (rp, up, n, cnt) + unsigned long *rp; + unsigned long *up; + long n; + unsigned cnt; +{ + unsigned long high_limb, low_limb; + unsigned tnc; + long i; + up += n; + rp += n; + tnc = 8 * sizeof (unsigned long) - cnt; + low_limb = *--up; + high_limb = low_limb << cnt; + for (i = n - 1; i != 0; i--) + { + low_limb = *--up; + *--rp = ~(high_limb | (low_limb >> tnc)); + high_limb = low_limb << cnt; + } + *--rp = ~high_limb; +} +int +main () +{ + unsigned long *r, *r2; + unsigned long a[88 + 1]; + long i; + for (i = 0; i < 88 + 1; i++) + a[i] = ~0L; + r = malloc (10000 * sizeof (unsigned long)); + r2 = r; + for (i = 0; i < 528; i += 22) + { + lshift_com (r2, a, + i / (8 * sizeof (unsigned long)) + 1, + i % (8 * sizeof (unsigned long))); + r2 += 88 + 1; + } + if (r[2048] != 0 || r[2049] != 0 || r[2050] != 0 || r[2051] != 0 || + r[2052] != 0 || r[2053] != 0 || r[2054] != 0) + abort (); + return 0; +} +#else +int +main () +{ + return 0; +} +#endif +]) + + +# A certain _GLOBAL_OFFSET_TABLE_ problem in past versions of gas, tickled +# by recent versions of gcc. +# +if test "$gmp_prog_cc_works" = yes; then + case $host in + X86_PATTERN) + # this problem only arises in PIC code, so don't need to test when + # --disable-shared. We don't necessarily have $enable_shared set to + # yes at this point, it will still be unset for the default (which is + # yes); hence the use of "!= no". + if test "$enable_shared" != no; then + GMP_PROG_CC_X86_GOT_EAX_EMITTED([$1], + [GMP_ASM_X86_GOT_EAX_OK([$1],, + [gmp_prog_cc_works="no, bad gas GOT with eax"])]) + fi + ;; + esac +fi + +AC_MSG_RESULT($gmp_prog_cc_works) +case $gmp_prog_cc_works in + yes) + [$2] + ;; + *) + [$3] + ;; +esac +]) + +dnl Called: GMP_PROG_CC_WORKS_PART(CC+CFLAGS,FAIL-MESSAGE [,CODE]) +dnl A dummy main() is appended to the CODE given. +dnl +AC_DEFUN([GMP_PROG_CC_WORKS_PART], +[GMP_PROG_CC_WORKS_PART_MAIN([$1],[$2], +[$3] +[int main () { return 0; }]) +]) + +dnl Called: GMP_PROG_CC_WORKS_PART_MAIN(CC+CFLAGS,FAIL-MESSAGE,CODE) +dnl CODE must include a main(). +dnl +AC_DEFUN([GMP_PROG_CC_WORKS_PART_MAIN], +[GMP_PROG_CC_WORKS_PART_TEST([$1],[$2],[$3], + [], + gmp_prog_cc_works="no[]m4_if([$2],,,[[, ]])[$2]", + gmp_prog_cc_works="no[]m4_if([$2],,,[[, ]])[$2][[, program does not run]]") +]) + +dnl Called: GMP_PROG_CC_WORKS_PART_TEST(CC+CFLAGS,TITLE,[CODE], +dnl [ACTION-GOOD],[ACTION-BAD][ACTION-NORUN]) +dnl +AC_DEFUN([GMP_PROG_CC_WORKS_PART_TEST], +[if test "$gmp_prog_cc_works" = yes; then + # remove anything that might look like compiler output to our "||" expression + rm -f conftest* a.out b.out a.exe a_out.exe + cat >conftest.c <&AC_FD_CC + gmp_compile="$1 conftest.c >&AC_FD_CC" + if AC_TRY_EVAL(gmp_compile); then + cc_works_part=yes + if test "$cross_compiling" = no; then + if AC_TRY_COMMAND([./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest]); then :; + else + cc_works_part=norun + fi + fi + else + cc_works_part=no + fi + if test "$cc_works_part" != yes; then + echo "failed program was:" >&AC_FD_CC + cat conftest.c >&AC_FD_CC + fi + rm -f conftest* a.out b.out a.exe a_out.exe + case $cc_works_part in + yes) + $4 + ;; + no) + $5 + ;; + norun) + $6 + ;; + esac +fi +]) + + +dnl GMP_PROG_CC_WORKS_LONGLONG(cc+cflags,[ACTION-YES][,ACTION-NO]) +dnl -------------------------------------------------------------- +dnl Check that cc+cflags accepts "long long". +dnl +dnl This test is designed to be run repeatedly with different cc+cflags +dnl selections, so the result is not cached. + +AC_DEFUN([GMP_PROG_CC_WORKS_LONGLONG], +[AC_MSG_CHECKING([compiler $1 has long long]) +cat >conftest.c <&AC_FD_CC + cat conftest.c >&AC_FD_CC +fi +rm -f conftest* a.out b.out a.exe a_out.exe +AC_MSG_RESULT($gmp_prog_cc_works) +if test $gmp_prog_cc_works = yes; then + ifelse([$2],,:,[$2]) +else + ifelse([$3],,:,[$3]) +fi +]) + + +dnl GMP_C_TEST_SIZEOF(cc/cflags,test,[ACTION-GOOD][,ACTION-BAD]) +dnl ------------------------------------------------------------ +dnl The given cc/cflags compiler is run to check the size of a type +dnl specified by the "test" argument. "test" can either be a string, or a +dnl variable like $foo. The value should be for instance "sizeof-long-4", +dnl to test that sizeof(long)==4. +dnl +dnl This test is designed to be run for different compiler and/or flags +dnl combinations, so the result is not cached. +dnl +dnl The idea for making an array that has a negative size if the desired +dnl condition test is false comes from autoconf AC_CHECK_SIZEOF. The cast +dnl to "long" in the array dimension also follows autoconf, apparently it's +dnl a workaround for a HP compiler bug. + +AC_DEFUN([GMP_C_TEST_SIZEOF], +[echo "configure: testlist $2" >&AC_FD_CC +[gmp_sizeof_type=`echo "$2" | sed 's/sizeof-\([a-z]*\).*/\1/'`] +[gmp_sizeof_want=`echo "$2" | sed 's/sizeof-[a-z]*-\([0-9]*\).*/\1/'`] +AC_MSG_CHECKING([compiler $1 has sizeof($gmp_sizeof_type)==$gmp_sizeof_want]) +cat >conftest.c <conftest.c <