|
Packit |
5c3484 |
Copyright 1991, 1996, 1999, 2000, 2007 Free Software Foundation, Inc.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
This file is part of the GNU MP Library.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
The GNU MP Library is free software; you can redistribute it and/or modify
|
|
Packit |
5c3484 |
it under the terms of either:
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
* the GNU Lesser General Public License as published by the Free
|
|
Packit |
5c3484 |
Software Foundation; either version 3 of the License, or (at your
|
|
Packit |
5c3484 |
option) any later version.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
or
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
* the GNU General Public License as published by the Free Software
|
|
Packit |
5c3484 |
Foundation; either version 2 of the License, or (at your option) any
|
|
Packit |
5c3484 |
later version.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
or both in parallel, as here.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
The GNU MP Library is distributed in the hope that it will be useful, but
|
|
Packit |
5c3484 |
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
Packit |
5c3484 |
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
Packit |
5c3484 |
for more details.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
You should have received copies of the GNU General Public License and the
|
|
Packit |
5c3484 |
GNU Lesser General Public License along with the GNU MP Library. If not,
|
|
Packit |
5c3484 |
see https://www.gnu.org/licenses/.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
THE GNU MP LIBRARY
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
GNU MP is a library for arbitrary precision arithmetic, operating on signed
|
|
Packit |
5c3484 |
integers, rational numbers, and floating point numbers. It has a rich set of
|
|
Packit |
5c3484 |
functions, and the functions have a regular interface.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
GNU MP is designed to be as fast as possible, both for small operands and huge
|
|
Packit |
5c3484 |
operands. The speed is achieved by using fullwords as the basic arithmetic
|
|
Packit |
5c3484 |
type, by using fast algorithms, with carefully optimized assembly code for the
|
|
Packit |
5c3484 |
most common inner loops for lots of CPUs, and by a general emphasis on speed
|
|
Packit |
5c3484 |
(instead of simplicity or elegance).
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
GNU MP is believed to be faster than any other similar library. Its advantage
|
|
Packit |
5c3484 |
increases with operand sizes for certain operations, since GNU MP in many
|
|
Packit |
5c3484 |
cases has asymptotically faster algorithms.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
GNU MP is free software and may be freely copied on the terms contained in the
|
|
Packit |
5c3484 |
files COPYING* (see the manual for information on which license(s) applies to
|
|
Packit |
5c3484 |
which components of GNU MP).
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
OVERVIEW OF GNU MP
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
There are four classes of functions in GNU MP.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
1. Signed integer arithmetic functions (mpz). These functions are intended
|
|
Packit |
5c3484 |
to be easy to use, with their regular interface. The associated type is
|
|
Packit |
5c3484 |
`mpz_t'.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
2. Rational arithmetic functions (mpq). For now, just a small set of
|
|
Packit |
5c3484 |
functions necessary for basic rational arithmetics. The associated type
|
|
Packit |
5c3484 |
is `mpq_t'.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
3. Floating-point arithmetic functions (mpf). If the C type `double'
|
|
Packit |
5c3484 |
doesn't give enough precision for your application, declare your
|
|
Packit |
5c3484 |
variables as `mpf_t' instead, set the precision to any number desired,
|
|
Packit |
5c3484 |
and call the functions in the mpf class for the arithmetic operations.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
4. Positive-integer, hard-to-use, very low overhead functions are in the
|
|
Packit |
5c3484 |
mpn class. No memory management is performed. The caller must ensure
|
|
Packit |
5c3484 |
enough space is available for the results. The set of functions is not
|
|
Packit |
5c3484 |
regular, nor is the calling interface. These functions accept input
|
|
Packit |
5c3484 |
arguments in the form of pairs consisting of a pointer to the least
|
|
Packit |
5c3484 |
significant word, and an integral size telling how many limbs (= words)
|
|
Packit |
5c3484 |
the pointer points to.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
Almost all calculations, in the entire package, are made by calling these
|
|
Packit |
5c3484 |
low-level functions.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
For more information on how to use GNU MP, please refer to the documentation.
|
|
Packit |
5c3484 |
It is composed from the file doc/gmp.texi, and can be displayed on the screen
|
|
Packit |
5c3484 |
or printed. How to do that, as well how to build the library, is described in
|
|
Packit |
5c3484 |
the INSTALL file in this directory.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
REPORTING BUGS
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
If you find a bug in the library, please make sure to tell us about it!
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
You should first check the GNU MP web pages at https://gmplib.org/, under
|
|
Packit |
5c3484 |
"Status of the current release". There will be patches for all known serious
|
|
Packit |
5c3484 |
bugs there.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
Report bugs to gmp-bugs@gmplib.org. What information is needed in a useful bug
|
|
Packit |
5c3484 |
report is described in the manual. The same address can be used for suggesting
|
|
Packit |
5c3484 |
modifications and enhancements.
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
|
|
Packit |
5c3484 |
----------------
|
|
Packit |
5c3484 |
Local variables:
|
|
Packit |
5c3484 |
mode: text
|
|
Packit |
5c3484 |
fill-column: 78
|
|
Packit |
5c3484 |
End:
|