[18190] | 1 | Copyright 1991, 1996, 1999, 2000 Free Software Foundation, Inc. |
---|
[15293] | 2 | |
---|
[18190] | 3 | This file is part of the GNU MP Library. |
---|
| 4 | |
---|
| 5 | The GNU MP Library is free software; you can redistribute it and/or modify |
---|
| 6 | it under the terms of the GNU Lesser General Public License as published by |
---|
| 7 | the Free Software Foundation; either version 2.1 of the License, or (at your |
---|
| 8 | option) any later version. |
---|
| 9 | |
---|
| 10 | The GNU MP Library is distributed in the hope that it will be useful, but |
---|
| 11 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
---|
| 12 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public |
---|
| 13 | License for more details. |
---|
| 14 | |
---|
| 15 | You should have received a copy of the GNU Lesser General Public License |
---|
| 16 | along with the GNU MP Library; see the file COPYING.LIB. If not, write to |
---|
| 17 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
---|
| 18 | 02111-1307, USA. |
---|
| 19 | |
---|
| 20 | |
---|
| 21 | |
---|
| 22 | |
---|
| 23 | |
---|
| 24 | |
---|
[15293] | 25 | THE GNU MP LIBRARY |
---|
| 26 | |
---|
| 27 | |
---|
| 28 | GNU MP is a library for arbitrary precision arithmetic, operating on signed |
---|
| 29 | integers, rational numbers, and floating point numbers. It has a rich set of |
---|
| 30 | functions, and the functions have a regular interface. |
---|
| 31 | |
---|
| 32 | GNU MP is designed to be as fast as possible, both for small operands and huge |
---|
| 33 | operands. The speed is achieved by using fullwords as the basic arithmetic |
---|
| 34 | type, by using fast algorithms, with carefully optimized assembly code for the |
---|
| 35 | most common inner loops for lots of CPUs, and by a general emphasis on speed |
---|
| 36 | (instead of simplicity or elegance). |
---|
| 37 | |
---|
| 38 | GNU MP is believed to be faster than any other similar library. Its advantage |
---|
| 39 | increases with operand sizes for certain operations, since GNU MP in many |
---|
| 40 | cases has asymptotically faster algorithms. |
---|
| 41 | |
---|
| 42 | GNU MP is free software and may be freely copied on the terms contained in the |
---|
| 43 | files COPYING.LIB and COPYING (most of GNU MP is under the former, some under |
---|
| 44 | the latter). |
---|
| 45 | |
---|
| 46 | |
---|
| 47 | |
---|
| 48 | OVERVIEW OF GNU MP |
---|
| 49 | |
---|
| 50 | There are five classes of functions in GNU MP. |
---|
| 51 | |
---|
| 52 | 1. Signed integer arithmetic functions (mpz). These functions are intended |
---|
| 53 | to be easy to use, with their regular interface. The associated type is |
---|
| 54 | `mpz_t'. |
---|
| 55 | |
---|
| 56 | 2. Rational arithmetic functions (mpq). For now, just a small set of |
---|
| 57 | functions necessary for basic rational arithmetics. The associated type |
---|
| 58 | is `mpq_t'. |
---|
| 59 | |
---|
| 60 | 3. Floating-point arithmetic functions (mpf). If the C type `double' |
---|
| 61 | doesn't give enough precision for your application, declare your |
---|
| 62 | variables as `mpf_t' instead, set the precision to any number desired, |
---|
| 63 | and call the functions in the mpf class for the arithmetic operations. |
---|
| 64 | |
---|
| 65 | 4. Positive-integer, hard-to-use, very low overhead functions are in the |
---|
| 66 | mpn class. No memory management is performed. The caller must ensure |
---|
| 67 | enough space is available for the results. The set of functions is not |
---|
| 68 | regular, nor is the calling interface. These functions accept input |
---|
| 69 | arguments in the form of pairs consisting of a pointer to the least |
---|
| 70 | significant word, and an integral size telling how many limbs (= words) |
---|
| 71 | the pointer points to. |
---|
| 72 | |
---|
| 73 | Almost all calculations, in the entire package, are made by calling these |
---|
| 74 | low-level functions. |
---|
| 75 | |
---|
| 76 | 5. Berkeley MP compatible functions. |
---|
| 77 | |
---|
| 78 | To use these functions, include the file "mp.h". You can test if you are |
---|
| 79 | using the GNU version by testing if the symbol __GNU_MP__ is defined. |
---|
| 80 | |
---|
| 81 | For more information on how to use GNU MP, please refer to the documentation. |
---|
| 82 | It is composed from the file gmp.texi, and can be displayed on the screen or |
---|
| 83 | printed. How to do that, as well how to build the library, is described in |
---|
| 84 | the INSTALL file in this directory. |
---|
| 85 | |
---|
| 86 | |
---|
| 87 | |
---|
| 88 | REPORTING BUGS |
---|
| 89 | |
---|
| 90 | If you find a bug in the library, please make sure to tell us about it! |
---|
| 91 | |
---|
| 92 | You should first check the GNU MP web pages at http://www.swox.com/gmp/, |
---|
| 93 | under "Status of the current release". There will be patches for all known |
---|
| 94 | serious bugs there. |
---|
| 95 | |
---|
| 96 | Report bugs to bug-gmp@gnu.org. What information is needed in a good bug |
---|
| 97 | report is described in the manual. The same address can be used for |
---|
| 98 | suggesting modifications and enhancements. |
---|
| 99 | |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | |
---|
| 103 | ---------------- |
---|
| 104 | Local variables: |
---|
| 105 | mode: text |
---|
| 106 | fill-column: 78 |
---|
| 107 | End: |
---|