y-cruncher Multi-Precision Library

A Multi-threaded Multi-Precision Arithmetic Library

(Powered by y-cruncher)

(Last updated: March 14, 2016)



YMP Library:

Large Number Objects:

Low-Level Programming:

What is YMP?


YMP is (yet another) arbitrary precision arithmetic library. But unlike most existing libraries, YMP is optimized for the asymptotics.

It is fully parallelized and will readily handle numbers that are billions or even trillions of digits large given sufficient memory.


Key features include:

YMP is part of the y-cruncher project. Likewise, it shares much of the same code as y-cruncher itself.


The public YMP interface started off as the research test-bed for y-cruncher. But it has since been used for other unrelated purposes. Number Factory is the first non-trivial test application for the public YMP library.





YMP is a C++ library with its own interface. This interface closely mirrors the internals of y-cruncher and is heavily focused around multi-threading and resource control. Because of these features, YMP's interface bares little resemblance to that of other existing bignum libraries. So unfortunately, YMP is not a drop-in replacement for existing programs that use GMP or MPIR.


YMP's interface is designed to be as close as possible to what y-cruncher uses:

Due to the tight-coupling between YMP and y-cruncher, the YMP interface will probably evolve over time to keep in sync with y-cruncher itself. Therefore, backwards compatibility between different releases of YMP is not guaranteed and will probably break on a regular basis. Hopefully these won't be too problematic.



Download: (Version 1.0)


Latest Release: YMP (March 14, 2016)

Github Repository with Number Factory app: https://github.com/Mysticial/NumberFactory/tree/release-1.0

Bug reports and feature requests should also go on the Number Factory github project.


Run-Time Requirements:


Compilation Requirements:


Version History:

None yet.




YMP is for non-commercial purposes only. You are free to use it for any personal or academic research purposes. For other uses please contact me.



Known Issues and Possible Improvements:


Main Page




Questions or Comments

Contact me via e-mail. I'm pretty good with responding unless it gets caught in my school's junk mail filter.