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

Revision 15294, 3.1 KB checked in by ghudson, 24 years ago (diff) |
---|

Line | |
---|---|

1 | |

2 | THE GNU MP LIBRARY |

3 | |

4 | |

5 | GNU MP is a library for arbitrary precision arithmetic, operating on signed |

6 | integers, rational numbers, and floating point numbers. It has a rich set of |

7 | functions, and the functions have a regular interface. |

8 | |

9 | GNU MP is designed to be as fast as possible, both for small operands and huge |

10 | operands. The speed is achieved by using fullwords as the basic arithmetic |

11 | type, by using fast algorithms, with carefully optimized assembly code for the |

12 | most common inner loops for lots of CPUs, and by a general emphasis on speed |

13 | (instead of simplicity or elegance). |

14 | |

15 | GNU MP is believed to be faster than any other similar library. Its advantage |

16 | increases with operand sizes for certain operations, since GNU MP in many |

17 | cases has asymptotically faster algorithms. |

18 | |

19 | GNU MP is free software and may be freely copied on the terms contained in the |

20 | files COPYING.LIB and COPYING (most of GNU MP is under the former, some under |

21 | the latter). |

22 | |

23 | |

24 | |

25 | OVERVIEW OF GNU MP |

26 | |

27 | There are five classes of functions in GNU MP. |

28 | |

29 | 1. Signed integer arithmetic functions (mpz). These functions are intended |

30 | to be easy to use, with their regular interface. The associated type is |

31 | `mpz_t'. |

32 | |

33 | 2. Rational arithmetic functions (mpq). For now, just a small set of |

34 | functions necessary for basic rational arithmetics. The associated type |

35 | is `mpq_t'. |

36 | |

37 | 3. Floating-point arithmetic functions (mpf). If the C type `double' |

38 | doesn't give enough precision for your application, declare your |

39 | variables as `mpf_t' instead, set the precision to any number desired, |

40 | and call the functions in the mpf class for the arithmetic operations. |

41 | |

42 | 4. Positive-integer, hard-to-use, very low overhead functions are in the |

43 | mpn class. No memory management is performed. The caller must ensure |

44 | enough space is available for the results. The set of functions is not |

45 | regular, nor is the calling interface. These functions accept input |

46 | arguments in the form of pairs consisting of a pointer to the least |

47 | significant word, and an integral size telling how many limbs (= words) |

48 | the pointer points to. |

49 | |

50 | Almost all calculations, in the entire package, are made by calling these |

51 | low-level functions. |

52 | |

53 | 5. Berkeley MP compatible functions. |

54 | |

55 | To use these functions, include the file "mp.h". You can test if you are |

56 | using the GNU version by testing if the symbol __GNU_MP__ is defined. |

57 | |

58 | For more information on how to use GNU MP, please refer to the documentation. |

59 | It is composed from the file gmp.texi, and can be displayed on the screen or |

60 | printed. How to do that, as well how to build the library, is described in |

61 | the INSTALL file in this directory. |

62 | |

63 | |

64 | |

65 | REPORTING BUGS |

66 | |

67 | If you find a bug in the library, please make sure to tell us about it! |

68 | |

69 | You should first check the GNU MP web pages at http://www.swox.com/gmp/, |

70 | under "Status of the current release". There will be patches for all known |

71 | serious bugs there. |

72 | |

73 | Report bugs to bug-gmp@gnu.org. What information is needed in a good bug |

74 | report is described in the manual. The same address can be used for |

75 | suggesting modifications and enhancements. |

76 | |

77 | |

78 | |

79 | |

80 | ---------------- |

81 | Local variables: |

82 | mode: text |

83 | fill-column: 78 |

84 | End: |

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