Module Plonk.Circuit

module SMap = Kzg.SMap
val gates_to_string : Plompiler.Csir.Scalar.t list SMap.t -> string
module Circuit : sig ... end
include module type of struct include Circuit end
type t = private Circuit.t = {
  1. wires : int array array;
  2. gates : Plompiler.Csir.Scalar.t array SMap.t;
  3. tables : Plompiler.Csir.Scalar.t array list list;
  4. public_input_size : int;
  5. input_com_sizes : int list;
  6. circuit_size : int;
  7. table_size : int;
  8. nb_lookups : int;
  9. ultra : bool;
  10. range_checks : (int * int) list SMap.t;
}
val make_gates : ?qc:Plompiler.Csir.Scalar.t list -> ?linear:(int * Plompiler.Csir.Scalar.t list) list -> ?linear_g:(int * Plompiler.Csir.Scalar.t list) list -> ?qm:Plompiler.Csir.Scalar.t list -> ?qx2b:Plompiler.Csir.Scalar.t list -> ?qx5a:Plompiler.Csir.Scalar.t list -> ?qx5c:Plompiler.Csir.Scalar.t list -> ?qecc_ws_add:Plompiler.Csir.Scalar.t list -> ?qecc_ed_add:Plompiler.Csir.Scalar.t list -> ?qecc_ed_cond_add:Plompiler.Csir.Scalar.t list -> ?qbool:Plompiler.Csir.Scalar.t list -> ?qcond_swap:Plompiler.Csir.Scalar.t list -> ?q_anemoi:Plompiler.Csir.Scalar.t list -> ?q_mod_add:(string * Plompiler.Csir.Scalar.t list) list -> ?q_mod_mul:(string * Plompiler.Csir.Scalar.t list) list -> ?q_plookup:Plompiler.Csir.Scalar.t list -> ?q_table:Plompiler.Csir.Scalar.t list -> ?precomputed_advice:Plompiler.Csir.Scalar.t list SMap.t -> unit -> Plompiler.Csir.Scalar.t list SMap.t
val make : wires:int list array -> gates:Plompiler.Csir.Scalar.t list SMap.t -> ?tables:Plompiler.Csir.Scalar.t array list list -> public_input_size:int -> ?input_com_sizes:int list -> ?range_checks:(int * int) list SMap.t -> unit -> t
val get_nb_of_constraints : t -> int
val get_selectors : t -> string list