acvm_blackbox_solver

Trait BlackBoxFunctionSolver

Source
pub trait BlackBoxFunctionSolver<F> {
    // Required methods
    fn pedantic_solving(&self) -> bool;
    fn multi_scalar_mul(
        &self,
        points: &[F],
        scalars_lo: &[F],
        scalars_hi: &[F],
    ) -> Result<(F, F, F), BlackBoxResolutionError>;
    fn ec_add(
        &self,
        input1_x: &F,
        input1_y: &F,
        input1_infinite: &F,
        input2_x: &F,
        input2_y: &F,
        input2_infinite: &F,
    ) -> Result<(F, F, F), BlackBoxResolutionError>;
    fn poseidon2_permutation(
        &self,
        inputs: &[F],
        len: u32,
    ) -> Result<Vec<F>, BlackBoxResolutionError>;
}
Expand description

This component will generate outputs for Blackbox function calls where the underlying acir::BlackBoxFunc doesn’t have a canonical Rust implementation.

Returns an BlackBoxResolutionError if the backend does not support the given acir::BlackBoxFunc.

Required Methods§

Source

fn pedantic_solving(&self) -> bool

Source

fn multi_scalar_mul( &self, points: &[F], scalars_lo: &[F], scalars_hi: &[F], ) -> Result<(F, F, F), BlackBoxResolutionError>

Source

fn ec_add( &self, input1_x: &F, input1_y: &F, input1_infinite: &F, input2_x: &F, input2_y: &F, input2_infinite: &F, ) -> Result<(F, F, F), BlackBoxResolutionError>

Source

fn poseidon2_permutation( &self, inputs: &[F], len: u32, ) -> Result<Vec<F>, BlackBoxResolutionError>

Implementors§