bigz is a simple but feature-rich C library for bignum calculations. It's the continuation of an old BigNum project originally begun as a research project. Current releases include many fixes, extensions and improvements. It's not as efficient as GMP, but comes with a smaller footprint, provides Z+Q infinite precision, and is rather portable and multi-thread safe.
2.0.016 Jan 2020 10:05
Improve rational test suite. Improve LISP detection. Generation of tests can be done by OpenLisp or sbcl. Detect a valid lisp to generate tCBignum.dat tests. permission on makefile.msvc. dates and revisions. Makefile entry for tCBignum.dat. Rename makefile.nt to makefile.msvc. Change copyright last year to 2020, wrong returned string length with BqToStringBufferExt. Doxygen, use BQ_xx constants instead of BZ_xx in bigq. BzToStringBufferExt wrong return length. Add BqToStringBufferExt which collects rational into given buffer. wrong string size computation. Improve style, documentation and constness when possible. Change BigQ type to const object. operator
1.6.412 Jan 2020 16:05
Better check rational possible failures. Optimize code when denominators are equal. Decompose BqCreateInternal to TCC (esp. if used with a GC). Rework bignum/rational string parsers, add many test cases. a bignum parsing error that was not detected?, Add more options to parse bignums and rationals from string. Better check possible syntax errors when parsing Bignum or Rational. Better detect errors when parsing rational numbers. Doxygen 1.8.16 is the default version for html documentation. Don't try to use -m64 flag. Use AC_CHECK_TARGET_TOOLS instead of AC_CHECK_PROGS. Better check clang++ available flags. Better support compiler flags common or not with gcc and clang. Remove warning detected by gcc 9.1 on negative index, english comment insure- ensure. new warning found with VS 2019. suggest-override is not well detected with clang, sign warning only detected by clang. Test and add -Wconversion new warning detection, new warnings found with -Wconversion, Add optional -static-libasan when compiling with sanitizer, Add optional SANITIZE flag to be used for sanity checks. Update m4 scripts. CRational to CBignum conversion. Change last year to 2019. Add missing BSD license on some source files. Improve doxygen, normalize header. Better use template for CBignum ctor. Tune doxygen comments. Comment all C public API with Doxygen tags. Add doxygen task. Modernize style. Add Bz preto MaxInt and AbsInt macros.
1.6.210 May 2016 01:05
CBignum ctor with negative value. BzModExp accepts negative modulus value. BzModExp exponent is BigZ as it can be really big like with RSA. Add BzFromStringLen that pass the length of string. Add experimental BzModExp using Right-to-left binary method. std::ios::showpos test used to display '+' for positive numbers. Optimize left and right shift with loop unrolling. Dramatically improve (ash +/- 1 n). Now computed in O(1) V.S. O(n).
1.5.503 Jan 2015 13:05
Build shared lib with gcc.
Add install/uninstall Makefile entries.
Add bignum.pc.in and bignum.spec.in.
Add BzPow(base, exp).