twenty-first icon indicating copy to clipboard operation
twenty-first copied to clipboard

Collection of mathematics routines and cryptography for the twenty-first century

Results 14 twenty-first issues
Sort by recently updated
recently updated
newest added

How do you go from a column in the AET to the interpolant's values in a small number of points? INTT and batch-evaluation comes to mind, but in some cases...

Commit a0a4cc0ebff7ac940262b60dbfe1006e6ea3efda separates parallel from sequential versions of `fast_interpolate`. The resulting benchmarks shows that there is *no* threshold for which `fast_interpolate` is faster than `lagrange_interpolate`, even though one would expect...

enhancement
prio: low

I think it's time we rework the `ntt` interface from its current ```rust pub fn ntt(x: &mut [FF], omega: BFieldElement, log_2_of_n: u32) { /* … */ } ``` to be...

prio: low
⏭️ breaking change

This PR fixes the following issues with current conversion from “native” endian bytes to base field elements: - Make the function infallible. Before, if the passed-in slice was of the...

To be useful in more contexts, `Tip5` should implement the [`Hasher` trait](https://doc.rust-lang.org/std/hash/trait.Hasher.html).

good first issue
prio: low

Conversion from `Digest` to `[u8, 40]` happens through: ```rust impl From for [u8; Digest::BYTES] { fn from(item: Digest) -> Self { let u64s = item.0.iter().map(|x| x.value()); u64s.map(|x| x.to_ne_bytes()) .collect::() .concat()...

good first issue

In the course of testing hex encode/decode, I discovered that it is possible to create a `Digest` from input bytes that subsequently produces different output bytes. Here is a failing...

This is the performance critical code. It would be cool if the inner-most loop here could be parallelized: ```rust for _ in 0..log_2_of_n { let w_m = omega.mod_pow_u32(n / (2...

This function returns the **node index** of a peak, not index into the MMR accumulator's peak list. Luckily it's a private function in `twenty-first/src/util_types/mmr/mmr_membership_proof.rs`, but it should still be changed,...