Struct ark_r1cs_std::poly::domain::Radix2DomainVar [−][src]
pub struct Radix2DomainVar<F: PrimeField> { pub gen: F, pub offset: FpVar<F>, pub dim: u64, }
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.
TODO: support cosets in ark-poly
.
Fields
gen: F
generator of subgroup g
offset: FpVar<F>
index of the quotient group (i.e. the offset
)
dim: u64
dimension of evaluation domain
Implementations
pub fn query_position_to_coset(
&self,
query_pos: &[Boolean<F>],
coset_dim: u64
) -> Result<Vec<FpVar<F>>, SynthesisError>
pub fn query_position_to_coset(
&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 h*g^{position}<g^{n-query_pos.len()}>
Trait Implementations
Output a Boolean
value representing whether self.value() == other.value()
. Read more
Output a Boolean
value representing whether self.value() != other.value()
. Read more
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>
If should_enforce == true
, enforce that self
and other
are equal;
else, enforce a vacuously true statement. Read more
Enforce that self
and other
are equal. Read more
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>
If should_enforce == true
, enforce that self
and other
are not
equal; else, enforce a vacuously true statement. Read more
Enforce that self
and other
are not equal. Read more
Auto Trait Implementations
impl<F> !RefUnwindSafe for Radix2DomainVar<F>
impl<F> !Send for Radix2DomainVar<F>
impl<F> !Sync for Radix2DomainVar<F>
impl<F> Unpin for Radix2DomainVar<F> where
F: Unpin,
impl<F> !UnwindSafe for Radix2DomainVar<F>
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V