Expand description
module for defining the gate layer, uses the libra trick to reduce the number of rounds for gate layers (with binary operations)
Re-exports§
pub use self::gate_helpers::compute_sumcheck_message_data_parallel_gate;pub use self::gate_helpers::compute_sumcheck_message_no_beta_table;pub use self::gate_helpers::index_mle_indices_gate;pub use self::gate_helpers::GateError;
Modules§
- gate_
helpers - Helper functions used in the gate sumcheck algorithms.
Structs§
- Gate
Layer - Generic gate struct – the binary operation performed by the gate is specified by
the
gate_operationparameter. Additionally, the number of dataparallel variables is specified bynum_dataparallel_varsin order to account for batched and un-batched gates. - Gate
Layer Description - The circuit-description counterpart of a Gate layer description.
- Verifier
Gate Layer - The verifier’s counterpart of a Gate layer.
Enums§
- Binary
Operation - Operations that are currently supported by the gate. Binary because these are fan-in-two gates.
Constants§
- DATAPARALLEL_
ROUND_ 🔒ADD_ NUM_ EVALS - DATAPARALLEL_
ROUND_ 🔒MUL_ NUM_ EVALS - Degree of independent variable is cubic for mul dataparallel binding and quadratic for all other bindings (see below expression to verify for yourself!)
- NON_
DATAPARALLEL_ 🔒ROUND_ ADD_ NUM_ EVALS - NON_
DATAPARALLEL_ 🔒ROUND_ MUL_ NUM_ EVALS
Functions§
- compute_
gate_ data_ outputs - Computes the correct result of a gate layer, Used for data generation and testing. Arguments: