Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype of doubly abstract algebra traits #3

Merged
merged 21 commits into from
Jul 13, 2024
Merged

Conversation

0xAlcibiades
Copy link
Member

@0xAlcibiades 0xAlcibiades commented Jul 13, 2024

This PR contains the abstract heirarchy for algebra traits. I had a cut, if you look in the history, of some more concrete implementations in the form:

#[derive(Clone, Copy, PartialEq, Eq)]
pub struct FinitePrimeField<const P: u64> {
    value: u64,
}

impl<const P: u64> FinitePrimeField<P>
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct PolynomialField<F: FiniteField + Copy, const N: usize> {
    coeffs: [F; N],
}

impl<F: FiniteField + Copy, const N: usize> PolynomialField<F, N>

Roughly.

I'd like to get a little finalized on the traits we want/need and then go get into implementation for those in alt-bn128-bls after we publish this crate.

@0xAlcibiades 0xAlcibiades requested review from merolish and trbritt July 13, 2024 10:12
@0xAlcibiades 0xAlcibiades merged commit b6810e5 into master Jul 13, 2024
16 checks passed
@0xAlcibiades 0xAlcibiades deleted the alc/prototype branch July 13, 2024 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant