Avatar for the recmo user
recmo
uint
BlogDocsChangelog

perf: make add_mod faster using overflow check

#469Merged
Comparing
DaniPopes:add-mod-simple2
(
1b86df8
) with
main
(
16f236e
)
CodSpeed Performance Gauge
-92%
Improvements
9
Regressions
1
Untouched
219
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

wrapping_shrRegression
benches/bench.rs::benches::benches::group::wrapping_shr
CodSpeed Performance Gauge
-92%
518.1 µs
6,839.9 µs

Improved

overflowing_shl
benches/bench.rs::benches::benches::group::overflowing_shl
CodSpeed Performance Gauge
×35
7,396.2 µs
209.6 µs
wrapping_shl
benches/bench.rs::benches::benches::group::wrapping_shl
CodSpeed Performance Gauge
×5.2
723.2 µs
140.1 µs
overflowing_shr
benches/bench.rs::benches::benches::group::overflowing_shr
CodSpeed Performance Gauge
×5
1,038.3 µs
207 µs
add_mod/512
benches/bench.rs::benches::benches::group::add_mod/512
CodSpeed Performance Gauge
+20%
3.7 ms
3.1 ms
add_mod/384
benches/bench.rs::benches::benches::group::add_mod/384
CodSpeed Performance Gauge
+19%
3.1 ms
2.6 ms
add_mod/4096
benches/bench.rs::benches::benches::group::add_mod/4096
CodSpeed Performance Gauge
+16%
220.7 µs
189.5 µs
add_mod/192
benches/bench.rs::benches::benches::group::add_mod/192
CodSpeed Performance Gauge
+16%
2.1 ms
1.8 ms
add_mod/256
benches/bench.rs::benches::benches::group::add_mod/256
CodSpeed Performance Gauge
+15%
2.4 ms
2.1 ms
add_mod/128
benches/bench.rs::benches::benches::group::add_mod/128
CodSpeed Performance Gauge
+13%
1.3 ms
1.2 ms

Passed

neg/4096
benches/bench.rs::benches::benches::group::neg/4096
CodSpeed Performance Gauge
+4%
72.6 µs
69.7 µs
mul/4096
benches/bench.rs::benches::benches::group::mul/4096
CodSpeed Performance Gauge
0%
784.7 µs
782 µs
root/127/4096/4096
benches/bench.rs::benches::benches::group::root/127/4096/4096
CodSpeed Performance Gauge
0%
2.7 ms
2.7 ms
pow/128
benches/bench.rs::benches::benches::group::pow/128
CodSpeed Performance Gauge
0%
87.8 µs
87.7 µs
root/2/4096/4096
benches/bench.rs::benches::benches::group::root/2/4096/4096
CodSpeed Performance Gauge
0%
8.6 ms
8.6 ms
root/3/4096/4096
benches/bench.rs::benches::benches::group::root/3/4096/4096
CodSpeed Performance Gauge
0%
9.4 ms
9.4 ms
root/5/4096/4096
benches/bench.rs::benches::benches::group::root/5/4096/4096
CodSpeed Performance Gauge
0%
9.7 ms
9.7 ms
add/64
benches/bench.rs::benches::benches::group::add/64
CodSpeed Performance Gauge
0%
126.3 µs
126.2 µs
sub/64
benches/bench.rs::benches::benches::group::sub/64
CodSpeed Performance Gauge
0%
126.3 µs
126.2 µs
mul/64
benches/bench.rs::benches::benches::group::mul/64
CodSpeed Performance Gauge
0%
131.7 µs
131.7 µs
algo/div/reciprocal/ref
benches/bench.rs::benches::benches::group::algo/div/reciprocal/ref
CodSpeed Performance Gauge
0%
162.1 µs
162.1 µs
pow/192
benches/bench.rs::benches::benches::group::pow/192
CodSpeed Performance Gauge
0%
339 µs
338.9 µs
algo/div/reciprocal/mg10
benches/bench.rs::benches::benches::group::algo/div/reciprocal/mg10
CodSpeed Performance Gauge
0%
215.1 µs
215.1 µs
mul/256
benches/bench.rs::benches::benches::group::mul/256
CodSpeed Performance Gauge
0%
632.4 µs
632.3 µs
widening_mul/64/256
benches/bench.rs::benches::benches::group::widening_mul/64/256
CodSpeed Performance Gauge
0%
787.5 µs
787.4 µs
overflowing_pow/128
benches/bench.rs::benches::benches::group::overflowing_pow/128
CodSpeed Performance Gauge
0%
535 µs
534.9 µs
div_rem/4096/64
benches/bench.rs::benches::benches::group::div_rem/4096/64
CodSpeed Performance Gauge
0%
187.1 µs
187 µs
mul_mod/4096
benches/bench.rs::benches::benches::group::mul_mod/4096
CodSpeed Performance Gauge
0%
3.9 ms
3.9 ms
overflowing_pow/192
benches/bench.rs::benches::benches::group::overflowing_pow/192
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
algo/div/3x2/ref
benches/bench.rs::benches::benches::group::algo/div/3x2/ref
CodSpeed Performance Gauge
0%
426.1 µs
426.1 µs
pow/256
benches/bench.rs::benches::benches::group::pow/256
CodSpeed Performance Gauge
0%
964.4 µs
964.3 µs
pow/4096
benches/bench.rs::benches::benches::group::pow/4096
CodSpeed Performance Gauge
0%
2.2 ms
2.2 ms
div_rem/128/128
benches/bench.rs::benches::benches::group::div_rem/128/128
CodSpeed Performance Gauge
0%
973.9 µs
973.9 µs
overflowing_pow/256
benches/bench.rs::benches::benches::group::overflowing_pow/256
CodSpeed Performance Gauge
0%
2 ms
2 ms
div_rem/128/64
benches/bench.rs::benches::benches::group::div_rem/128/64
CodSpeed Performance Gauge
0%
962.2 µs
962.2 µs
root/2/64/64
benches/bench.rs::benches::benches::group::root/2/64/64
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
root/3/64/64
benches/bench.rs::benches::benches::group::root/3/64/64
CodSpeed Performance Gauge
0%
1.2 ms
1.2 ms
root/5/64/64
benches/bench.rs::benches::benches::group::root/5/64/64
CodSpeed Performance Gauge
0%
1.2 ms
1.2 ms
div_rem/192/192
benches/bench.rs::benches::benches::group::div_rem/192/192
CodSpeed Performance Gauge
0%
1.4 ms
1.4 ms
mul/512
benches/bench.rs::benches::benches::group::mul/512
CodSpeed Performance Gauge
0%
3.1 ms
3.1 ms
div_rem/256/64
benches/bench.rs::benches::benches::group::div_rem/256/64
CodSpeed Performance Gauge
0%
1.5 ms
1.5 ms
div_rem/256/128
benches/bench.rs::benches::benches::group::div_rem/256/128
CodSpeed Performance Gauge
0%
1.9 ms
1.9 ms
pow/512
benches/bench.rs::benches::benches::group::pow/512
CodSpeed Performance Gauge
0%
9.4 ms
9.4 ms
algo/div/reciprocal_2/mg10
benches/bench.rs::benches::benches::group::algo/div/reciprocal_2/mg10
CodSpeed Performance Gauge
0%
303.4 µs
303.4 µs
overflowing_pow/512
benches/bench.rs::benches::benches::group::overflowing_pow/512
CodSpeed Performance Gauge
0%
9 ms
9 ms
root/5/256/256
benches/bench.rs::benches::benches::group::root/5/256/256
CodSpeed Performance Gauge
0%
10.8 ms
10.8 ms
root/2/256/256
benches/bench.rs::benches::benches::group::root/2/256/256
CodSpeed Performance Gauge
0%
11.7 ms
11.7 ms
root/3/256/256
benches/bench.rs::benches::benches::group::root/3/256/256
CodSpeed Performance Gauge
0%
11.3 ms
11.3 ms
root/127/256/256
benches/bench.rs::benches::benches::group::root/127/256/256
CodSpeed Performance Gauge
0%
12.2 ms
12.2 ms
root/3/512/512
benches/bench.rs::benches::benches::group::root/3/512/512
CodSpeed Performance Gauge
0%
30.7 ms
30.7 ms
root/5/384/384
benches/bench.rs::benches::benches::group::root/5/384/384
CodSpeed Performance Gauge
0%
18.3 ms
18.3 ms
root/5/512/512
benches/bench.rs::benches::benches::group::root/5/512/512
CodSpeed Performance Gauge
0%
32.7 ms
32.7 ms
root/127/192/192
benches/bench.rs::benches::benches::group::root/127/192/192
CodSpeed Performance Gauge
0%
16.1 ms
16.1 ms
root/2/512/512
benches/bench.rs::benches::benches::group::root/2/512/512
CodSpeed Performance Gauge
0%
34.8 ms
34.8 ms
root/3/384/384
benches/bench.rs::benches::benches::group::root/3/384/384
CodSpeed Performance Gauge
0%
22.8 ms
22.8 ms
add/128
benches/bench.rs::benches::benches::group::add/128
CodSpeed Performance Gauge
0%
263.3 µs
263.3 µs
add/192
benches/bench.rs::benches::benches::group::add/192
CodSpeed Performance Gauge
0%
389.4 µs
389.4 µs
algo/addmul_n/1
benches/bench.rs::benches::benches::group::algo/addmul_n/1
CodSpeed Performance Gauge
0%
173.7 µs
173.7 µs
algo/addmul_n/3
benches/bench.rs::benches::benches::group::algo/addmul_n/3
CodSpeed Performance Gauge
0%
565.5 µs
565.5 µs
algorithms/gcd/matrix/apply/384
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/384
CodSpeed Performance Gauge
0%
3.7 ms
3.7 ms
algorithms/gcd/matrix/apply/512
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/512
CodSpeed Performance Gauge
0%
4.6 ms
4.6 ms
cmp/128
benches/bench.rs::benches::benches::group::cmp/128
CodSpeed Performance Gauge
0%
192.1 µs
192.1 µs
cmp/384
benches/bench.rs::benches::benches::group::cmp/384
CodSpeed Performance Gauge
0%
483.8 µs
483.8 µs
cmp/512
benches/bench.rs::benches::benches::group::cmp/512
CodSpeed Performance Gauge
0%
629.6 µs
629.6 µs
cmp/64
benches/bench.rs::benches::benches::group::cmp/64
CodSpeed Performance Gauge
0%
108.1 µs
108.1 µs
div_rem/64/32
benches/bench.rs::benches::benches::group::div_rem/64/32
CodSpeed Performance Gauge
0%
201.5 µs
201.5 µs
div_rem/512/64
benches/bench.rs::benches::benches::group::div_rem/512/64
CodSpeed Performance Gauge
0%
2.7 ms
2.7 ms
div_rem/384/192
benches/bench.rs::benches::benches::group::div_rem/384/192
CodSpeed Performance Gauge
0%
3.7 ms
3.7 ms
div_rem/192/96
benches/bench.rs::benches::benches::group::div_rem/192/96
CodSpeed Performance Gauge
0%
1.6 ms
1.6 ms
div_rem/256/256
benches/bench.rs::benches::benches::group::div_rem/256/256
CodSpeed Performance Gauge
0%
1.6 ms
1.6 ms
div_rem/192/64
benches/bench.rs::benches::benches::group::div_rem/192/64
CodSpeed Performance Gauge
0%
1.3 ms
1.3 ms
div_rem/384/64
benches/bench.rs::benches::benches::group::div_rem/384/64
CodSpeed Performance Gauge
0%
2.1 ms
2.1 ms
div_rem/384/384
benches/bench.rs::benches::benches::group::div_rem/384/384
CodSpeed Performance Gauge
0%
2 ms
2 ms
add/384
benches/bench.rs::benches::benches::group::add/384
CodSpeed Performance Gauge
0%
767.5 µs
767.5 µs
algo/div/3x2/mg10
benches/bench.rs::benches::benches::group::algo/div/3x2/mg10
CodSpeed Performance Gauge
0%
525.8 µs
525.8 µs
add/256
benches/bench.rs::benches::benches::group::add/256
CodSpeed Performance Gauge
0%
515.4 µs
515.4 µs
div_rem/512/256
benches/bench.rs::benches::benches::group::div_rem/512/256
CodSpeed Performance Gauge
0%
4.8 ms
4.8 ms
div_rem/512/512
benches/bench.rs::benches::benches::group::div_rem/512/512
CodSpeed Performance Gauge
0%
2.4 ms
2.4 ms
algorithms/gcd/matrix/from_u64
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/from_u64
CodSpeed Performance Gauge
0%
2 ms
2 ms
algo/addmul_n/5
benches/bench.rs::benches::benches::group::algo/addmul_n/5
CodSpeed Performance Gauge
0%
2 ms
2 ms
div_rem/4096/2048
benches/bench.rs::benches::benches::group::div_rem/4096/2048
CodSpeed Performance Gauge
0%
798.9 µs
798.9 µs
algo/addmul_n/6
benches/bench.rs::benches::benches::group::algo/addmul_n/6
CodSpeed Performance Gauge
0%
2.5 ms
2.5 ms
add/512
benches/bench.rs::benches::benches::group::add/512
CodSpeed Performance Gauge
0%
1 ms
1 ms
algorithms/gcd/matrix/from_u64_prefix
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/from_u64_prefix
CodSpeed Performance Gauge
0%
1.3 ms
1.3 ms
algorithms/gcd/matrix/apply/256
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/256
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
algo/addmul_n/4
benches/bench.rs::benches::benches::group::algo/addmul_n/4
CodSpeed Performance Gauge
0%
808.8 µs
808.9 µs
algo/addmul_n/2
benches/bench.rs::benches::benches::group::algo/addmul_n/2
CodSpeed Performance Gauge
0%
361.2 µs
361.2 µs
cmp/256
benches/bench.rs::benches::benches::group::cmp/256
CodSpeed Performance Gauge
0%
338 µs
338 µs
algo/div/2x1/ref
benches/bench.rs::benches::benches::group::algo/div/2x1/ref
CodSpeed Performance Gauge
0%
321.8 µs
321.8 µs
algo/div/2x1/mg10
benches/bench.rs::benches::benches::group::algo/div/2x1/mg10
CodSpeed Performance Gauge
0%
313 µs
313.1 µs
div_rem/4096/4096
benches/bench.rs::benches::benches::group::div_rem/4096/4096
CodSpeed Performance Gauge
0%
143.4 µs
143.4 µs
cmp/192
benches/bench.rs::benches::benches::group::cmp/192
CodSpeed Performance Gauge
0%
265.1 µs
265.1 µs
algorithms/gcd/matrix/apply/4096
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/4096
CodSpeed Performance Gauge
0%
279.4 µs
279.5 µs
add/4096
benches/bench.rs::benches::benches::group::add/4096
CodSpeed Performance Gauge
0%
99.6 µs
99.7 µs
cmp/4096
benches/bench.rs::benches::benches::group::cmp/4096
CodSpeed Performance Gauge
-5%
51.9 µs
54.9 µs
add_mod/64
benches/bench.rs::benches::benches::group::add_mod/64
CodSpeed Performance Gauge
-6%
238.8 µs
254.4 µs
algorithms/gcd/matrix/apply/128
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/128
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
algorithms/gcd/matrix/apply/192
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/192
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
algorithms/gcd/matrix/apply/64
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/64
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
is_zero/64
benches/bench.rs::benches::benches::group::is_zero/64
CodSpeed Performance Gauge
0%
60 µs
59.9 µs
lt/384
benches/bench.rs::benches::benches::group::lt/384
CodSpeed Performance Gauge
0%
481.1 µs
481 µs
log/512
benches/bench.rs::benches::benches::group::log/512
CodSpeed Performance Gauge
0%
29.2 ms
29.2 ms
inv_mod/384
benches/bench.rs::benches::benches::group::inv_mod/384
CodSpeed Performance Gauge
0%
94.7 ms
94.7 ms
div_rem/64/64
benches/bench.rs::benches::benches::group::div_rem/64/64
CodSpeed Performance Gauge
0%
201.5 µs
201.5 µs
eq/128
benches/bench.rs::benches::benches::group::eq/128
CodSpeed Performance Gauge
0%
182.5 µs
182.5 µs
eq/192
benches/bench.rs::benches::benches::group::eq/192
CodSpeed Performance Gauge
0%
301.3 µs
301.3 µs
eq/256
benches/bench.rs::benches::benches::group::eq/256
CodSpeed Performance Gauge
0%
368.6 µs
368.6 µs
eq/64
benches/bench.rs::benches::benches::group::eq/64
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
ge/128
benches/bench.rs::benches::benches::group::ge/128
CodSpeed Performance Gauge
0%
189.4 µs
189.4 µs
ge/384
benches/bench.rs::benches::benches::group::ge/384
CodSpeed Performance Gauge
0%
481 µs
481 µs
ge/512
benches/bench.rs::benches::benches::group::ge/512
CodSpeed Performance Gauge
0%
626.9 µs
626.9 µs
ge/64
benches/bench.rs::benches::benches::group::ge/64
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
gt/128
benches/bench.rs::benches::benches::group::gt/128
CodSpeed Performance Gauge
0%
189.4 µs
189.4 µs
gt/384
benches/bench.rs::benches::benches::group::gt/384
CodSpeed Performance Gauge
0%
481.1 µs
481.1 µs
gt/512
benches/bench.rs::benches::benches::group::gt/512
CodSpeed Performance Gauge
0%
626.9 µs
626.9 µs
gt/64
benches/bench.rs::benches::benches::group::gt/64
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
is_zero/128
benches/bench.rs::benches::benches::group::is_zero/128
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
is_zero/192
benches/bench.rs::benches::benches::group::is_zero/192
CodSpeed Performance Gauge
0%
164 µs
164 µs
is_zero/256
benches/bench.rs::benches::benches::group::is_zero/256
CodSpeed Performance Gauge
0%
195 µs
195 µs
is_zero/512
benches/bench.rs::benches::benches::group::is_zero/512
CodSpeed Performance Gauge
0%
385.4 µs
385.4 µs
le/128
benches/bench.rs::benches::benches::group::le/128
CodSpeed Performance Gauge
0%
189.4 µs
189.4 µs
le/384
benches/bench.rs::benches::benches::group::le/384
CodSpeed Performance Gauge
0%
481.1 µs
481.1 µs
le/512
benches/bench.rs::benches::benches::group::le/512
CodSpeed Performance Gauge
0%
626.9 µs
626.9 µs
le/64
benches/bench.rs::benches::benches::group::le/64
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
log/64
benches/bench.rs::benches::benches::group::log/64
CodSpeed Performance Gauge
0%
1.5 ms
1.5 ms
lt/128
benches/bench.rs::benches::benches::group::lt/128
CodSpeed Performance Gauge
0%
189.4 µs
189.4 µs
lt/512
benches/bench.rs::benches::benches::group::lt/512
CodSpeed Performance Gauge
0%
626.9 µs
626.9 µs
lt/64
benches/bench.rs::benches::benches::group::lt/64
CodSpeed Performance Gauge
0%
101.2 µs
101.2 µs
max/64
benches/bench.rs::benches::benches::group::max/64
CodSpeed Performance Gauge
0%
145.8 µs
145.8 µs
min/64
benches/bench.rs::benches::benches::group::min/64
CodSpeed Performance Gauge
0%
145.7 µs
145.7 µs
mul/128
benches/bench.rs::benches::benches::group::mul/128
CodSpeed Performance Gauge
0%
274.5 µs
274.5 µs
mul/192
benches/bench.rs::benches::benches::group::mul/192
CodSpeed Performance Gauge
0%
433.8 µs
433.8 µs
mul_mod/128
benches/bench.rs::benches::benches::group::mul_mod/128
CodSpeed Performance Gauge
0%
2 ms
2 ms
mul_mod/512
benches/bench.rs::benches::benches::group::mul_mod/512
CodSpeed Performance Gauge
0%
11.6 ms
11.6 ms
mul_mod/64
benches/bench.rs::benches::benches::group::mul_mod/64
CodSpeed Performance Gauge
0%
821.5 µs
821.5 µs
neg/128
benches/bench.rs::benches::benches::group::neg/128
CodSpeed Performance Gauge
0%
182.1 µs
182.1 µs
neg/192
benches/bench.rs::benches::benches::group::neg/192
CodSpeed Performance Gauge
0%
274.4 µs
274.4 µs
neg/64
benches/bench.rs::benches::benches::group::neg/64
CodSpeed Performance Gauge
0%
83.4 µs
83.4 µs
overflowing_pow/384
benches/bench.rs::benches::benches::group::overflowing_pow/384
CodSpeed Performance Gauge
0%
4.5 ms
4.5 ms
overflowing_pow/64
benches/bench.rs::benches::benches::group::overflowing_pow/64
CodSpeed Performance Gauge
0%
79.4 µs
79.4 µs
pow/384
benches/bench.rs::benches::benches::group::pow/384
CodSpeed Performance Gauge
0%
4.8 ms
4.8 ms
pow_mod/64
benches/bench.rs::benches::benches::group::pow_mod/64
CodSpeed Performance Gauge
0%
641.2 µs
641.2 µs
reduce_mod/128
benches/bench.rs::benches::benches::group::reduce_mod/128
CodSpeed Performance Gauge
0%
730.7 µs
730.7 µs
reduce_mod/64
benches/bench.rs::benches::benches::group::reduce_mod/64
CodSpeed Performance Gauge
0%
159.4 µs
159.4 µs
root/127/64/64
benches/bench.rs::benches::benches::group::root/127/64/64
CodSpeed Performance Gauge
0%
200.9 µs
200.9 µs
root/2/192/192
benches/bench.rs::benches::benches::group::root/2/192/192
CodSpeed Performance Gauge
0%
8.4 ms
8.4 ms
root/5/192/192
benches/bench.rs::benches::benches::group::root/5/192/192
CodSpeed Performance Gauge
0%
7.7 ms
7.7 ms
sub/128
benches/bench.rs::benches::benches::group::sub/128
CodSpeed Performance Gauge
0%
263.3 µs
263.3 µs
sub/192
benches/bench.rs::benches::benches::group::sub/192
CodSpeed Performance Gauge
0%
389.4 µs
389.4 µs
root/127/384/384
benches/bench.rs::benches::benches::group::root/127/384/384
CodSpeed Performance Gauge
0%
15.2 ms
15.2 ms
log/256
benches/bench.rs::benches::benches::group::log/256
CodSpeed Performance Gauge
0%
14.3 ms
14.3 ms
inv_mod/512
benches/bench.rs::benches::benches::group::inv_mod/512
CodSpeed Performance Gauge
0%
158 ms
158 ms
root/3/192/192
benches/bench.rs::benches::benches::group::root/3/192/192
CodSpeed Performance Gauge
0%
8.3 ms
8.3 ms
root/2/384/384
benches/bench.rs::benches::benches::group::root/2/384/384
CodSpeed Performance Gauge
0%
23.5 ms
23.5 ms
mul/384
benches/bench.rs::benches::benches::group::mul/384
CodSpeed Performance Gauge
0%
2.2 ms
2.2 ms
root/127/512/512
benches/bench.rs::benches::benches::group::root/127/512/512
CodSpeed Performance Gauge
0%
32 ms
32 ms
widening_mul/256/256
benches/bench.rs::benches::benches::group::widening_mul/256/256
CodSpeed Performance Gauge
0%
1.8 ms
1.8 ms
mul_mod/256
benches/bench.rs::benches::benches::group::mul_mod/256
CodSpeed Performance Gauge
0%
5.1 ms
5.1 ms
pow_mod/4096
benches/bench.rs::benches::benches::group::pow_mod/4096
CodSpeed Performance Gauge
0%
219 ms
219 ms
min/512
benches/bench.rs::benches::benches::group::min/512
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
log/384
benches/bench.rs::benches::benches::group::log/384
CodSpeed Performance Gauge
0%
21.1 ms
21.1 ms
pow_mod/512
benches/bench.rs::benches::benches::group::pow_mod/512
CodSpeed Performance Gauge
0%
79.1 ms
79.1 ms
max/384
benches/bench.rs::benches::benches::group::max/384
CodSpeed Performance Gauge
0%
812.1 µs
812.1 µs
min/384
benches/bench.rs::benches::benches::group::min/384
CodSpeed Performance Gauge
0%
812.1 µs
812.1 µs
sub/384
benches/bench.rs::benches::benches::group::sub/384
CodSpeed Performance Gauge
0%
767.5 µs
767.5 µs
log/192
benches/bench.rs::benches::benches::group::log/192
CodSpeed Performance Gauge
0%
11.8 ms
11.8 ms
neg/384
benches/bench.rs::benches::benches::group::neg/384
CodSpeed Performance Gauge
0%
534.8 µs
534.8 µs
sub/256
benches/bench.rs::benches::benches::group::sub/256
CodSpeed Performance Gauge
0%
515.4 µs
515.4 µs
inv_mod/256
benches/bench.rs::benches::benches::group::inv_mod/256
CodSpeed Performance Gauge
0%
21.3 ms
21.3 ms
pow_mod/384
benches/bench.rs::benches::benches::group::pow_mod/384
CodSpeed Performance Gauge
0%
40.5 ms
40.5 ms
root/127/128/128
benches/bench.rs::benches::benches::group::root/127/128/128
CodSpeed Performance Gauge
0%
9.8 ms
9.8 ms
mul_mod/384
benches/bench.rs::benches::benches::group::mul_mod/384
CodSpeed Performance Gauge
0%
8 ms
8 ms
pow_mod/256
benches/bench.rs::benches::benches::group::pow_mod/256
CodSpeed Performance Gauge
0%
16.8 ms
16.8 ms
neg/256
benches/bench.rs::benches::benches::group::neg/256
CodSpeed Performance Gauge
0%
361.2 µs
361.2 µs
inv_mod/192
benches/bench.rs::benches::benches::group::inv_mod/192
CodSpeed Performance Gauge
0%
13.2 ms
13.2 ms
inv_mod/128
benches/bench.rs::benches::benches::group::inv_mod/128
CodSpeed Performance Gauge
0%
6.2 ms
6.2 ms
root/5/128/128
benches/bench.rs::benches::benches::group::root/5/128/128
CodSpeed Performance Gauge
0%
5.7 ms
5.7 ms
root/2/128/128
benches/bench.rs::benches::benches::group::root/2/128/128
CodSpeed Performance Gauge
0%
5.3 ms
5.3 ms
root/3/128/128
benches/bench.rs::benches::benches::group::root/3/128/128
CodSpeed Performance Gauge
0%
5.1 ms
5.1 ms
inv_mod/4096
benches/bench.rs::benches::benches::group::inv_mod/4096
CodSpeed Performance Gauge
0%
69.1 ms
69.1 ms
pow_mod/192
benches/bench.rs::benches::benches::group::pow_mod/192
CodSpeed Performance Gauge
0%
9.5 ms
9.5 ms
mul_mod/192
benches/bench.rs::benches::benches::group::mul_mod/192
CodSpeed Performance Gauge
0%
3.9 ms
3.9 ms
widening_mul/1024/1024
benches/bench.rs::benches::benches::group::widening_mul/1024/1024
CodSpeed Performance Gauge
0%
12.7 ms
12.7 ms
log/128
benches/bench.rs::benches::benches::group::log/128
CodSpeed Performance Gauge
0%
8.8 ms
8.8 ms
widening_mul/256/1024
benches/bench.rs::benches::benches::group::widening_mul/256/1024
CodSpeed Performance Gauge
0%
4.8 ms
4.8 ms
widening_mul/1024/64
benches/bench.rs::benches::benches::group::widening_mul/1024/64
CodSpeed Performance Gauge
0%
2.4 ms
2.4 ms
reduce_mod/384
benches/bench.rs::benches::benches::group::reduce_mod/384
CodSpeed Performance Gauge
0%
1.7 ms
1.7 ms
widening_mul/1024/256
benches/bench.rs::benches::benches::group::widening_mul/1024/256
CodSpeed Performance Gauge
0%
4.7 ms
4.7 ms
pow_mod/128
benches/bench.rs::benches::benches::group::pow_mod/128
CodSpeed Performance Gauge
0%
3.1 ms
3.1 ms
log/4096
benches/bench.rs::benches::benches::group::log/4096
CodSpeed Performance Gauge
0%
3.8 ms
3.8 ms
widening_mul/64/1024
benches/bench.rs::benches::benches::group::widening_mul/64/1024
CodSpeed Performance Gauge
0%
2.4 ms
2.4 ms
reduce_mod/192
benches/bench.rs::benches::benches::group::reduce_mod/192
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
max/512
benches/bench.rs::benches::benches::group::max/512
CodSpeed Performance Gauge
0%
1.1 ms
1.1 ms
sub/512
benches/bench.rs::benches::benches::group::sub/512
CodSpeed Performance Gauge
0%
1 ms
1 ms
reduce_mod/512
benches/bench.rs::benches::benches::group::reduce_mod/512
CodSpeed Performance Gauge
0%
2 ms
2 ms
inv_mod/64
benches/bench.rs::benches::benches::group::inv_mod/64
CodSpeed Performance Gauge
0%
2 ms
2 ms
overflowing_pow/4096
benches/bench.rs::benches::benches::group::overflowing_pow/4096
CodSpeed Performance Gauge
0%
1.8 ms
1.8 ms
eq/512
benches/bench.rs::benches::benches::group::eq/512
CodSpeed Performance Gauge
0%
766 µs
766 µs
widening_mul/256/64
benches/bench.rs::benches::benches::group::widening_mul/256/64
CodSpeed Performance Gauge
0%
756.9 µs
756.9 µs
neg/512
benches/bench.rs::benches::benches::group::neg/512
CodSpeed Performance Gauge
0%
708.7 µs
708.8 µs
eq/384
benches/bench.rs::benches::benches::group::eq/384
CodSpeed Performance Gauge
0%
597.9 µs
597.9 µs
max/192
benches/bench.rs::benches::benches::group::max/192
CodSpeed Performance Gauge
0%
439.5 µs
439.5 µs
min/192
benches/bench.rs::benches::benches::group::min/192
CodSpeed Performance Gauge
0%
439.5 µs
439.5 µs
reduce_mod/256
benches/bench.rs::benches::benches::group::reduce_mod/256
CodSpeed Performance Gauge
0%
1.3 ms
1.3 ms
ge/256
benches/bench.rs::benches::benches::group::ge/256
CodSpeed Performance Gauge
0%
335.2 µs
335.3 µs
gt/256
benches/bench.rs::benches::benches::group::gt/256
CodSpeed Performance Gauge
0%
335.2 µs
335.3 µs
le/256
benches/bench.rs::benches::benches::group::le/256
CodSpeed Performance Gauge
0%
335.2 µs
335.3 µs
lt/256
benches/bench.rs::benches::benches::group::lt/256
CodSpeed Performance Gauge
0%
335.2 µs
335.2 µs
is_zero/384
benches/bench.rs::benches::benches::group::is_zero/384
CodSpeed Performance Gauge
0%
312.5 µs
312.5 µs
max/128
benches/bench.rs::benches::benches::group::max/128
CodSpeed Performance Gauge
0%
296.7 µs
296.8 µs
min/128
benches/bench.rs::benches::benches::group::min/128
CodSpeed Performance Gauge
0%
296.7 µs
296.8 µs
max/256
benches/bench.rs::benches::benches::group::max/256
CodSpeed Performance Gauge
0%
554.4 µs
554.4 µs
min/256
benches/bench.rs::benches::benches::group::min/256
CodSpeed Performance Gauge
0%
554.4 µs
554.4 µs
ge/192
benches/bench.rs::benches::benches::group::ge/192
CodSpeed Performance Gauge
0%
262.3 µs
262.3 µs
gt/192
benches/bench.rs::benches::benches::group::gt/192
CodSpeed Performance Gauge
0%
262.3 µs
262.3 µs
le/192
benches/bench.rs::benches::benches::group::le/192
CodSpeed Performance Gauge
0%
262.3 µs
262.3 µs
lt/192
benches/bench.rs::benches::benches::group::lt/192
CodSpeed Performance Gauge
0%
262.3 µs
262.3 µs
widening_mul/64/64
benches/bench.rs::benches::benches::group::widening_mul/64/64
CodSpeed Performance Gauge
0%
201.6 µs
201.7 µs
reduce_mod/4096
benches/bench.rs::benches::benches::group::reduce_mod/4096
CodSpeed Performance Gauge
0%
115.5 µs
115.6 µs
sub/4096
benches/bench.rs::benches::benches::group::sub/4096
CodSpeed Performance Gauge
0%
94.2 µs
94.3 µs
pow/64
benches/bench.rs::benches::benches::group::pow/64
CodSpeed Performance Gauge
0%
17.4 µs
17.5 µs
is_zero/4096
benches/bench.rs::benches::benches::group::is_zero/4096
CodSpeed Performance Gauge
-1%
4.1 µs
4.2 µs
max/4096
benches/bench.rs::benches::benches::group::max/4096
CodSpeed Performance Gauge
-4%
82 µs
85.1 µs
min/4096
benches/bench.rs::benches::benches::group::min/4096
CodSpeed Performance Gauge
-4%
82 µs
85.1 µs
eq/4096
benches/bench.rs::benches::benches::group::eq/4096
CodSpeed Performance Gauge
-5%
52.5 µs
55.5 µs
gt/4096
benches/bench.rs::benches::benches::group::gt/4096
CodSpeed Performance Gauge
-5%
51.9 µs
54.9 µs
le/4096
benches/bench.rs::benches::benches::group::le/4096
CodSpeed Performance Gauge
-5%
51.9 µs
54.9 µs
lt/4096
benches/bench.rs::benches::benches::group::lt/4096
CodSpeed Performance Gauge
-5%
51.9 µs
54.9 µs
ge/4096
benches/bench.rs::benches::benches::group::ge/4096
CodSpeed Performance Gauge
-5%
51.9 µs
54.9 µs

Commits

Click on a commit to change the comparison range
Base
main
16f236e
+127%
chore: cargo fmt
d0a2de3
8 days ago
by Rjected
0%
chore: extract double allocation
5032031
2 days ago
by DaniPopes
-107%
Merge branch 'main' into add-mod-simple2
54d4565
17 hours ago
by prestwich
+1,187%
chore: move let_double_bits to macros.rs
b58860e
17 hours ago
by DaniPopes
-1,300%
Merge branch 'main' into add-mod-simple2
1b86df8
17 hours ago
by prestwich
© 2025 CodSpeed Technology
Home Terms PrivacyDocs