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