BSDMP is a cross-platform, highly-optimized multiple precision arithmetic library for manipulating large integers (BigInt) and very precise fractional values. It is intended to be a clean-room BSD-license replacement for GMP (the GNU Multiprecision Library).
BPSMP is currently in the pre-alpha stage of development. It has a preliminary design which has been partially implemented. There is not yet an official release.
Multiple-precision arithmetic is a fundamental requirement in many important systems. The open-source leader in this area is GMP, the GNU Multiprecision Library, a highly-optimized library that has been in development since 1991. GMP is available under the Lesser GPL (LGPL) license; roughly speaking, this means that the library may be linked against proprietary applications, but if the library itself is modified or extended, these modifications must be released to the public.
But for some applications, the terms of the LGPL are too onerous. In particular, many research and commercial projects strive to use only BSD-licensed code, which avoids legal risk and leaves open the possibility of creating a proprietary derivative work at a later time. BSDMP, like GMP, is a highly-optimized multiple precision arithmetic library written in C and assembly language, but it is not a fork or "clone" of GMP - it is a clean-room design, designed and written solely by developers who have not come into contact with the GMP source code.
How is BSDMP different from GMP?
- is released under the Simplified BSD License, not the Lesser GPL.
- has a different interface: porting a program using GMP to BSDMP is nontrivial and a compatibility layer does not exist.
- is less mature, development having started only in 2010.
- is intended to integrate well with proprietary languages and tools.
How can I check out the BSDMP source code?
BSDMP uses Subversion for its source control. To check out the latest bleeding-edge BSDMP source code, first install the Subversion command-line client svn, and then use the command:
svn co https://bsdmp.svn.sourceforge.net/svnroot/bsdmp/trunk bsdmp
This is the only code presently available. To build, use "make" under the "src" directory. Build support is not yet available for build platforms other than GNU Make.
"BSDMP" is not an acronym, but a portmanteau of the acronyms "BSD" and "GMP." It is not related in any way to Berkeley MP, an early multiprecision arithmetic library once included with many BSD-derived UNIX systems.