CHANGES:
- optimize several functions in Arith:
mulpowfor small baseslog2andlog2sup(5x faster)logandlogsupfor bases 2, 16, 64, 10, 60valuation_of_2number_of_bits_set(7x faster)
- fix overflow in
Arith.mul_quo(renamed tomul_equo) andArith.gcdext - let
Arith.gcdextreturn minimal coefficients - add
Arith.sdiv - add
Arith.mul_{ediv,erem} - add
Arith.{gcd,gcdext,lcm}_of_seq - add functions related to integer powers and roots:
Arith.isqrt_if_squareArith.is_powArith.is_pow2Arith.kth_rootArith.is_kth_powArith.smallest_root
- add some classical arithmetic functions whose computation uses factorization:
Primes.divisor_pairsPrimes.sum_of_divisorsPrimes.jordanPrimes.carmichaelPrimes.mobiusPrimes.derivative
- add
Primes.order,Primes.order_with_known_multiple,Primes.order_mod_prime_pow Primes.factorsnow performs some iterations of Fermat’s factor searching- BREAKING: rename sequence-related functions:
Arith.sum_seq->sum_of_seqArith.prod_seq->prod_of_seqPrimes.prime_seq->gen_primesPrimes.primes->iter_primes
- BREAKING: rename logarithm functions:
Arith.log->Arith.ilogArith.log2->Arith.ilog2Arith.logsup->Arith.ilogsupArith.log2sup->Arith.ilog2sup
- BREAKING: rename
Arith.mul_quotomul_equo - BREAKING: add notation
Arith.( ** )for integer exponentiation - fix
Arith.range_downnot being exposed in the interface