Skip to main content

Module gate

Module gate 

Source
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§

GateLayer
Generic gate struct – the binary operation performed by the gate is specified by the gate_operation parameter. Additionally, the number of dataparallel variables is specified by num_dataparallel_vars in order to account for batched and un-batched gates.
GateLayerDescription
The circuit-description counterpart of a Gate layer description.
VerifierGateLayer
The verifier’s counterpart of a Gate layer.

Enums§

BinaryOperation
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: