K10-2:

Comparing an empty function with the old n_mod2_preinv, the new n_mod2_preinv, n_mod2_precomp and n_mod_precomp.

The timings are all for a%n with a of FLINT_BITS bits and n of the given number of bits.

bits 1, empty 12.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 73.6 c/l
bits 2, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 74.5 c/l
bits 3, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 71.4 c/l
bits 4, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 68.1 c/l
bits 5, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 67.4 c/l
bits 6, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 68.8 c/l
bits 7, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 67.7 c/l
bits 8, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 69.7 c/l
bits 9, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 71.4 c/l
bits 10, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 71.5 c/l
bits 11, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 61.4 c/l
bits 12, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 52.2 c/l
bits 13, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 46.1 c/l
bits 14, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 40.1 c/l
bits 15, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 37.5 c/l
bits 16, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 36.3 c/l
bits 17, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.7 c/l
bits 18, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.4 c/l
bits 19, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.2 c/l
bits 20, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.1 c/l
bits 21, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.1 c/l
bits 22, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 23, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 24, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 25, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 26, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 27, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 28, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 29, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 30, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 31, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 32, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 33, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 34, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 35, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 36, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 37, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 38, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 39, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 40, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 41, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 42, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 43, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 44, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 45, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 46, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 47, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 48, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 49, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 50, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 51, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 52, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 53, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l, pre 29.0 c/l
bits 54, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 55, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 56, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 57, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 58, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 59, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 60, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 61, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 62, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 63, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 35.0 c/l
bits 64, empty 9.0 c/l, old 27.0 c/l, new 21.0 c/l, pre2 16.2 c/l

timings for n_ll_mod_preinv (old function was about 60 c/l (note empty function takes about 11 cycles)

bits 1, ll_inv 43.0 c/l
bits 2, ll_inv 43.1 c/l
bits 3, ll_inv 41.4 c/l
bits 4, ll_inv 40.5 c/l
bits 5, ll_inv 39.1 c/l
bits 6, ll_inv 39.9 c/l
bits 7, ll_inv 39.3 c/l
bits 8, ll_inv 39.5 c/l
bits 9, ll_inv 39.4 c/l
bits 10, ll_inv 39.3 c/l
bits 11, ll_inv 38.9 c/l
bits 12, ll_inv 38.5 c/l
bits 13, ll_inv 40.4 c/l
bits 14, ll_inv 37.8 c/l
bits 15, ll_inv 39.0 c/l
bits 16, ll_inv 38.9 c/l
bits 17, ll_inv 39.0 c/l
bits 18, ll_inv 39.6 c/l
bits 19, ll_inv 38.1 c/l
bits 20, ll_inv 38.9 c/l
bits 21, ll_inv 39.3 c/l
bits 22, ll_inv 38.4 c/l
bits 23, ll_inv 39.1 c/l
bits 24, ll_inv 39.5 c/l
bits 25, ll_inv 39.2 c/l
bits 26, ll_inv 38.9 c/l
bits 27, ll_inv 39.8 c/l
bits 28, ll_inv 38.9 c/l
bits 29, ll_inv 40.0 c/l
bits 30, ll_inv 38.3 c/l
bits 31, ll_inv 39.3 c/l
bits 32, ll_inv 39.1 c/l
bits 33, ll_inv 39.2 c/l
bits 34, ll_inv 39.8 c/l
bits 35, ll_inv 39.8 c/l
bits 36, ll_inv 39.1 c/l
bits 37, ll_inv 39.4 c/l
bits 38, ll_inv 38.5 c/l
bits 39, ll_inv 39.1 c/l
bits 40, ll_inv 39.5 c/l
bits 41, ll_inv 39.5 c/l
bits 42, ll_inv 40.5 c/l
bits 43, ll_inv 38.5 c/l
bits 44, ll_inv 37.6 c/l
bits 45, ll_inv 38.8 c/l
bits 46, ll_inv 38.1 c/l
bits 47, ll_inv 39.5 c/l
bits 48, ll_inv 38.9 c/l
bits 49, ll_inv 39.5 c/l
bits 50, ll_inv 39.1 c/l
bits 51, ll_inv 38.5 c/l
bits 52, ll_inv 39.3 c/l
bits 53, ll_inv 38.5 c/l
bits 54, ll_inv 40.0 c/l
bits 55, ll_inv 38.9 c/l
bits 56, ll_inv 39.4 c/l
bits 57, ll_inv 38.4 c/l
bits 58, ll_inv 38.6 c/l
bits 59, ll_inv 39.0 c/l
bits 60, ll_inv 39.5 c/l
bits 61, ll_inv 38.8 c/l
bits 62, ll_inv 39.4 c/l
bits 63, ll_inv 38.4 c/l
bits 64, ll_inv 38.1 c/l

n_lll_mod_preinv (there was no old function, but it would have been something like 113 cycles) - empty takes 13 cycles

bits 33, ll_inv 135.1 c/l
bits 34, ll_inv 135.2 c/l
bits 35, ll_inv 45.1 c/l
bits 36, ll_inv 45.1 c/l
bits 37, ll_inv 45.0 c/l
bits 38, ll_inv 45.1 c/l
bits 39, ll_inv 45.1 c/l
bits 40, ll_inv 45.1 c/l
bits 41, ll_inv 45.1 c/l
bits 42, ll_inv 45.0 c/l
bits 43, ll_inv 45.0 c/l
bits 44, ll_inv 45.1 c/l
bits 45, ll_inv 45.1 c/l
bits 46, ll_inv 45.1 c/l
bits 47, ll_inv 45.1 c/l
bits 48, ll_inv 45.1 c/l
bits 49, ll_inv 45.1 c/l
bits 50, ll_inv 45.1 c/l
bits 51, ll_inv 45.0 c/l
bits 52, ll_inv 45.1 c/l
bits 53, ll_inv 45.0 c/l
bits 54, ll_inv 45.1 c/l
bits 55, ll_inv 45.1 c/l
bits 56, ll_inv 45.0 c/l
bits 57, ll_inv 45.0 c/l
bits 58, ll_inv 45.1 c/l
bits 59, ll_inv 45.1 c/l
bits 60, ll_inv 45.1 c/l
bits 61, ll_inv 45.1 c/l
bits 62, ll_inv 45.1 c/l
bits 63, ll_inv 45.1 c/l
bits 64, ll_inv 44.8 c/l
