1 | Copyright 1991, 1996, 1999, 2000 Free Software Foundation, Inc. |
---|
2 | |
---|
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 | |
---|
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: |
---|