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, sqrlo.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.
