recmo
uint
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
GitHub Actions run
Instrumentation
2 days ago
276ddba
Rjected:dan/optimize-shl-two
Compare
Base
Search a run
Head
perf: add special case for U256 and limb-specific shift left
#472
Rjected:dan/optimize-shl-two
2 days ago
Compare
Suggested base runs:
Pull Request Base
•
Default Branch
•
Parent Commit
Benchmarks
is_zero/64
benches/bench.rs::benches::benches::group::is_zero/64
60 µs
gt/64
benches/bench.rs::benches::benches::group::gt/64
101.2 µs
lt/64
benches/bench.rs::benches::benches::group::lt/64
101.2 µs
eq/64
benches/bench.rs::benches::benches::group::eq/64
101.2 µs
neg/192
benches/bench.rs::benches::benches::group::neg/192
274.4 µs
cmp/64
benches/bench.rs::benches::benches::group::cmp/64
108.1 µs
add/192
benches/bench.rs::benches::benches::group::add/192
389.4 µs
min/64
benches/bench.rs::benches::benches::group::min/64
145.7 µs
cmp/128
benches/bench.rs::benches::benches::group::cmp/128
192.1 µs
ge/64
benches/bench.rs::benches::benches::group::ge/64
101.2 µs
is_zero/128
benches/bench.rs::benches::benches::group::is_zero/128
101.2 µs
max/64
benches/bench.rs::benches::benches::group::max/64
145.8 µs
add/384
benches/bench.rs::benches::benches::group::add/384
767.5 µs
neg/384
benches/bench.rs::benches::benches::group::neg/384
534.8 µs
sub/192
benches/bench.rs::benches::benches::group::sub/192
389.4 µs
neg/512
benches/bench.rs::benches::benches::group::neg/512
708.8 µs
le/64
benches/bench.rs::benches::benches::group::le/64
101.2 µs
sub/384
benches/bench.rs::benches::benches::group::sub/384
767.5 µs
gt/128
benches/bench.rs::benches::benches::group::gt/128
189.4 µs
ge/128
benches/bench.rs::benches::benches::group::ge/128
189.4 µs
lt/128
benches/bench.rs::benches::benches::group::lt/128
189.4 µs
add/256
benches/bench.rs::benches::benches::group::add/256
515.4 µs
min/128
benches/bench.rs::benches::benches::group::min/128
296.8 µs
neg/256
benches/bench.rs::benches::benches::group::neg/256
361.2 µs
eq/128
benches/bench.rs::benches::benches::group::eq/128
182.5 µs
add/4096
benches/bench.rs::benches::benches::group::add/4096
102.6 µs
mul/64
benches/bench.rs::benches::benches::group::mul/64
131.7 µs
add/512
benches/bench.rs::benches::benches::group::add/512
1 ms
mul/192
benches/bench.rs::benches::benches::group::mul/192
433.8 µs
root/5/192/192
benches/bench.rs::benches::benches::group::root/5/192/192
8.1 ms
neg/4096
benches/bench.rs::benches::benches::group::neg/4096
72.9 µs
sub/256
benches/bench.rs::benches::benches::group::sub/256
515.4 µs
mul/512
benches/bench.rs::benches::benches::group::mul/512
3.1 ms
le/128
benches/bench.rs::benches::benches::group::le/128
189.4 µs
sub/4096
benches/bench.rs::benches::benches::group::sub/4096
97.3 µs
mul/128
benches/bench.rs::benches::benches::group::mul/128
274.4 µs
widening_mul/64/64
benches/bench.rs::benches::benches::group::widening_mul/64/64
243.4 µs
root/5/128/128
benches/bench.rs::benches::benches::group::root/5/128/128
5.8 ms
mul/4096
benches/bench.rs::benches::benches::group::mul/4096
784.6 µs
root/3/192/192
benches/bench.rs::benches::benches::group::root/3/192/192
8.7 ms
mul/384
benches/bench.rs::benches::benches::group::mul/384
2.2 ms
root/2/192/192
benches/bench.rs::benches::benches::group::root/2/192/192
8.9 ms
root/2/256/256
benches/bench.rs::benches::benches::group::root/2/256/256
12.5 ms
root/127/192/192
benches/bench.rs::benches::benches::group::root/127/192/192
16.5 ms
root/3/128/128
benches/bench.rs::benches::benches::group::root/3/128/128
5.2 ms
root/5/256/256
benches/bench.rs::benches::benches::group::root/5/256/256
11.4 ms
root/3/256/256
benches/bench.rs::benches::benches::group::root/3/256/256
12.3 ms
root/2/384/384
benches/bench.rs::benches::benches::group::root/2/384/384
25.2 ms
mul/256
benches/bench.rs::benches::benches::group::mul/256
632.4 µs
root/3/384/384
benches/bench.rs::benches::benches::group::root/3/384/384
24.4 ms
max/128
benches/bench.rs::benches::benches::group::max/128
296.8 µs
widening_mul/64/1024
benches/bench.rs::benches::benches::group::widening_mul/64/1024
2.4 ms
root/127/256/256
benches/bench.rs::benches::benches::group::root/127/256/256
12.7 ms
is_zero/192
benches/bench.rs::benches::benches::group::is_zero/192
164 µs
sub/512
benches/bench.rs::benches::benches::group::sub/512
1 ms
lt/192
benches/bench.rs::benches::benches::group::lt/192
262.3 µs
root/3/512/512
benches/bench.rs::benches::benches::group::root/3/512/512
32.1 ms
root/127/128/128
benches/bench.rs::benches::benches::group::root/127/128/128
10.3 ms
root/5/512/512
benches/bench.rs::benches::benches::group::root/5/512/512
33.9 ms
root/2/512/512
benches/bench.rs::benches::benches::group::root/2/512/512
36.7 ms
cmp/192
benches/bench.rs::benches::benches::group::cmp/192
265.1 µs
root/3/4096/4096
benches/bench.rs::benches::benches::group::root/3/4096/4096
9.2 ms
eq/192
benches/bench.rs::benches::benches::group::eq/192
301.3 µs
root/127/512/512
benches/bench.rs::benches::benches::group::root/127/512/512
31.2 ms
root/5/384/384
benches/bench.rs::benches::benches::group::root/5/384/384
19.5 ms
root/127/384/384
benches/bench.rs::benches::benches::group::root/127/384/384
15.7 ms
widening_mul/256/64
benches/bench.rs::benches::benches::group::widening_mul/256/64
756.9 µs
widening_mul/256/1024
benches/bench.rs::benches::benches::group::widening_mul/256/1024
4.8 ms
le/192
benches/bench.rs::benches::benches::group::le/192
262.3 µs
min/192
benches/bench.rs::benches::benches::group::min/192
439.5 µs
widening_mul/1024/256
benches/bench.rs::benches::benches::group::widening_mul/1024/256
4.7 ms
widening_mul/256/256
benches/bench.rs::benches::benches::group::widening_mul/256/256
1.8 ms
widening_mul/1024/64
benches/bench.rs::benches::benches::group::widening_mul/1024/64
2.4 ms
root/5/4096/4096
benches/bench.rs::benches::benches::group::root/5/4096/4096
9.5 ms
root/2/4096/4096
benches/bench.rs::benches::benches::group::root/2/4096/4096
8.6 ms
reduce_mod/64
benches/bench.rs::benches::benches::group::reduce_mod/64
326 µs
ge/192
benches/bench.rs::benches::benches::group::ge/192
262.3 µs
inv_mod/64
benches/bench.rs::benches::benches::group::inv_mod/64
2.2 ms
pow_mod/64
benches/bench.rs::benches::benches::group::pow_mod/64
709.2 µs
gt/192
benches/bench.rs::benches::benches::group::gt/192
262.3 µs
widening_mul/64/256
benches/bench.rs::benches::benches::group::widening_mul/64/256
765.2 µs
add_mod/128
benches/bench.rs::benches::benches::group::add_mod/128
1.3 ms
mul_mod/64
benches/bench.rs::benches::benches::group::mul_mod/64
893.7 µs
div_rem/64/64
benches/bench.rs::benches::benches::group::div_rem/64/64
538.1 µs
div_rem/64/32
benches/bench.rs::benches::benches::group::div_rem/64/32
538.1 µs
reduce_mod/128
benches/bench.rs::benches::benches::group::reduce_mod/128
728 µs
widening_mul/1024/1024
benches/bench.rs::benches::benches::group::widening_mul/1024/1024
12.1 ms
is_zero/256
benches/bench.rs::benches::benches::group::is_zero/256
195 µs
eq/256
benches/bench.rs::benches::benches::group::eq/256
368.6 µs
root/127/4096/4096
benches/bench.rs::benches::benches::group::root/127/4096/4096
2.7 ms
add_mod/192
benches/bench.rs::benches::benches::group::add_mod/192
2.2 ms
div_rem/128/64
benches/bench.rs::benches::benches::group::div_rem/128/64
1 ms
div_rem/128/128
benches/bench.rs::benches::benches::group::div_rem/128/128
1.2 ms
max/192
benches/bench.rs::benches::benches::group::max/192
439.5 µs
mul_mod/128
benches/bench.rs::benches::benches::group::mul_mod/128
2 ms
lt/256
benches/bench.rs::benches::benches::group::lt/256
335.2 µs
add_mod/64
benches/bench.rs::benches::benches::group::add_mod/64
577.8 µs
pow_mod/192
benches/bench.rs::benches::benches::group::pow_mod/192
10.3 ms
pow_mod/256
benches/bench.rs::benches::benches::group::pow_mod/256
17.7 ms
inv_mod/128
benches/bench.rs::benches::benches::group::inv_mod/128
6.2 ms
reduce_mod/384
benches/bench.rs::benches::benches::group::reduce_mod/384
1.7 ms
cmp/256
benches/bench.rs::benches::benches::group::cmp/256
338 µs
min/256
benches/bench.rs::benches::benches::group::min/256
554.4 µs
pow_mod/128
benches/bench.rs::benches::benches::group::pow_mod/128
3.1 ms
add_mod/256
benches/bench.rs::benches::benches::group::add_mod/256
2.5 ms
le/256
benches/bench.rs::benches::benches::group::le/256
335.3 µs
gt/256
benches/bench.rs::benches::benches::group::gt/256
335.3 µs
reduce_mod/192
benches/bench.rs::benches::benches::group::reduce_mod/192
1.2 ms
mul_mod/256
benches/bench.rs::benches::benches::group::mul_mod/256
5.3 ms
inv_mod/192
benches/bench.rs::benches::benches::group::inv_mod/192
13.6 ms
inv_mod/256
benches/bench.rs::benches::benches::group::inv_mod/256
21.4 ms
ge/256
benches/bench.rs::benches::benches::group::ge/256
335.3 µs
cmp/384
benches/bench.rs::benches::benches::group::cmp/384
483.8 µs
is_zero/384
benches/bench.rs::benches::benches::group::is_zero/384
312.5 µs
max/384
benches/bench.rs::benches::benches::group::max/384
812.1 µs
reduce_mod/256
benches/bench.rs::benches::benches::group::reduce_mod/256
1.4 ms
le/384
benches/bench.rs::benches::benches::group::le/384
481.1 µs
mul_mod/384
benches/bench.rs::benches::benches::group::mul_mod/384
8.2 ms
eq/384
benches/bench.rs::benches::benches::group::eq/384
597.9 µs
lt/384
benches/bench.rs::benches::benches::group::lt/384
481.1 µs
max/256
benches/bench.rs::benches::benches::group::max/256
554.4 µs
reduce_mod/512
benches/bench.rs::benches::benches::group::reduce_mod/512
2.1 ms
gt/384
benches/bench.rs::benches::benches::group::gt/384
481.1 µs
add_mod/384
benches/bench.rs::benches::benches::group::add_mod/384
3.1 ms
ge/384
benches/bench.rs::benches::benches::group::ge/384
481 µs
inv_mod/512
benches/bench.rs::benches::benches::group::inv_mod/512
156.1 ms
div_rem/192/64
benches/bench.rs::benches::benches::group::div_rem/192/64
1.4 ms
mul_mod/4096
benches/bench.rs::benches::benches::group::mul_mod/4096
3.8 ms
add_mod/512
benches/bench.rs::benches::benches::group::add_mod/512
3.7 ms
reduce_mod/4096
benches/bench.rs::benches::benches::group::reduce_mod/4096
113.1 µs
is_zero/512
benches/bench.rs::benches::benches::group::is_zero/512
385.4 µs
mul_mod/512
benches/bench.rs::benches::benches::group::mul_mod/512
11.8 ms
mul_mod/192
benches/bench.rs::benches::benches::group::mul_mod/192
4.1 ms
pow_mod/4096
benches/bench.rs::benches::benches::group::pow_mod/4096
219.7 ms
div_rem/192/96
benches/bench.rs::benches::benches::group::div_rem/192/96
1.7 ms
inv_mod/384
benches/bench.rs::benches::benches::group::inv_mod/384
93.3 ms
min/384
benches/bench.rs::benches::benches::group::min/384
812.1 µs
pow_mod/384
benches/bench.rs::benches::benches::group::pow_mod/384
41.6 ms
algo/addmul_n/2
benches/bench.rs::benches::benches::group::algo/addmul_n/2
361.2 µs
pow_mod/512
benches/bench.rs::benches::benches::group::pow_mod/512
80.2 ms
lt/512
benches/bench.rs::benches::benches::group::lt/512
626.9 µs
algo/addmul_n/5
benches/bench.rs::benches::benches::group::algo/addmul_n/5
2 ms
div_rem/256/128
benches/bench.rs::benches::benches::group::div_rem/256/128
1.9 ms
algo/div/reciprocal/ref
benches/bench.rs::benches::benches::group::algo/div/reciprocal/ref
162.1 µs
inv_mod/4096
benches/bench.rs::benches::benches::group::inv_mod/4096
68.1 ms
cmp/512
benches/bench.rs::benches::benches::group::cmp/512
629.7 µs
le/512
benches/bench.rs::benches::benches::group::le/512
626.9 µs
div_rem/192/192
benches/bench.rs::benches::benches::group::div_rem/192/192
1.8 ms
eq/512
benches/bench.rs::benches::benches::group::eq/512
766 µs
ge/512
benches/bench.rs::benches::benches::group::ge/512
626.9 µs
algo/addmul_n/1
benches/bench.rs::benches::benches::group::algo/addmul_n/1
173.8 µs
cmp/4096
benches/bench.rs::benches::benches::group::cmp/4096
54.9 µs
algo/addmul_n/3
benches/bench.rs::benches::benches::group::algo/addmul_n/3
565.4 µs
div_rem/384/64
benches/bench.rs::benches::benches::group::div_rem/384/64
2.2 ms
max/512
benches/bench.rs::benches::benches::group::max/512
1.1 ms
algo/addmul_n/6
benches/bench.rs::benches::benches::group::algo/addmul_n/6
2.5 ms
algo/addmul_n/4
benches/bench.rs::benches::benches::group::algo/addmul_n/4
808.8 µs
gt/512
benches/bench.rs::benches::benches::group::gt/512
626.9 µs
min/512
benches/bench.rs::benches::benches::group::min/512
1.1 ms
add_mod/4096
benches/bench.rs::benches::benches::group::add_mod/4096
218.3 µs
algo/div/reciprocal/mg10
benches/bench.rs::benches::benches::group::algo/div/reciprocal/mg10
215.1 µs
algo/div/2x1/ref
benches/bench.rs::benches::benches::group::algo/div/2x1/ref
321.8 µs
algo/div/2x1/mg10
benches/bench.rs::benches::benches::group::algo/div/2x1/mg10
313 µs
algo/div/reciprocal_2/mg10
benches/bench.rs::benches::benches::group::algo/div/reciprocal_2/mg10
303.4 µs
div_rem/384/192
benches/bench.rs::benches::benches::group::div_rem/384/192
4 ms
div_rem/256/256
benches/bench.rs::benches::benches::group::div_rem/256/256
2 ms
div_rem/256/64
benches/bench.rs::benches::benches::group::div_rem/256/64
1.6 ms
lt/4096
benches/bench.rs::benches::benches::group::lt/4096
54.9 µs
is_zero/4096
benches/bench.rs::benches::benches::group::is_zero/4096
4.2 µs
eq/4096
benches/bench.rs::benches::benches::group::eq/4096
55.5 µs
div_rem/384/384
benches/bench.rs::benches::benches::group::div_rem/384/384
2.4 ms
algo/div/3x2/ref
benches/bench.rs::benches::benches::group::algo/div/3x2/ref
426.1 µs
ge/4096
benches/bench.rs::benches::benches::group::ge/4096
54.9 µs
algorithms/gcd/matrix/apply/128
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/128
< 1 ns
algorithms/gcd/matrix/from_u64
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/from_u64
2 ms
div_rem/512/512
benches/bench.rs::benches::benches::group::div_rem/512/512
2.8 ms
div_rem/512/64
benches/bench.rs::benches::benches::group::div_rem/512/64
2.9 ms
div_rem/4096/2048
benches/bench.rs::benches::benches::group::div_rem/4096/2048
784.4 µs
gt/4096
benches/bench.rs::benches::benches::group::gt/4096
54.9 µs
div_rem/512/256
benches/bench.rs::benches::benches::group::div_rem/512/256
5.1 ms
max/4096
benches/bench.rs::benches::benches::group::max/4096
85.1 µs
algorithms/gcd/matrix/from_u64_prefix
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/from_u64_prefix
1.3 ms
algorithms/gcd/matrix/apply/256
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/256
1.1 ms
algo/div/3x2/mg10
benches/bench.rs::benches::benches::group::algo/div/3x2/mg10
525.8 µs
add/64
benches/bench.rs::benches::benches::group::add/64
126.2 µs
neg/64
benches/bench.rs::benches::benches::group::neg/64
83.4 µs
overflowing_pow/64
benches/bench.rs::benches::benches::group::overflowing_pow/64
79.4 µs
pow/64
benches/bench.rs::benches::benches::group::pow/64
17.4 µs
algorithms/gcd/matrix/apply/512
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/512
4.6 ms
neg/128
benches/bench.rs::benches::benches::group::neg/128
182.1 µs
le/4096
benches/bench.rs::benches::benches::group::le/4096
54.9 µs
algorithms/gcd/matrix/apply/64
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/64
< 1 ns
algorithms/gcd/matrix/apply/384
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/384
3.6 ms
min/4096
benches/bench.rs::benches::benches::group::min/4096
85.1 µs
sub/64
benches/bench.rs::benches::benches::group::sub/64
126.2 µs
overflowing_pow/128
benches/bench.rs::benches::benches::group::overflowing_pow/128
622.9 µs
pow/512
benches/bench.rs::benches::benches::group::pow/512
10.2 ms
algorithms/gcd/matrix/apply/4096
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/4096
272.6 µs
pow/384
benches/bench.rs::benches::benches::group::pow/384
5.4 ms
div_rem/4096/64
benches/bench.rs::benches::benches::group::div_rem/4096/64
198.9 µs
pow/256
benches/bench.rs::benches::benches::group::pow/256
964.3 µs
overflowing_pow/192
benches/bench.rs::benches::benches::group::overflowing_pow/192
1.3 ms
sub/128
benches/bench.rs::benches::benches::group::sub/128
263.3 µs
overflowing_pow/384
benches/bench.rs::benches::benches::group::overflowing_pow/384
5.1 ms
overflowing_pow/256
benches/bench.rs::benches::benches::group::overflowing_pow/256
2.2 ms
log/64
benches/bench.rs::benches::benches::group::log/64
1.5 ms
overflowing_pow/512
benches/bench.rs::benches::benches::group::overflowing_pow/512
9.7 ms
div_rem/4096/4096
benches/bench.rs::benches::benches::group::div_rem/4096/4096
143.7 µs
pow/4096
benches/bench.rs::benches::benches::group::pow/4096
2.8 ms
algorithms/gcd/matrix/apply/192
benches/bench.rs::benches::benches::group::algorithms/gcd/matrix/apply/192
< 1 ns
log/128
benches/bench.rs::benches::benches::group::log/128
8.8 ms
add/128
benches/bench.rs::benches::benches::group::add/128
263.3 µs
root/5/64/64
benches/bench.rs::benches::benches::group::root/5/64/64
2.2 ms
pow/192
benches/bench.rs::benches::benches::group::pow/192
339 µs
log/384
benches/bench.rs::benches::benches::group::log/384
21.6 ms
root/2/128/128
benches/bench.rs::benches::benches::group::root/2/128/128
5.6 ms
pow/128
benches/bench.rs::benches::benches::group::pow/128
87.7 µs
log/512
benches/bench.rs::benches::benches::group::log/512
27.9 ms
log/192
benches/bench.rs::benches::benches::group::log/192
11.9 ms
log/4096
benches/bench.rs::benches::benches::group::log/4096
3.7 ms
root/127/64/64
benches/bench.rs::benches::benches::group::root/127/64/64
212 µs
log/256
benches/bench.rs::benches::benches::group::log/256
14.4 ms
root/3/64/64
benches/bench.rs::benches::benches::group::root/3/64/64
2.2 ms
root/2/64/64
benches/bench.rs::benches::benches::group::root/2/64/64
2.1 ms
overflowing_pow/4096
benches/bench.rs::benches::benches::group::overflowing_pow/4096
2.4 ms
© 2025 CodSpeed Technology
Home
Terms
Privacy
Docs