#
source:
trunk/third/gmp/README
@
18191

Revision 18191, 4.0 KB checked in by ghudson, 22 years ago (diff) |
---|

Line | |
---|---|

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: |

**Note:**See TracBrowser for help on using the repository browser.