Struct ark_r1cs_std::poly::domain::Radix2DomainVar
source · pub struct Radix2DomainVar<F: PrimeField> {
pub gen: F,
pub dim: u64,
/* private fields */
}
Expand description
Defines an evaluation domain over a prime field. The domain is a coset of
size 1<<dim
.
Native code corresponds to ark-poly::univariate::domain::radix2
, but
ark-poly
only supports subgroup for now.
Fields§
§gen: F
generator of subgroup g
dim: u64
dimension of evaluation domain, which is log2(size of coset)
Implementations§
source§impl<F: PrimeField> Radix2DomainVar<F>
impl<F: PrimeField> Radix2DomainVar<F>
source§impl<F: PrimeField> Radix2DomainVar<F>
impl<F: PrimeField> Radix2DomainVar<F>
sourcepub fn elements(&self) -> Vec<FpVar<F>> ⓘ
pub fn elements(&self) -> Vec<FpVar<F>> ⓘ
Returns offset, offsetg, offsetg^2, …, offset*g^{coset_size}
sourcepub fn query_position_to_coset_elements(
&self,
query_pos: &[Boolean<F>],
coset_dim: u64
) -> Result<Vec<FpVar<F>>, SynthesisError>
pub fn query_position_to_coset_elements(
&self,
query_pos: &[Boolean<F>],
coset_dim: u64
) -> Result<Vec<FpVar<F>>, SynthesisError>
For domain h<g>
with dimension n
, position
represented by
query_pos
in big endian form, returns all points of
h*g^{position}<g^{2^{n-coset_dim}}>
. The result is the query coset at
index query_pos
for the FRI protocol.
Panics
This function panics when query_pos.len() != coset_dim
or
query_pos.len() != self.dim
.
sourcepub fn query_position_to_coset(
&self,
query_pos: &[Boolean<F>],
coset_dim: u64
) -> Result<Self, SynthesisError>
pub fn query_position_to_coset(
&self,
query_pos: &[Boolean<F>],
coset_dim: u64
) -> Result<Self, SynthesisError>
For domain h<g>
with dimension n
, position
represented by
query_pos
in big endian form, returns all points of
h*g^{position}<g^{n-query_pos.len()}>
Panics
This function panics when query_pos.len() < log2_num_cosets
.
Trait Implementations§
source§impl<F: Clone + PrimeField> Clone for Radix2DomainVar<F>
impl<F: Clone + PrimeField> Clone for Radix2DomainVar<F>
source§fn clone(&self) -> Radix2DomainVar<F>
fn clone(&self) -> Radix2DomainVar<F>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<F: Debug + PrimeField> Debug for Radix2DomainVar<F>
impl<F: Debug + PrimeField> Debug for Radix2DomainVar<F>
source§impl<F: PrimeField> EqGadget<F> for Radix2DomainVar<F>
impl<F: PrimeField> EqGadget<F> for Radix2DomainVar<F>
source§fn is_eq(&self, other: &Self) -> Result<Boolean<F>, SynthesisError>
fn is_eq(&self, other: &Self) -> Result<Boolean<F>, SynthesisError>
Boolean
value representing whether self.value() == other.value()
.source§fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
fn conditional_enforce_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
should_enforce == true
, enforce that self
and other
are equal;
else, enforce a vacuously true statement. Read moresource§fn enforce_equal(&self, other: &Self) -> Result<(), SynthesisError>
fn enforce_equal(&self, other: &Self) -> Result<(), SynthesisError>
source§fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
fn conditional_enforce_not_equal(
&self,
other: &Self,
should_enforce: &Boolean<F>
) -> Result<(), SynthesisError>
should_enforce == true
, enforce that self
and other
are not
equal; else, enforce a vacuously true statement. Read more