pub struct TowerBasis<F: Field> { /* private fields */ }
Expand description
Represents the $\mathcal{T}{\iota}$-basis of $\mathcal{T}{\iota+k}$
Recall that $\mathcal{T}_{\iota}$ is defined as
- Let \mathbb{F} := \mathbb{F}2[X_0, \ldots, X{\iota-1}]
- Let \mathcal{J} := (X_0^2 + X_0 + 1, \ldots, X_{\iota-1}^2 + X_{\iota-1}X_{\iota-2} + 1)
- $\mathcal{T}_{\iota} := \mathbb{F} / J $
and $\mathcal{T}_{\iota}$ has the following $\mathbb{F}_2$-basis:
- $1, X_0, X_1, X_0X_1, X_2, \ldots, X_0 X_1 \ldots X_{\iota-1}$
Thus, $\mathcal{T}{\iota+k}$ has a $\mathcal{T}{\iota}$-basis of size $2^k$:
- $1, X_{\iota}, X_{\iota+1}, X_{\iota}X_{\iota+1}, X_{\iota+2}, \ldots, X_{\iota} X_{\iota+1} \ldots X_{\iota+k-1}$
Implementations§
source§impl<F: TowerField> TowerBasis<F>
impl<F: TowerField> TowerBasis<F>
pub fn new(k: usize, iota: usize) -> Result<Self, Error>
pub fn multilinear_extension<P: PackedField<Scalar = F>>( &self, ) -> Result<MultilinearExtension<P>, Error>
Trait Implementations§
source§impl<F: Clone + Field> Clone for TowerBasis<F>
impl<F: Clone + Field> Clone for TowerBasis<F>
source§fn clone(&self) -> TowerBasis<F>
fn clone(&self) -> TowerBasis<F>
Returns a copy of the value. Read more
1.6.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<F> MultivariatePoly<F> for TowerBasis<F>where
F: TowerField,
impl<F> MultivariatePoly<F> for TowerBasis<F>where
F: TowerField,
impl<F: Copy + Field> Copy for TowerBasis<F>
Auto Trait Implementations§
impl<F> Freeze for TowerBasis<F>
impl<F> RefUnwindSafe for TowerBasis<F>
impl<F> Send for TowerBasis<F>
impl<F> Sync for TowerBasis<F>
impl<F> Unpin for TowerBasis<F>
impl<F> UnwindSafe for TowerBasis<F>
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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>
Converts
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>
Converts
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