pub trait PolynomialSpaceVariable<C: Config>: Sized + FromConstant<C> {
type Constant: PolynomialSpace<Val = C::F>;
// Required methods
fn next_point(
&self,
builder: &mut Builder<C>,
point: Ext<C::F, C::EF>,
) -> Ext<C::F, C::EF>;
fn selectors_at_point(
&self,
builder: &mut Builder<C>,
point: Ext<C::F, C::EF>,
) -> LagrangeSelectors<Ext<C::F, C::EF>>;
fn zp_at_point(
&self,
builder: &mut Builder<C>,
point: Ext<C::F, C::EF>,
) -> Ext<C::F, C::EF>;
fn split_domains(
&self,
builder: &mut Builder<C>,
log_num_chunks: impl Into<Usize<C::N>>,
num_chunks: impl Into<Usize<C::N>>,
) -> Array<C, Self>;
fn split_domains_const(
&self,
_: &mut Builder<C>,
log_num_chunks: usize,
) -> Vec<Self>;
fn create_disjoint_domain(
&self,
builder: &mut Builder<C>,
log_degree: Usize<C::N>,
config: Option<FriConfigVariable<C>>,
) -> Self;
}
Expand description
Reference: p3_commit::PolynomialSpace
Required Associated Types§
type Constant: PolynomialSpace<Val = C::F>
Required Methods§
fn next_point( &self, builder: &mut Builder<C>, point: Ext<C::F, C::EF>, ) -> Ext<C::F, C::EF>
fn selectors_at_point( &self, builder: &mut Builder<C>, point: Ext<C::F, C::EF>, ) -> LagrangeSelectors<Ext<C::F, C::EF>>
fn zp_at_point( &self, builder: &mut Builder<C>, point: Ext<C::F, C::EF>, ) -> Ext<C::F, C::EF>
fn split_domains( &self, builder: &mut Builder<C>, log_num_chunks: impl Into<Usize<C::N>>, num_chunks: impl Into<Usize<C::N>>, ) -> Array<C, Self>
fn split_domains_const( &self, _: &mut Builder<C>, log_num_chunks: usize, ) -> Vec<Self>
fn create_disjoint_domain( &self, builder: &mut Builder<C>, log_degree: Usize<C::N>, config: Option<FriConfigVariable<C>>, ) -> Self
Object Safety§
This trait is not object safe.