Skip to main content

ChallengeField

Trait ChallengeField 

Source
pub trait ChallengeField<F: Field>: EncodableLevel {
    type SumcheckRepr: IntoTranscriptField<Self> + Algebra<F>;

    // Provided method
    fn from_sumcheck_repr(values: &[Self::SumcheckRepr], out: &mut [Self]) { ... }
}
Expand description

A challenge field and the arithmetic representation used by its residual sumcheck.

The representation depends on the challenge field alone. A 128-bit challenge uses the carryless-multiply representation. A 64-bit challenge uses its polynomial-basis carryless-multiply representation.

A folded codeword over this field is an encoding under its own level’s encoder.

Required Associated Types§

Source

type SumcheckRepr: IntoTranscriptField<Self> + Algebra<F>

Isomorphic field used for residual sumcheck arithmetic.

Provided Methods§

Source

fn from_sumcheck_repr(values: &[Self::SumcheckRepr], out: &mut [Self])

Writes every value of values, held in the sumcheck representation, into out.

The default maps one value at a time.

§Panics

The two slices differ in length.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<F: Field> ChallengeField<F> for BinaryField64
where Poly64: Algebra<F>,

Source§

impl<F: Field> ChallengeField<F> for BinaryField128
where Ghash128: Algebra<F>,

Source§

fn from_sumcheck_repr(values: &[Ghash128], out: &mut [Self])

Crosses a block of polynomial coordinates back into the tower basis in one pass.

Source§

type SumcheckRepr = Ghash128

Implementors§