mini-gmp
Rick Hodgin
foxmuldrster at yahoo.com
Wed Dec 28 17:51:22 CET 2011
I suggest making components of the native full-blown GMP modular. Doing this you don't need a separate mini-gmp project, but rather just a single GMP project that can be configured through "./configure --disable-whatever" type flags to (by default) include everything, and by explicit reduction, exclude those portions you don't want or need.
- Rick C. Hodgin
--- On Wed, 12/28/11, Niels Möller <nisse at lysator.liu.se> wrote:
> From: Niels Möller <nisse at lysator.liu.se>
> Subject: mini-gmp
> To: gmp-devel at gmplib.org
> Date: Wednesday, December 28, 2011, 9:13 AM
> After discussion with Torbjörn and
> some other GNU people (this started
> as something like "Why does guile depend on GMP??? I'm
> using it as an
> extension language for my application. I don't need any
> bignums (or at
> least not any particularly efficient ones) and I don't want
> to bother my
> users or developers with installing GMP"), I've started to
> put together
> "mini-gmp", with the below README.
>
> This is "mini-gmp", a small implementation of a
> subset of GMP's mpn
> and mpz interfaces.
>
> It is intended for applications which need
> arithmetic on numbers
> larger than a machine word, but which don't need to
> handle very large
> numbers very efficiently. Those applications can
> include a copy of
> mini-gmp to get a GMP-compatible interface with
> small footprint. One
> can also arrange for optional linking with the real
> GMP library, using
> mini-gmp as a fallback when for some reason GMP is
> not available, or
> not desired as a dependency.
>
> The supported GMP subset is declared in mini-gmp.h.
> The implementation
> is a single file, mini-gmp.c.
>
> The performance target for mini-gmp is to be at most
> 10 times slower
> than the real GMP library, for numbers of size up to
> a few hundred
> bits. No asymptotically fast algorithms are included
> in mini-gmp, so
> it will be many orders of magnitude slower than GMP
> for very large
> numbers.
>
> You should never "install" mini-gmp. Applications
> can either just
> #include mini-gmp.c (but then, beware that it
> defines several macros
> and functions outside of the advertised interface).
> Or compile
> mini-gmp.c as a separate compilation unit, and use
> the declarations in
> mini-gmp.h.
>
> The tests subdirectory contains a testsuite. To use
> it, you need GMP
> and GNU make. Just run make check in the tests
> directory. If the
> hardcoded compiler settings are not right, you have
> to either edit the
> Makefile or pass overriding values on the make
> command line (e.g.,
> make CC=cc check). Testing is not (yet) as thorough
> as for the real
> GMP.
>
> The current version was put together by Niels
> Möller
> <nisse at lysator.liu.se>,
> with a fair amount of copy-and-paste from the
> GMP sources.
>
> Comments appreciated. Exactly what GMP subset to implement
> is not
> entirely clear. Definitely missing are gcd, square root,
> and more
> general get_str and set_str (and then lots of variants of
> the existing
> functions, mpz_*div_q, mpz_*div_r, init_set, etc).
>
> It would be nice to have gcc not depend on GMP, but that's
> a bit more
> tricky, since the dependency is via mpfr (and mpc?).
>
> The repository is at http://gmplib.org:8000/mini-gmp/ (or
> /var/hg/gmp-proj/mini-gmp on shell).
>
> Regards,
> /Niels
>
> --
> Niels Möller. PGP-encrypted email is preferred. Keyid
> C0B98E26.
> Internet email is subject to wholesale government
> surveillance.
>
> _______________________________________________
> gmp-devel mailing list
> gmp-devel at gmplib.org
> https://gmplib.org/mailman/listinfo/gmp-devel
>
More information about the gmp-devel
mailing list