pub struct CompositionPoly<E>where
E: FieldElement,{ /* private fields */ }Expand description
A composition polynomial split into columns with each column being of length equal to trace_length.
For example, if the composition polynomial has degree 2N - 1, where N is the trace length, it will be stored as two columns of size N (each of degree N - 1).
Implementations§
Source§impl<E> CompositionPoly<E>where
E: FieldElement,
impl<E> CompositionPoly<E>where
E: FieldElement,
Sourcepub fn new(
composition_trace: CompositionPolyTrace<E>,
domain: &StarkDomain<<E as FieldElement>::BaseField>,
num_cols: usize,
) -> CompositionPoly<E>
pub fn new( composition_trace: CompositionPolyTrace<E>, domain: &StarkDomain<<E as FieldElement>::BaseField>, num_cols: usize, ) -> CompositionPoly<E>
Returns a new composition polynomial.
Sourcepub fn num_columns(&self) -> usize
pub fn num_columns(&self) -> usize
Returns the number of individual column polynomials used to describe this composition polynomial.
Sourcepub fn column_len(&self) -> usize
pub fn column_len(&self) -> usize
Returns the length of individual column polynomials; this is guaranteed to be a power of 2.
Sourcepub fn column_degree(&self) -> usize
pub fn column_degree(&self) -> usize
Returns the degree of individual column polynomial.
Sourcepub fn get_ood_frame(&self, z: E) -> QuotientOodFrame<E>
pub fn get_ood_frame(&self, z: E) -> QuotientOodFrame<E>
Returns evaluations of all composition polynomial columns at points z and g * z.
Sourcepub fn data(&self) -> &ColMatrix<E>
pub fn data(&self) -> &ColMatrix<E>
Returns a reference to the matrix of individual column polynomials.
Sourcepub fn into_columns(self) -> Vec<Vec<E>>
pub fn into_columns(self) -> Vec<Vec<E>>
Transforms this composition polynomial into a vector of individual column polynomials.