pub struct TracePolyTable<E: FieldElement> { /* private fields */ }Expand description
Trace polynomials in coefficient from for all segments of the execution trace.
Coefficients of the polynomials for the main trace segment are always in the base field. However, coefficients of the polynomials for the auxiliary trace segment may be either in the base field, or in the extension field, depending on whether extension field is being used.
Implementations§
Source§impl<E: FieldElement> TracePolyTable<E>
impl<E: FieldElement> TracePolyTable<E>
Sourcepub fn new(main_trace_polys: ColMatrix<E::BaseField>) -> Self
pub fn new(main_trace_polys: ColMatrix<E::BaseField>) -> Self
Creates a new table of trace polynomials from the provided main trace segment polynomials.
Sourcepub fn add_aux_segment(&mut self, aux_trace_polys: ColMatrix<E>)
pub fn add_aux_segment(&mut self, aux_trace_polys: ColMatrix<E>)
Adds the provided auxiliary segment polynomials to this polynomial table.
Sourcepub fn poly_size(&self) -> usize
pub fn poly_size(&self) -> usize
Returns the size of each polynomial - i.e. size of a vector needed to hold a polynomial.
Sourcepub fn evaluate_at(&self, x: E) -> Vec<E>
pub fn evaluate_at(&self, x: E) -> Vec<E>
Evaluates all trace polynomials (across all trace segments) at the specified point x.
Sourcepub fn get_ood_frame(&self, z: E) -> TraceOodFrame<E>
pub fn get_ood_frame(&self, z: E) -> TraceOodFrame<E>
Returns an out-of-domain evaluation frame constructed by evaluating trace polynomials for all columns at points z and z * g, where g is the generator of the trace domain.
Sourcepub fn main_trace_polys(&self) -> impl Iterator<Item = &[E::BaseField]>
pub fn main_trace_polys(&self) -> impl Iterator<Item = &[E::BaseField]>
Returns an iterator over the polynomials of the main trace segment.
Sourcepub fn aux_trace_polys(&self) -> impl Iterator<Item = &[E]>
pub fn aux_trace_polys(&self) -> impl Iterator<Item = &[E]>
Returns an iterator over the polynomials of the auxiliary trace segment.