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],
    ) -> 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.