- Add some big-integer algorithms.
[bigint/bigint.git] / README
CommitLineData
00c6448a
MM
1
2 C++ Big Integer Library
3 (see ChangeLog for version)
4
3e132790 5 http://mattmccutchen.net/bigint/
00c6448a 6
3e132790 7 Written and maintained by Matt McCutchen <matt@mattmccutchen.net>
00c6448a
MM
8
9You can use this library in a C++ program to do arithmetic on integers of size
10limited only by your computer's memory. The library provides BigUnsigned and
11BigInteger classes that represent nonnegative integers and signed integers,
12respectively. Most of the C++ arithmetic operators are overloaded for these
13classes, so big-integer calculations are as easy as:
14
15 #include "BigIntegerLibrary.hh"
16
17 BigInteger a = 65536;
18 cout << (a * a * a * a * a * a * a * a);
19
20 (prints 340282366920938463463374607431768211456)
21
22The code in `sample.cc' demonstrates the most important features of the library.
23To get started quickly, read the code and explanations in that file and run it.
24If you want more detail or a feature not shown in `sample.cc', consult the
25consult the actual header and source files, which are heavily commented.
26
3e132790
MM
27The code is intended to be reasonably portable across computers and modern C++
28compilers; in particular, it uses whatever word size the computer provides
29(32-bit, 64-bit, or whatever). Please report any portability problems.
30
00c6448a
MM
31Compiling programs that use the library
32---------------------------------------
33The library consists of a folder full of C++ header files (`.hh') and source
34files (`.cc'). `#include' header files and compile with source files as
35necessary for your own programs. A Makefile is included that compiles the
36library source files and the sample program and links them together; you can
37easily customize the Makefile to replace the sample with your own program, or
38you can write your own Makefile.
39
40Bugs and enhancements
41---------------------
42The library has been tested by me and others but is by no means bug-free. If
43you find a bug, please report it to me, whether it comes in the form of
44compiling trouble, a mathematically inaccurate result, or a memory-management
45blooper (since I use Java, these are altogether too common in my C++). I
46generally fix all reported bugs.
47
48You are also welcome to request enhancements, but I am unlikely to do
49substantial amounts of work on enhancements at this point. When I fix a bug you
50report or make an enhancement you request, I will generally credit you by name
3e132790
MM
51in the Change Log unless you request otherwise. New versions of the library
52will be available at its Web site (above).
00c6448a
MM
53
54Note
55----
56I would be delighted to hear from you if you like this library and/or find a
57good use for it.
58
59Legal
60-----
61I, Matt McCutchen, the sole author of the original Big Integer Library, waive my
62copyright to it, placing it in the public domain. The library comes with
63absolutely no warranty.
64
65~~~~