-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
First, to clarify: There are definitely faster, and more capable arbitrary precision maths libraries around, although over time the performance and capabilities will continue to be improved :-)
I built this for lots of different reasons:
-
I often build mathematical simulations for problems I want to investigate, and as a programmer I tend to write programs to do this rather than use other modelling frameworks. Some of the simulations are things I share as open source projects, and so I wanted something that was stand-alone and non-proprietary, but some of them aren't open and I didn't want the restrictions that a GPL or LGPL license might imply. I also didn't want to have to include a huge framework to build simple programs :-)
-
I care a great deal about software performance (and for quite a number of years was a gcc backend developer for 2 embedded ISAs), so I wanted to understand the performance characteristics of arbitrary precision maths. Writing this from scratch has let me do this, and I've been able to ensure that performance measurements have been part of the codebase from day one.
-
I wanted to have the opportunity to write about building a reasonably complex library, and about how I think about performance optimization. In the past I've done both, but was never in a position to publish the details outside of the companies I was working for.
-
Having had (too many) years of writing C code, C++ 14 persuaded me to switch back to C++ for application code, so I wanted a library that took full advantage of modern C++ capabilities.
In the past I've written a lot of code under many different open source and closed source licenses. In this instance I wanted to make it possible to use what I've written in both open and closed software, and without significant burdens on either. I thought about making this public domain, but I firmly believe that authors/creators should be credited for their work because they've often invested substantial amounts of time in it. A 3-clause BSD license seems like a good balance.