-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
misc bigint, bignum #478
Comments
I will look into this feature. |
@xflywind what's your proposed approach? What I have in mind is something like Key features:
notes
LGPL could be a problem depending on use cases but if we can provide a fixed nim interface that allows swapping in different underlying libraries (gmp, mp++, a partial nim re-implementation, etc) then the licensing issue kind of goes away: the user would then be able to swap in a (supported) library of their choosing, depending on performance vs licensing terms. scopewe could start with just bigints, but make the design extensible to all the features that mp++ offers (refs https://github.com/bluescarni/mppp) |
Do you have seen this library? https://github.com/libtom/libtommath All LibTom Projects are either under WTFPL or The Unlicense and free for all purposes There are many license friendly libraries in this list It seems that the bignum implementation on V8 is not too complex too Python/Erlang/PHP C implementation Or we could provide backend switch options(Pure Nim and GMP) like haskell I would like Pure-Nim implementation like D(https://dlang.org/phobos/std_bigint.html)
Some random benchmarks |
thanks for the links! https://www.libtom.net/TomsFastMath/ should be used instead of libtommath though
we need to find benchmarks comparing gmp vs TomsFastMath |
links
nim
c, c++
other
TomsFastMath
libtom https://www.libtom.net/TomsFastMath/
hebimath
suiginsoft/hebimath: arbitrary precision arithmetic library
v8
benchmarks
gmp
languages using gmp through ffi:
bsdnt
wbhart/bsdnt: BSD Licensed Bignum Library
The text was updated successfully, but these errors were encountered: