37 const std::vector<uint32_t>& memory_read_records,
38 const std::vector<uint32_t>& memory_write_records,
46 auto wires = polynomials.get_wires();
49 for (
const auto& gate_idx : memory_read_records) {
50 wires[3].at(gate_idx) = wires[2][gate_idx] * eta_three;
51 wires[3].at(gate_idx) += wires[1][gate_idx] * eta_two;
52 wires[3].at(gate_idx) += wires[0][gate_idx] * eta;
56 for (
const auto& gate_idx : memory_write_records) {
57 wires[3].at(gate_idx) = wires[2][gate_idx] * eta_three;
58 wires[3].at(gate_idx) += wires[1][gate_idx] * eta_two;
59 wires[3].at(gate_idx) += wires[0][gate_idx] * eta;
60 wires[3].at(gate_idx) += 1;
134 add_ram_rom_memory_records_to_wire_4(prover_inst->polynomials,
135 prover_inst->memory_read_records,
136 prover_inst->memory_write_records,
137 prover_inst->relation_parameters.eta,
138 prover_inst->relation_parameters.eta_two,
139 prover_inst->relation_parameters.eta_three);
141 compute_logderivative_inverses(
142 prover_inst->polynomials, prover_inst->dyadic_size(), prover_inst->relation_parameters);
144 compute_grand_product_polynomial(prover_inst->polynomials,
145 prover_inst->public_inputs,
146 prover_inst->pub_inputs_offset(),
147 prover_inst->relation_parameters,
148 prover_inst->get_final_active_wire_idx() + 1);
static void compute_logderivative_inverses(Flavor::ProverPolynomials &polynomials, const size_t circuit_size, RelationParameters< FF > &relation_parameters)
Compute the inverse polynomials used in the log derivative lookup relations.
static void compute_grand_product_polynomial(Flavor::ProverPolynomials &polynomials, std::vector< FF > &public_inputs, const size_t pub_inputs_offset, RelationParameters< FF > &relation_parameters, size_t size_override=0)
Computes public_input_delta and the permutation grand product polynomial.
static void add_ram_rom_memory_records_to_wire_4(typename Flavor::ProverPolynomials &polynomials, const std::vector< uint32_t > &memory_read_records, const std::vector< uint32_t > &memory_write_records, const FF &eta, const FF &eta_two, const FF &eta_three)
Add RAM/ROM memory records to the fourth wire polynomial.
void compute_logderivative_inverse(Polynomials &polynomials, auto &relation_parameters, const size_t circuit_size)
Compute the inverse polynomial I(X) required for logderivative lookupsdetails Inverse may be defined ...