WELCOME TO FREE GMP.

FGMP is a public domain implementation of a subset of the GNU gmp library
with the same API.

FGMP is really in the public domain. You can do whatever you want with
it.

Differences between gmp and fgmp

1. fgmp is considerably slower than gmp
2. fgmp does not implement the following:
	all mpq_*
	internal mpn_* functions
	mpz_sqrt
	mpz_sqrtrem
	mpz_perfect_square_p
	mpz_inp_raw, mpz_out_raw
	mp_set_memory_functions
3. fgmp implements the following in addition to the routines in GNU gmp.
	int mpz_jacobi(MP_INT *a, MP_INT *b)
	- finds the jacobi symbol (a/b)
4. mpz_sizeinbase often overestimates the exact value

5. To convert your gmp based program to fgmp (subject to the
above)

- recompile your source. Make sure to include the gmp.h file included
  with fgmp rather than that included with gmp.
- link with gmp.o instead of libgmp.a

Here's a complete sorted list of function implemented in fgmp:

_mpz_realloc
mpz_abs
mpz_add
mpz_add_ui
mpz_and
mpz_clear
mpz_cmp
mpz_cmp_si
mpz_cmp_ui
mpz_div
mpz_div_2exp
mpz_div_ui
mpz_divmod
mpz_divmod_ui
mpz_fac_ui
mpz_gcd
mpz_gcdext
mpz_get_si
mpz_get_str
mpz_get_ui
mpz_init
mpz_init_set
mpz_init_set_si
mpz_init_set_str
mpz_init_set_ui
mpz_jacobi
mpz_mdiv
mpz_mdiv_ui
mpz_mdivmod
mpz_mdivmod_ui
mpz_mmod
mpz_mmod_ui
mpz_mod
mpz_mod_2exp
mpz_mod_ui
mpz_mul
mpz_mul_2exp
mpz_mul_ui
mpz_neg
mpz_or
mpz_pow_ui
mpz_powm
mpz_powm_ui
mpz_probab_prime_p
mpz_random
mpz_random2
mpz_set
mpz_set_si
mpz_set_str
mpz_set_ui
mpz_size
mpz_sizeinbase
mpz_sub
mpz_sub_ui
mpz_xor
