• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Neptune-Crypto / twenty-first / 36577269546
98%

Build:
DEFAULT BRANCH: master
Ran 29 Sep 2026 02:21PM UTC
Jobs 1
Files 23
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Sep 2026 01:43PM UTC coverage: 90.067% (-7.9%) from 97.937%
36577269546

push

github

web-flow
Faster NTTs, polynomial arithmetic, and Tip5 hashing (#279)

Faster NTTs, polynomial arithmetic, and Tip5 hashing

Performance work driven by Triton VM's prover.
**NTT**
- Cache-blocked radix-4 transform with a tiled bit-reversal permutation:
fewer
  passes over memory.
- Scaling and zero-padding fused into the transform
(`scaled_zero_padded_ntt`,
`fast_coset_evaluate_into`), which also evaluates straight into
uninitialized
  memory.
- AVX-512 butterfly kernels, selected at runtime; scalar code everywhere
else.
- Parallel transforms of single long inputs (`par_ntt`, `par_intt`,
`par_scaled_zero_padded_ntt`).
**Polynomials**
- Quasi-linear parallel interpolation and evaluation via zerofier trees,
with
level-scheduled tree arithmetic and quasi-linear chunk-wise reduction.
- New parallel variants: `par_evaluate`, `par_scale`,
`par_fast_multiply`,
    `par_fast_coset_evaluate(_into)`, `par_fast_coset_interpolate`
`par_clean_divide`, `par_interpolate_with_zerofier_tree(_and_weights)`,
    `par_divide_and_conquer_batch_evaluate`, and more.
- `FiniteField::par_batch_inversion`; faster `XFieldElement` inversion.
  - Large polynomial buffers request transparent huge pages on Linux
    (`memory::advise_huge_pages`, `memory::vec_with_capacity`).

**Tip5**
- `hash_varlen_many` and `hash_pair_many` hash eight inputs at once with
AVX-512 (runtime-detected), using the fast MDS convolution; other
targets
  hash one input at a time as before.

**Breaking changes**
- `Tip5::round` is no longer public, but this was only ever exposed on
AVX512 builds so not relevant I think.
- `ntt::swap_indices` was removed.

Tested on Linux; clippy is clean for Linux, Windows, macOS (x86-64 and
ARM64),
and wasm32.

1276 of 1687 new or added lines in 14 files covered. (75.64%)

14 existing lines in 7 files now uncovered.

6193 of 6876 relevant lines covered (90.07%)

56848464.06 hits per line

Uncovered Changes

Lines Coverage ∆ File
243
68.06
-31.94% twenty-first/src/math/ntt.rs
129
1.03
twenty-first/src/tip5/avx512.rs
19
97.86
-0.34% twenty-first/src/math/polynomial.rs
19
95.49
-4.51% twenty-first/src/tip5/mod.rs
1
97.18
-0.66% twenty-first/src/util_types/merkle_tree.rs

Coverage Regressions

Lines Coverage ∆ File
4
91.67
-1.4% twenty-first/src/math/b_field_element.rs
4
97.86
-0.34% twenty-first/src/math/polynomial.rs
2
97.18
-0.66% twenty-first/src/util_types/merkle_tree.rs
1
95.65
-4.35% twenty-first/src/config.rs
1
68.06
-31.94% twenty-first/src/math/ntt.rs
1
95.49
-4.51% twenty-first/src/tip5/mod.rs
1
98.21
-0.2% twenty-first/src/util_types/mmr/mmr_accumulator.rs
Jobs
ID Job ID Ran Files Coverage
1 36577269546.1 29 Sep 2026 02:21PM UTC 23
90.07
GitHub Action Run
Source Files on build 36577269546
  • Tree
  • List 23
  • Changed 19
  • Source Changed 13
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36577269546
  • b3ead276 on github
  • Prev Build on master (#27202244027)
  • Next Build on master (#36586999852)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc