[−][src]Trait r1cs::MultiPermutation
A permutation whose inputs and outputs consist of multiple field elements.
Required methods
fn width(&self) -> usize
The size of the permutation, in field elements.
fn permute(
&self,
builder: &mut GadgetBuilder<F>,
inputs: &[Expression<F>]
) -> Vec<Expression<F>>
&self,
builder: &mut GadgetBuilder<F>,
inputs: &[Expression<F>]
) -> Vec<Expression<F>>
Permute the given sequence of field elements.
fn inverse(
&self,
builder: &mut GadgetBuilder<F>,
outputs: &[Expression<F>]
) -> Vec<Expression<F>>
&self,
builder: &mut GadgetBuilder<F>,
outputs: &[Expression<F>]
) -> Vec<Expression<F>>
Apply the inverse of this permutation to the given sequence of field elements.
Provided methods
fn permute_evaluate(&self, inputs: &[Element<F>]) -> Vec<Element<F>>
Like permute
, but actually evaluates the permutation rather than just adding it to a
GadgetBuilder
.
fn inverse_evaluate(&self, outputs: &[Element<F>]) -> Vec<Element<F>>
Like inverse
, but actually evaluates the inverse permutation rather than just adding it to
a GadgetBuilder
.
Implementors
impl<F: Field, SB: Permutation<F>> MultiPermutation<F> for Poseidon<F, SB>
[src]
fn width(&self) -> usize
[src]
fn permute(
&self,
builder: &mut GadgetBuilder<F>,
inputs: &[Expression<F>]
) -> Vec<Expression<F>>
[src]
&self,
builder: &mut GadgetBuilder<F>,
inputs: &[Expression<F>]
) -> Vec<Expression<F>>
fn inverse(
&self,
builder: &mut GadgetBuilder<F>,
outputs: &[Expression<F>]
) -> Vec<Expression<F>>
[src]
&self,
builder: &mut GadgetBuilder<F>,
outputs: &[Expression<F>]
) -> Vec<Expression<F>>