30 using Curve = TypeParam;
35 const size_t num_sequences = 5;
36 const size_t sequence_size = 1 << 10;
37 const size_t input_size = num_sequences * sequence_size;
38 std::vector<size_t> sequence_counts(num_sequences, sequence_size);
42 points.reserve(input_size);
43 for (
size_t i = 0; i < input_size; ++i) {
44 points.emplace_back(G1::random_element());
50 for (
size_t i = 0; i < num_sequences; ++i) {
51 G1 sum = G1::infinity();
52 for (
size_t j = 0; j < sequence_size; ++j) {
53 sum =
sum + points[point_idx++];
55 expected_reduced_points.push_back(
sum);
59 auto reduced_points = BatchedAddition::add_in_place(points, sequence_counts);
62 for (
auto [result, expected] :
zip_view(reduced_points, expected_reduced_points)) {
63 EXPECT_EQ(result, expected);