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

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

Rev | Line | |
---|---|---|

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

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