Skip to content
This repository was archived by the owner on Feb 17, 2025. It is now read-only.

Commit 2b948f1

Browse files
authored
Add start_row_index that was missing in native pallas curve mul component (#271)
1 parent 2e3e950 commit 2b948f1

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -348,35 +348,35 @@ namespace nil {
348348
// assign additional bits of aux for the range check (integral_b < q) or (b_high * 2^254 + integral_b < q)
349349
typename BlueprintFieldType::value_type u_next = 0;
350350
typename BlueprintFieldType::value_type u0, u1;
351-
for (std::size_t i = component.aux_bits_start_row; i <= component.aux_bits_start_row + component.aux_bits_rows_amount - 3; i = i + 2) {
351+
for (std::size_t i = start_row_index + component.aux_bits_start_row; i <= start_row_index + component.aux_bits_start_row + component.aux_bits_rows_amount - 3; i = i + 2) {
352352
assignment.witness(component.W(6), i) = u_next;
353-
const std::size_t ind = 125 + ((i - component.aux_bits_start_row) / 2) * 6;
353+
const std::size_t ind = 125 + ((i - component.aux_bits_start_row - start_row_index) / 2) * 6;
354354
u0 = 4 * aux_bits[ind] + 2 * aux_bits[ind+1] + aux_bits[ind+2];
355355
u1 = 4 * aux_bits[ind+3] + 2 * aux_bits[ind+4] + aux_bits[ind+5];
356356
u_next = 64 * u_next + 8 * u0 + u1;
357357
assignment.witness(component.W(12), i+1) = u0;
358358
assignment.witness(component.W(13), i+1) = u1;
359359
assignment.witness(component.W(14), i+1) = u_next;
360360
}
361-
assignment.witness(component.W(6), component.aux_bits_start_row + component.aux_bits_rows_amount - 2) = u_next;
361+
assignment.witness(component.W(6), start_row_index + component.aux_bits_start_row + component.aux_bits_rows_amount - 2) = u_next;
362362
const std::size_t ind = 125 + (component.aux_bits_rows_amount / 2 - 1) * 6;
363363
u0 = 4 * aux_bits[ind] + 2 * aux_bits[ind+1] + aux_bits[ind+2];
364364
u1 = aux_bits[ind+3];
365365
u_next = 16 * u_next + 2 * u0 + u1;
366-
assignment.witness(component.W(12), component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u0;
367-
assignment.witness(component.W(13), component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u1;
368-
assignment.witness(component.W(14), component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u_next;
366+
assignment.witness(component.W(12), start_row_index + component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u0;
367+
assignment.witness(component.W(13), start_row_index + component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u1;
368+
assignment.witness(component.W(14), start_row_index + component.aux_bits_start_row + component.aux_bits_rows_amount - 1) = u_next;
369369

370-
assignment.witness(component.W(9), component.rows_amount - 1) = bits[0];
370+
assignment.witness(component.W(9), start_row_index + component.rows_amount - 1) = bits[0];
371371
typename BlueprintFieldType::value_type e2 = 0;
372372
typename BlueprintFieldType::value_type cur_pow = 1;
373373
for (std::size_t l = 130; l <= 254; l = l + 1) {
374374
e2 += + bits[254-l] * cur_pow;
375375
cur_pow = cur_pow * 2;
376376
}
377-
assignment.witness(component.W(10), component.rows_amount - 1) = e2;
378-
assignment.witness(component.W(11), component.rows_amount - 1) = integral_b;
379-
assignment.witness(component.W(12), component.rows_amount - 1) = aux;
377+
assignment.witness(component.W(10), start_row_index + component.rows_amount - 1) = e2;
378+
assignment.witness(component.W(11), start_row_index + component.rows_amount - 1) = integral_b;
379+
assignment.witness(component.W(12), start_row_index + component.rows_amount - 1) = aux;
380380

381381
// assign last 3 rows
382382
typename BlueprintFieldType::value_type m = ((n_next - component.shifted_minus_one)*

0 commit comments

Comments
 (0)