pub struct Domain<F>where
F: FftField,{
pub domains: Domains<F>,
pub zk_rows: usize,
pub capacity: usize,
pub not_last_row: FieldColumn<F>,
pub l_first: FieldColumn<F>,
pub l_last: FieldColumn<F>,
/* private fields */
}Fields§
§domains: Domains<F>§zk_rows: usize§capacity: usize§not_last_row: FieldColumn<F>§l_first: FieldColumn<F>§l_last: FieldColumn<F>Implementations§
Source§impl<F> Domain<F>where
F: FftField,
impl<F> Domain<F>where
F: FftField,
Sourcepub fn with_zk_rows(n: usize, zk_rows: usize) -> Domain<F>
pub fn with_zk_rows(n: usize, zk_rows: usize) -> Domain<F>
Returns a domain that blinds (column) polynomials.
The highest zk_rows evaluations (aka Lagrange coefficients) are set random.
After interpolation that is equivallent to adding r(X).Z'(X), for a random deg(r) = zk_rows - 1.
Sourcepub fn without_blinding(self) -> Domain<F>
pub fn without_blinding(self) -> Domain<F>
Disables column blinding, preserving the domain layout (zk_rows, capacity):
the zk rows are padded with zeros instead of random values.
Proofs generated over such a domain are deterministic, thus NOT zero-knowledge,
but remain valid for verifiers configured with the blinding-enabled domain.
Intended for reproducible test vectors generation.
pub fn is_hiding(&self) -> bool
pub fn compute_quotient( &self, poly: &DensePolynomial<F>, ) -> Option<DensePolynomial<F>>
pub fn column(&self, values: Vec<F>) -> FieldColumn<F>
pub fn public_column(&self, values: Vec<F>) -> FieldColumn<F>
pub fn domain(&self) -> GeneralEvaluationDomain<F>
pub fn domain_size(&self) -> usize
pub fn omega(&self) -> F
pub fn evaluate(&self, zeta: F) -> EvaluatedDomain<F>
Trait Implementations§
Auto Trait Implementations§
impl<F> Freeze for Domain<F>where
F: Freeze,
impl<F> RefUnwindSafe for Domain<F>where
F: RefUnwindSafe,
impl<F> Send for Domain<F>
impl<F> Sync for Domain<F>
impl<F> Unpin for Domain<F>where
F: Unpin,
impl<F> UnsafeUnpin for Domain<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for Domain<F>where
F: UnwindSafe,
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
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,
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