mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-09 17:23:08 +00:00
Batch inversion in wires_permutation_partial_products (#152)
This commit is contained in:
parent
079baff718
commit
bf385c2760
@ -249,17 +249,27 @@ fn wires_permutation_partial_products<F: Extendable<D>, const D: usize>(
|
||||
.enumerate()
|
||||
.map(|(i, &x)| {
|
||||
let s_sigmas = &prover_data.sigmas[i];
|
||||
let quotient_values = (0..common_data.config.num_routed_wires)
|
||||
let numerators = (0..common_data.config.num_routed_wires)
|
||||
.map(|j| {
|
||||
let wire_value = witness.get_wire(i, j);
|
||||
let k_i = k_is[j];
|
||||
let s_id = k_i * x;
|
||||
let s_sigma = s_sigmas[j];
|
||||
let numerator = wire_value + beta * s_id + gamma;
|
||||
let denominator = wire_value + beta * s_sigma + gamma;
|
||||
numerator / denominator
|
||||
wire_value + beta * s_id + gamma
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let denominators = (0..common_data.config.num_routed_wires)
|
||||
.map(|j| {
|
||||
let wire_value = witness.get_wire(i, j);
|
||||
let s_sigma = s_sigmas[j];
|
||||
wire_value + beta * s_sigma + gamma
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let denominator_invs = F::batch_multiplicative_inverse(&denominators);
|
||||
let quotient_values = numerators
|
||||
.into_iter()
|
||||
.zip(denominator_invs)
|
||||
.map(|(num, den_inv)| num * den_inv)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let quotient_partials = partial_products("ient_values, degree);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user