pub struct BatchConstraintProof<SC: StarkProtocolConfig> {
pub numerator_term_per_air: Vec<SC::EF>,
pub denominator_term_per_air: Vec<SC::EF>,
pub univariate_round_coeffs: Vec<SC::EF>,
pub sumcheck_round_polys: Vec<Vec<SC::EF>>,
pub column_openings: Vec<Vec<Vec<SC::EF>>>,
}Fields§
§numerator_term_per_air: Vec<SC::EF>The terms \textnormal{sum}_{\hat{p}, T, I} as defined in Protocol 3.4.6, per present AIR in sorted AIR order.
denominator_term_per_air: Vec<SC::EF>The terms \textnormal{sum}_{\hat{q}, T, I} as defined in Protocol 3.4.6, per present AIR in sorted AIR order.
univariate_round_coeffs: Vec<SC::EF>Polynomial for initial round, given by (vk.d + 1) * (2^{l_skip} - 1) + 1 coefficients.
sumcheck_round_polys: Vec<Vec<SC::EF>>For rounds 1, ..., n_max; evaluations on {1, ..., vk.d + 1}.
column_openings: Vec<Vec<Vec<SC::EF>>>Per AIR in sorted AIR order, per AIR part, per column index in that part, openings for the prismalinear column polynomial and (optionally) its rotational convolution. All column openings are stored in a flat way, so only column openings or them interleaved with rotations. For example, if the rotated claims are included for a trace part, then the corresponding list of openings will look like [col_1, rot_1, col_2, rot_2, …], and should be treated as “the i-th column’s plain and rotated claims are (col_i, rot_i)”. Otherwise, it will look like [col_1, col_2, col_3, …], and should be treated as “the i-th column’s plain and rotated claims are (col_i, 0)”. The trace parts are ordered: [CommonMain (part 0), Preprocessed (if any), Cached(0), Cached(1), …]
Trait Implementations§
Source§impl<SC: StarkProtocolConfig> Clone for BatchConstraintProof<SC>
impl<SC: StarkProtocolConfig> Clone for BatchConstraintProof<SC>
Source§impl<SC: StarkProtocolConfig> Debug for BatchConstraintProof<SC>
impl<SC: StarkProtocolConfig> Debug for BatchConstraintProof<SC>
Source§impl<SC: DecodableConfig> Decode for BatchConstraintProof<SC>
impl<SC: DecodableConfig> Decode for BatchConstraintProof<SC>
Source§impl<'de, SC: StarkProtocolConfig> Deserialize<'de> for BatchConstraintProof<SC>
impl<'de, SC: StarkProtocolConfig> Deserialize<'de> for BatchConstraintProof<SC>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<SC: EncodableConfig> Encode for BatchConstraintProof<SC>
impl<SC: EncodableConfig> Encode for BatchConstraintProof<SC>
impl<SC: StarkProtocolConfig> Eq for BatchConstraintProof<SC>
Source§impl<SC: StarkProtocolConfig> PartialEq for BatchConstraintProof<SC>
impl<SC: StarkProtocolConfig> PartialEq for BatchConstraintProof<SC>
Source§impl<SC: StarkProtocolConfig> Serialize for BatchConstraintProof<SC>
impl<SC: StarkProtocolConfig> Serialize for BatchConstraintProof<SC>
Auto Trait Implementations§
impl<SC> Freeze for BatchConstraintProof<SC>
impl<SC> RefUnwindSafe for BatchConstraintProof<SC>
impl<SC> Send for BatchConstraintProof<SC>
impl<SC> Sync for BatchConstraintProof<SC>
impl<SC> Unpin for BatchConstraintProof<SC>
impl<SC> UnsafeUnpin for BatchConstraintProof<SC>
impl<SC> UnwindSafe for BatchConstraintProof<SC>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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