0.7.43 * Tests now use MiniTest * Ruby 2.4 and the new Integer class (replacement for Fixnum and Bignum) are * now supported (thanks @timocp). * GMP::Z can now be initialized from a Float or GMP::F, as well as the existing Fixnum, Bignum, Integer, GMP::Z, and String. 0.7.19 * GMP::Q.new can now accept a GMP::Z or Fixnum more intelligently, and can accept a Float, and is tested better. * GMP::F.new can now accept a rounding mode after the base, when a String is passed in. * Rakefile is much more robust with various dependencies. * Yardoc documentation is less completely broken. * GMP::F#** is now slightly more efficient when the argument is a Fixnum or GMP::Z, and is now tested. * Bigger error message when GMP can't be found. Fixes #4. * Rearrange args for GMP::F#atan2, #agm, and #hypot; contributed by @timpeters * Allow Float for args to GMP::F#atan2, #agm, and #hypot; contributed by @timpeters * Sanity checks for GMP::F#hypot * Added new MPFR class methods: GMP::F.emin, GMP::F.emax, GMP::F.emin=, GMP::F.emax=, GMP::F.emin_min, GMP::F.emin_max, GMP::F.emax_min, and GMP::F.emax_max; also minimal tests, and documentation * Added new MPFR constructor method: GMP::F.new_2exp, not really tested :) 0.6.47 * Fixed GMP::F#to_s when MPFR is not present. It now works, and accepts an optional base argument, just like GMP::F#to_s does when MPFR _is_ present. * Added new optional rounding mode argument to GMP::F.new(Fixnum), GMP::F.new(Bignum), GMP::F.new(GMP::Z), GMP::F.new(GMP::Q), GMP::F.new(Float), and GMP::F.new(GMP::F) with tests (MPFR only) * Added MPFR method GMP::RandState.mpfr_urandom (mpfr_urandom) and tests * Added MPFR methods GMP::F#lessgreater? and GMP::F#unordered?, with sanity tests * Added tests for GMP::F#abs and GMP::F#neg * Added GMP::F.fac(n) (mpfr_fac_ui) and tests * Added GMP::F.nan, GMP::F.inf, GMP::F.zero (MPFR >= 3.0.0), documentation, and simple tests * Added GMP::F#frexp, documentation, and tests * Fixed GMP::MPFR_RNDA 0.6.43 * Fixed compilation on OS X 10.9 Mavericks, using LLVM 5.0 * Added license: Apache v2 0.6.41 * Added GMP::Z.fib2, with documentation and tests * Properly coerce GMP::Q and Float. GMP::Q / Float will now convert both operands into GMP::F * Workaround Ruby 2.0.0 bug in using --with-gmp-dir in extconf.rb (#8047) * Fixed bugs for Z#fac, Z#2fac, Z#primorial, Z#fib, and Z#lucnum, where Ruby would crash if a negative number was passed in as the argument. * Aliasing #inspect to #to_s for GMP::Z, GMP::Q, and GMP::F, for better usability in Ruby 2.x, where Object#inspect no longer calls #to_s. * Support now verified for Ruby 2.0.0 and Ruby 2.1.0-preview1 0.6.31: * Added GMP::Z#rootrem and tests 0.6.19: * Added GMP::Z#congruent? and tests * Added GMP::Z#export and GMP::Z.import and _minimal_ tests 0.6.17: * Added GMP::Z#out_raw, GMP::Z.inp_raw 0.6.13: * Added three new GMP::Z methods for GMP 5.1.x: GMP::Z#2fac (GMP::Z#double_fac), GMP::Z#mfac, and GMP::Z#primorial * Fixed a compilation bug when MPFR is not available. * Fixed test bugs when MPFR is not available. * Tweaked README documentation * Added GMP::Z method: GMP::Z#hamdist, with minimal tests 0.6.7: * Added 9th set of Functional Mappings: GMP::Z.divisible? * Added 11th set of Functional Mappings: GMP::Z.congruent? * Added GMP::sprintf for Ruby 1.9.x (requires Oniguruma regular expressions) * Added optional parameter to GMP::F#to_s to allow a base to be passed in * Finally added a rake file. My workflow now consists largely of: rvm use _some_ruby_ rake make * Added tests for GMP::F#to_s * Added GMP::F#integer? * Fixed tests for MPFR 3.1's PRNG * Completely reorganized the benchmarks * Added new performance.md, performance.html, and performance.pdf, a reworked benchmarking report * Added GMP::Z#lcm, with tests * Added an alloc_func, so that now GMP::Z#dup and GMP::Z#clone work * Added GMP::Z#gcdext2, which only calculates g and s, for as + bt = g 0.5.47: * Probably last release before 0.6.7 * Added GMP::Q#hash and GMP::Q#eql?; tested. * Added optional parameter to GMP::Z.new(String), the base; tested. * Added GMP::F.mpfr_buildopt_tls_p() when MPFR > 2.x.x. * Added GMP::F.mpfr_buildopt_decimal_p() when MPFR > 2.x.x. * I'm seeing weird failures on tests with JRuby 1.6.5... they are flickering though. GMP::Z(GMP::GMP_NUMB_MAX) is not happy... need to research. * If using MPFR 3.1.0, the random number generator tests will fail, I imagine because of this new functionality, documented on the MPFR site: "The mpfr_urandom and mpfr_urandomb functions now return identical values on processors with different word size (assuming the same random seed, and since the GMP random generator does not depend itself on the word size, cf http://gmplib.org/list-archives/gmp-devel/2010-September/001642.html)." * Unit test results: 118 tests, 16396 assertions, 0 failures, 0 errors * Unit test results: 99 tests, 5118 assertions, 0 failures, 0 errors (w/o MPFR) 0.5.41: * Added first five sets of Functional Mappings. These will be the primary new features of 0.6. * First Functional Mappings: GMP::Z.add, .addmul, .submul, .divexact, .lcm, .sub, .mul, .mul_2exp, .cdiv_q_2exp, .cdiv_r_2exp, .fdiv_q_2exp, .fdiv_r_2exp, .tdiv_q_2exp, .tdiv_r_2exp, .neg, .abs, .sqrt, .nextprime, .com * Added hopeful support for the Rubinius Ruby interpreter and VM! All tests pass in Rubinius 1.1.0, but full support won't be added until the release and inspection of Rubinius 1.1.1. Tested on 64-bit OS X 10.6 and 64-bit Linux 2.6.35. * Unit test results: 114 tests, 16203 assertions, 0 failures, 0 errors * Unit test results: 114 tests, 16190 assertions, 0 failures, 0 errors (MPFR 2.4.2) * Unit test results: 95 tests, 4925 assertions, 0 failures, 0 errors (w/o MPFR) 0.5.23: * Added MPFR method GMP::F.can_round? (mpfr_can_round), not tested. * MPFR const_ functions now accept an optional rounding mode and precision. * Added GMP method GMP::RandState.rrandomb (mpz_rrandomb) * Added GMP constant GMP_NUMB_MAX * Added GMP method GMP::Z.gcdext. * GMP::Z.gcd and GMP::Z.gcdext are now heavily tested via GMP's tests. * Added MPFR methods GMP::F.sin[h]_cos[h] (mpfr_sin[h]_cos[h]), not tested. * Added MPFR methods GMP::F.atan2, .agm, and .hypot, not tested. * Seriously improved RDoc/YARD documentation. I didn't know rubygems.org auto-yardocs my stuff! * Added GMP method GMP::Z#submul! (mpz_submul) with tests. * Added GMP method GMP::Z#divisible? (mpz_divisible[_ui]_p) with tests. * Preliminary testing with REE on Linux... probably supported next release. * Unit test results: 109 tests, 16144 assertions, 0 failures, 0 errors * Unit test results: 109 tests, 16131 assertions, 0 failures, 0 errors (MPFR 2.4.2) * Unit test results: 90 tests, 4866 assertions, 0 failures, 0 errors (w/o MPFR) 0.5.3: * Now supporting GMP 5.0.1 (I now test with GMP 4.3.2 and 5.0.1). * Now supporting MPFR 3.0.0 (I now test with MPFR 2.4.2 and 3.0.0). * Now supporting Ruby 1.9.2. A few changes had to be made. * Now supporting 64-bit (mostly Linux right now). * Added MPFR method GMP::F.zero? (mpfr_zero_p) with tests. * Added MPFR method GMP::F.regular? (mpfr_regular_p) with tests (MPFR 3.0.0 only). * Added MPFR methods GMP::F.rec_sqrt (mpfr_rec_sqrt) and GMP::F.cbrt (mpfr_rec_cbrt), both heavily tested. * Added MPFR method GMP::F.digamma (mpfr_digamma), not tested. * Added GMP::F.prec= (mpf_set_prec) and GMP::F.prec_raw= (mpf_set_prec_raw), neither tested yet. * Added a dramatic amount of content to the manual. 26 pages. * Unit test results: 98 tests, 11974 assertions, 0 failures, 0 errors * Unit test results: 98 tests, 11961 assertions, 0 failures, 0 errors (MPFR 2.4.2) * Unit test results: 79 tests, 742 assertions, 0 failures, 0 errors (w/o MPFR) 0.4.19: * Added FIX2NUM macro to help support x86_64. * Fixed bug in MPRF functions; they were not using specified rounding modes. * Added ** (pow) to GMP::F (when not using MPFR) * Fixed add'l bug in MPFR functions, when specifying a rounding mode. * Fixed memory bug when specifying an invalid precision, or base range. * Fixed GMP::Z#pow (note that GMP::Z.pow has always worked.) * Added many tests from MPFR's tsqrt.c. This actually exposed a lot of bugs in the gem. * Added GMP::Z.size (mpz_size). Not tested yet. * Added GMP::Z.addmul! (mpz_addmul) with tests. * Unit test results: 90 tests, 1500 assertions, 0 failures, 0 errors * Unit test results: 79 tests, 742 assertions, 0 failures, 0 errors (w/o MPFR) 0.4.7: * Added 6 MPFR trig methods, plus eint, li2, gamma, lngamma, zeta, erf, erfc, j0, j1, jn, y0, y1, and yn. * Completely fixed the rounding constants. They are now objects, sporting name, mode, and ieee754 reader methods. * Added 4 MPFR "constants". Their values can change based on precision and rounding mode. const_log2, const_pi, const_euler, const_catalan. * Added GMP::Z.eql? and GMP::Z.hash to allow GMP::Z objects to be proper keys in a hash * "Completed" documentation of GMP::Z. * Started documentation of GMP::Q. * Tests now for GMP::Q.to_s. * Unit test results: 84 tests, 1378 assertions, 0 failures, 0 errors * Unit test results: 74 tests, 719 assertions, 0 failures, 0 errors (w/o MPFR) 0.4.3: * Support for MPFR on Windows introduced. gmp-x86-mswin32 gem should be used. * Removed compilation warnings when using MPFR * Added constants GMP::GMP_CC, GMP::GMP_CFLAGS, and GMP::GMP_BITS_PER_LIMB. * Added constant GMP::MPFR_VERSION. * Added MPFR rounding constants. These will be changed soon though. * Added MPFR tests adapted straight from the MPFR library, just tsqrt so far. * Added 3x MPFR functions: sec(), csc(), cot(). * Added function existence tests * Unit test results: 78 tests, 1025 assertions, 0 failures, 0 errors * Unit test results: 72 tests, 593 assertions, 0 failures, 0 errors (w/o MPFR) 0.4.1: * Fixed some gem dates * Fixed gmp.so in x86-mswin32 gem * Added urandomm(), documentation, and tests. * Unit test results: 70 tests, 577 assertions, 0 failures, 0 errors 0.4.0: * Support for Windows introduced. gmp-x86-mswin32 gem should be used. * All tests should pass under Windows. * Support for Windows in benchmark started. Still buggy. * Added tests for GMP::Z.gcd. * Added tests for GMP::Z.invert. * Added tests for GMP::RandState (seed, urandomb). * Added documentation for GMP::Z.gcd. * Added documentation for GMP::Z.invert. * Added documentation for GMP::RandState (new, seed, urandomb). * Cleaned up documentation (fixed GMP :: Z spacings). * Added benchmark/gcd * Unit test results: 69 tests, 533 assertions, 0 failures, 0 errors 0.2.11: * Added GMP::Z.gcd. _not_ tested or documented. * Added GMP::Z.invert. _not_ tested or documented. * Added GMP::Z.sizeinbase and size_in_bin. _not_ tested or documented. * benchmark/rsa is complete, assuming gcd and invert function properly. 0.2.10: * Added GMP::Z.%. Tested. Documented. * Beginning benchmark/rsa (it required %). 0.2.9: * benchmark/ finally something. * GMP::time and GMP::cputime introduced. * GMP::RandState.new now supports different algorithms. 0.2.8: * GMP::RandState introduced. urandomb supported. * PDF documentation is extended. 0.2.2: * GMP::Z.jacobi and GPM::Z#jacobi work and are tested. * GMP::Z.legendre works and is tested. * GMP::Z.next_prime is an alias for GMP::Z.nextprime. * GMP::Z.next_prime! is an alias for GMP::Z.nextprime!. * GMP::Z.remove works as it is supposed to. * PDF documentation is extended. 0.2.1: * Got GMP::F(Fixnum) working, (I think it already was). * More and more documentation in PDF. 0.1.9: * Cleaning up more documentation in PDF format. 0.1.8: * Added test: tc_division, in progress. * Unit test results: 56 tests, 361 assertions, 0 failures, 0 errors * Added to_f ==> to_d aliases for GMP::Q and GMP::F. 0.1.7: * Added tests: tc_shifts_last_bits, tc_logical_roots, tc_f_precision, tc_f_arithmetics_coersion, tc_default_prec * Unit test results: 54 tests, 326 assertions, 0 failures, 0 errors * Fixed defect in GMP::F.sub when argument is Bignum * Fixed defect in GMP::F.div when argument is Bignum * Added documentation "manual" in form of a LaTeX-based PDF. Very incomplete * as of yet. 0.1.6.2: * Added optional argument to GMP::Z.to_s. Supply base as either a Fixnum or a Symbol like :hex to get the string in a different base. 0.1.6: * Tested on OS X 10.5.8 with Ruby 1.9.1. It's a go! * Tested on LinuxMint 7 with Ruby 1.8.7. It's a go! Ping me if you have Linux problems. * Added documentation. * Cleaned up source. * Added tests: tc_swap, tc_floor_ceil_truncate, tc_to_i_to_d 0.1.5: * Merged in reorg changes: Files like gmpz.c allow for documenting the C extension methods. * A good portion of the documentation has been written, may not be included yet, but can be generated with rdoc README.rdoc ext/*.c ext/*.h 0.1.4: * Fixed a lot of gemspec problems * Many more tests * Tested on OS X 10.5.8 0.1.1: * Attempting to revitalize through GitHub * no changes to code yet * modernizing files, eg with new ruby standards, towards a gem 1.0: * MPFR support * better string conversion * Debian package alpha9: * more GMP::F code * GMP::Z division alpha8: * various minor changes alpha7: * more GMP::F code alpha6: * basic support for GMP::F * various minor changes