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
.