Struct prio::pcp::types::PolyCheckedVector [−][src]
pub struct PolyCheckedVector<F: FieldElement> { /* fields omitted */ }
Expand description
This type represents vectors for which poly(x) == 0
holds for some polynomial poly
and each
vector element x
.
This type is “generic” in that it can be used to construct high level types. For example, a boolean vector can be represented as follows:
use prio::field::{Field64, FieldElement};
use prio::pcp::types::PolyCheckedVector;
let data = vec![Field64::zero(), Field64::one(), Field64::zero()];
let x = PolyCheckedVector::new_range_checked(data, 0, 2);
The proof technique is based on the SIMD circuit construction of [BBG+19, Theorem 5.3].
Implementations
Returns a poly
-checked vector where poly(x) == 0
if and only if x
is in range
[start, end)
. The degree of poly
is equal to end
.
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
type Field = F
type Field = F
The finite field used for this type.
Parameters used to construct a value of this type from a vector of field elements.
Evaluates the validity circuit on the given input (i.e., self
) and returns the output.
joint_rand
is the joint randomness shared by the prover and verifier. g
is the sequence
of gadgets called by the circuit. Read more
The number of calls to the gadget made when evaluating the validity circuit.
The length of the random input used by both the prover and the verifier.
The length of the random input consumed by the prover to generate a proof. This is the same as the sum of the arity of each gadget in the validity circuit. Read more
The length of the random input consumed by the verifier to make queries against inputs and proofs. This is the same as the number of gadgets in the validity circuit. Read more
Returns the sequence of gadgets associated with the validity circuit. Read more
When verifying a proof over secret shared data, this method may be used to distinguish the “leader” share from the others. This is useful, for example, when some of the gadget inputs are constants used for both proof generation and verification. Read more
Auto Trait Implementations
impl<F> RefUnwindSafe for PolyCheckedVector<F> where
F: RefUnwindSafe,
impl<F> Send for PolyCheckedVector<F> where
F: Send,
impl<F> Sync for PolyCheckedVector<F> where
F: Sync,
impl<F> Unpin for PolyCheckedVector<F> where
F: Unpin,
impl<F> UnwindSafe for PolyCheckedVector<F> where
F: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self