XInt
A big number C++ class
...The l extension is the fact that they do not have a size limit (except for available memory) and the r extension is that they have decimal places (also unlimited).
A large part of math.h has been overloaded for XInt and the rest will follow. The functions that have not been overloaded (sin etc.) can still be accessed as there are conversion operators to and from long double.