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: