[][src]Trait r1cs::MultiPermutation

pub trait MultiPermutation<F: Field> {
    fn width(&self) -> usize;
fn permute(
        &self,
        builder: &mut GadgetBuilder<F>,
        inputs: &[Expression<F>]
    ) -> Vec<Expression<F>>;
fn inverse(
        &self,
        builder: &mut GadgetBuilder<F>,
        outputs: &[Expression<F>]
    ) -> Vec<Expression<F>>; fn permute_evaluate(&self, inputs: &[Element<F>]) -> Vec<Element<F>> { ... }
fn inverse_evaluate(&self, outputs: &[Element<F>]) -> Vec<Element<F>> { ... } }

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>>

Permute the given sequence of field elements.

fn inverse(
    &self,
    builder: &mut GadgetBuilder<F>,
    outputs: &[Expression<F>]
) -> Vec<Expression<F>>

Apply the inverse of this permutation to the given sequence of field elements.

Loading content...

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.

Loading content...

Implementors

impl<F: Field, SB: Permutation<F>> MultiPermutation<F> for Poseidon<F, SB>[src]

Loading content...