Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
optimize several functions in Arith:
mul
pow
for small baseslog2
and log2sup
(5x faster)log
and logsup
for bases 2, 16, 64, 10, 60valuation_of_2
number_of_bits_set
(7x faster)Arith.mul_quo
(renamed to mul_equo
) and Arith.gcdext
Arith.gcdext
return minimal coefficientsArith.sdiv
Arith.mul_{ediv,erem}
Arith.{gcd,gcdext,lcm}_of_seq
add functions related to integer powers and roots:
Arith.isqrt_if_square
Arith.is_pow
Arith.is_pow2
Arith.kth_root
Arith.is_kth_pow
Arith.smallest_root
add some classical arithmetic functions whose computation uses factorization:
Primes.divisor_pairs
Primes.sum_of_divisors
Primes.jordan
Primes.carmichael
Primes.mobius
Primes.derivative
Primes.order
, Primes.order_with_known_multiple
, Primes.order_mod_prime_pow
Primes.factors
now performs some iterations of Fermat’s factor searchingBREAKING: rename sequence-related functions:
Arith.sum_seq
-> sum_of_seq
Arith.prod_seq
-> prod_of_seq
Primes.prime_seq
-> gen_primes
Primes.primes
-> iter_primes
BREAKING: rename logarithm functions:
Arith.log
-> Arith.ilog
Arith.log2
-> Arith.ilog2
Arith.logsup
-> Arith.ilogsup
Arith.log2sup
-> Arith.ilog2sup
Arith.mul_quo
to mul_equo
Arith.( ** )
for integer exponentiationArith.range_down
not being exposed in the interfacePrimes.prime_seq