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, gcd_11.c, gcd_22.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,
			fib2m.c, strongfibo.c, mulmod_bknp1.c,
			mullo_n.c, sqrlo.c, invert.c, invertappr.c;
			mpn/x86/atom/aors_n.asm, aorslshC_n.asm,
			aorrlsh{1,2,C}_n.asm, aorsmul_1.asm, logops_n.asm,
			sublsh2_n.asm, rshift.asm; primesieve.c;
			mpz/fac_ui.c, 2fac_ui.c, mfac_uiui.c, oddfac_1.c,
			primorial_ui.c, prodlimbs.c, bin_ui.c,
			lucmod.c, stronglucas.c,
			goetgheluck_bin_uiui.c; mini-gmp/mini-mpq.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.

Seth Troisi		mpz/nextprime.c general speed-up and prevprime.

Marius Hillenbrand	mpn/s390_64/z13/*.c (later used as basis for asm code)
