use crate::arithmetic::CurveAffine; use crate::poly::{commitment::Blind, Coeff, ExtendedLagrangeCoeff, LagrangeCoeff, Polynomial}; #[derive(Clone, Debug)] pub(crate) struct Permuted { permuted_input_value: Polynomial, permuted_input_poly: Polynomial, permuted_input_coset: Polynomial, permuted_input_inv_coset: Polynomial, permuted_input_blind: Blind, permuted_input_commitment: C, permuted_table_value: Polynomial, permuted_table_poly: Polynomial, permuted_table_coset: Polynomial, permuted_table_blind: Blind, permuted_table_commitment: C, } #[derive(Clone, Debug)] pub(crate) struct Product { product_poly: Polynomial, product_coset: Polynomial, product_inv_coset: Polynomial, product_blind: Blind, product_commitment: C, } #[derive(Clone, Debug)] pub(crate) struct Committed { permuted: Permuted, product: Product, } pub(crate) struct Constructed { permuted_input_poly: Polynomial, permuted_input_blind: Blind, permuted_input_commitment: C, permuted_table_poly: Polynomial, permuted_table_blind: Blind, permuted_table_commitment: C, product_poly: Polynomial, product_blind: Blind, product_commitment: C, } pub(crate) struct Evaluated { constructed: Constructed, pub product_eval: C::Scalar, pub product_inv_eval: C::Scalar, pub permuted_input_eval: C::Scalar, pub permuted_input_inv_eval: C::Scalar, pub permuted_table_eval: C::Scalar, }