An arbitary precision number library in C++