Skip to content

qed777/bsdnt

 
 

Repository files navigation

bsdnt is a BSD licensed bignum library, suitable for use by languages which
need to provide bignum support and for other projects requiring relatively
fast bignums.

The primary goal of the project is to have clean, comprehensible, 
well-documented code, whilst retaining reasonable performance. It is not
a goal to insanely optimise where that would make the code less readable
and maintainable.

The project will be developed in numerous stages:

i) A C only phase, implementing nothing but basecase algorithms, which will
serve to map out the interface. This code will eventually be used as test 
code and fallback C code for architectures without assembly support.

ii) Addition of algorithms to make the library efficient up to a few hundred 
limbs and inline assembly code for x86 and x86_64.

iii) Addition of asymptotically fast algorithms for huge operands.

iv) Addition of assembly code for other platforms.

At least the first phase of the project will be completed as a github social
coding project, with a blog every few days which interested parties can 
follow along with their own github fork in the language of their choice.

It's expected that step 1 will take a few weeks. Step 2 will take 6 months to
a year.

----

To build bsdnt and run the test code

$ cd bsdnt
$ ./configure
$ make check

----

See the LICENSE file for legal info and warranty information.

Enjoy!!

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%