diff options
Diffstat (limited to 'gnu/lib/libgmp/README')
-rw-r--r-- | gnu/lib/libgmp/README | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/lib/libgmp/README b/gnu/lib/libgmp/README new file mode 100644 index 0000000..b31e7b3 --- /dev/null +++ b/gnu/lib/libgmp/README @@ -0,0 +1,61 @@ + THE GNU MP LIBRARY + + +GNU MP is a library for arbitrary precision arithmetic, operating on +signed integers and rational numbers. It has a rich set of functions, +and the functions have a regular interface. + +I have tried to make these functions as fast as possible, both for small +operands and for huge operands. The speed is achieved by using fullwords +as the basic arithmetic type, by using fast algorithms, by defining inline +assembler for mixed sized multiplication and division (i.e 32*32->64 bit +multiplication and 64/32->32,32 bit division), and by hacking the code +with emphasis on speed (and not simplicity and elegance). + +The speed of GNU MP is about 5 to 100 times that of Berkeley MP for +small operands. The speed-up increases with the operand sizes for +certain operations, for which GNU MP has asymptotically faster algorithms. + + +There are four classes of functions in GNU MP. + + 1. Signed integer arithmetic functions, mpz_*. The set of functions are + intended to be easy to use, being rich and regular. + + To use these functions, include the file "gmp.h". + + 2. Rational arithmetic functions, mpq_*. For now, just a small set of + functions necessary for basic rational arithmetics. + + To use these functions, include the file "gmp.h". + + 3. Positive-integer, low-level, harder-to-use, but for small operands + about twice as fast than the mpz_* functions are the functions 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 quite 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 a integral size telling how + many limbs (= words) the pointer points to. + + Almost all calculations, in the entire package, are made in these + low-level functions. + + These functions are not fully documented in this release. They will + probably be so in a future release. + + 4. 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. + + + REPORTING BUGS + +If you find a bug in the library, please make sure to tell us about it! + +You can report bugs, and propose modifications and enhancements to +tege@gnu.ai.mit.edu. How to report a bug is further described in +the texinfo documentation, see the file gmp.texi. + |