pub struct MultilinearSkipParams {
pub log_size: usize,
pub log_extended: usize,
pub num_polynomials: usize,
}Expand description
Shape of a univariate-skip round opening the constraint sumcheck.
A skip round binds several variables with one challenge instead of one each. That moves error out of the per-round terms into one reconstruction term.
The two shapes are charged apart, rather than one bounding the other.
Fields§
§log_size: usizeDimension of the subspace the round polynomial vanishes on.
This is how many variables the round binds in one go.
log_extended: usizeDimension of the subspace the round polynomial is transmitted on.
The verifier admits any polynomial of degree below this size. That is what the reconstruction term charges for.
This must be the dimension the verifier actually interpolates on. It is not a value re-derived from the constraint degree. A domain wider than the verifier reads would be charged too little.
num_polynomials: usizeNumber of committed polynomials the opening reduction batches at once.
One challenge separates them, and separating n costs (n - 1)/q.
Trait Implementations§
Source§impl Clone for MultilinearSkipParams
impl Clone for MultilinearSkipParams
impl Copy for MultilinearSkipParams
Auto Trait Implementations§
impl Freeze for MultilinearSkipParams
impl RefUnwindSafe for MultilinearSkipParams
impl Send for MultilinearSkipParams
impl Sync for MultilinearSkipParams
impl Unpin for MultilinearSkipParams
impl UnsafeUnpin for MultilinearSkipParams
impl UnwindSafe for MultilinearSkipParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more