Skip to content

Version 23.08

Choose a tag to compare

@trizen trizen released this 29 Aug 10:39
· 898 commits to master since this release
23.08
fb588f3

Additions

  • Added the Num!USE_PRIMESUM class-variable. (disabled by default) (28e2ac3)
  • Added the Number lpf_sum(a,b) method. (9c70da2)
  • Added the Number gpf_sum(a,b) method. (096ead5)
  • Added the Number k.squarefree_almost_prime_sum(a,b) method. (601bb75)
  • Added the Number k.almost_prime_sum(a,b) method. (6b1d971)
  • Added the Number prime_power_sum(n) method. (90d77d9)
  • Added the Number k.omega_prime_sum(a,b) method. (d238139)
  • Added the Number k.power_count(a,b) and k.power_sum(a,b) methods. (19cd8c9)
  • Added the Number perfect_power_sum(n) method. (c799a1c)
  • Added the Number nth_perfect_power(n) method. (ab462f6)
  • Added the Number next_perfect_power(n,k=nil) and prev_perfect_power(n,k=nil) methods. (5c195e3)
  • Added the Number prev_prime_power(n) method. (e51de62)
  • Added the Number n.prev_omega_prime(k=2) method. (44c3723)
  • Added the Number prev_semiprime(n) method. (ad8928b)
  • Added the Number prev_almost_prime(n,k) method. (ad8928b)
  • Added the Number prev_squarefree(n) method. (cb6917d)
  • Added the Number next_squarefree_semiprime(n) method. (a6e26d0)
  • Added the Number n.prev_powerfree(k=2) method. (8457fd4)
  • Added the Number n.prev_powerful(k=2) method. (8d4907f)
  • Added the Number n.prev_squarefree_semiprime method. (6da4bba)
  • Added the Number n.prev_squarefree_almost_prime(k=2) method. (6da4bba)
  • Added the Number nth_nonpowerfree(n,k) method. (6cc777f)
  • Added the Number next_nonpowerfree(n,k=2) and prev_nonpowerfree(n,k=2) methods. (809aa9b)
  • Added the Number muladdmulmod(a, b, c, d, m) and mulsubmulmod(a, b, c, d, m) methods. (9e230f4)
  • Added the Number muladdmod(a,b,c,m), mulsubmod(a,b,c,m) and submulmod(a,b,c,m) methods. (d50ffde)
  • Added several cube_* and cubefree_* aliases for 3.power_* and 3.powerfree_. (bb0784e)
  • Added the FileHandle .rewind method. (3b40438)
  • Added the String .codes method. (6da6122)
  • Added the Range .sort {|a,b| ... } and .sort_by {|v| ... } methods. (1eacc45)

Improvements

  • Extended the Number fibmod method to accept 3 arguments. (b79e09d)
  • Extended expnorm(n,b) to accept any value for base b, including a complex number. (b79e09d)
  • Use primecount --phi in Number k.rough_count(n) when Num!USE_PRIMECOUNT is enabled. (28e2ac3)
  • Extended cop_factor(n) to potentially find more factors. (a2cdf75)
  • Allow the Number gamma method to be called as Num.gamma, returning the Euler-Mascheroni constant. (b79e09d)
  • Added a few more terms in the lookup table for mertens(2**n) and mertens(2**n). (e9ebca0)
  • bin/sidef: added the faith rounding option for -M, which does faithful rounding (with mpfr >= 4.0.0). (fde163a)
  • Better performance in is_omega_prime(n,k) and is_almost_prime(n,k) for large n. (abc0c1e)
  • Num(str, base) now returns a blessed native integer, when possible. (47aa40a)
  • Added a few more terms in the Number almost_prime_count() lookup tables. (56b16a3)
  • Better performance in Number nth_almost_prime(n,k) when the result doesn't fit inside a native integer. (b6afa3d)
  • Better performance in Number k.almost_primes(a,b) and k.omega_prime_count(a,b) when the GitHub version of Math::Prime::Util is installed.
  • Better performance in Number fibonacci(n,k) for k >= 3 and large enough n. (bf9f8b9)
  • Added internal cache inside the Number _is_prob_prime internal function. (7697083)

Changes

  • Renamed the Number k.non_powerfree(a,b) method to k.nonpowerfree(a,b). (384eb06)
  • Reimplemented the Array and String .slice(offset, length) methods. (68d11ff, 11887b8, 724882e)
  • Renamed the Number .partitions method to .partition_count, which better reflects what it returns. (34c2fc9)
  • Renamed the Number *squareful* and *cubeful* methods to *squarefull* and *cubefull* respectively. (5433491)

Bug-fixes

  • Added a better defined Array .ft(i,j) method. (724882e)
  • Fixed the help command inside the REPL. (efa54f1)
  • Fixed the code generation for a hash-lookup applied on the result of a prefix method-call. (4575600)
  • Fixed a bug in Number divmod(a,b,m) introduced in version 22.05, when a is evenly divisible by b. (48fcbbe)

All changes: 23.05...23.08