@@ -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