From 3aca3095e8200a0d66fbe98cd96889344fe35522 Mon Sep 17 00:00:00 2001 From: Rumata888 Date: Mon, 22 Apr 2024 13:56:14 +0000 Subject: [PATCH] Parameters --- .../src/barretenberg/polynomials/univariate.hpp | 4 ++-- .../protogalaxy/protogalaxy_prover.hpp | 16 ++++++++++++---- .../barretenberg/sumcheck/instance/instances.hpp | 2 ++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/barretenberg/cpp/src/barretenberg/polynomials/univariate.hpp b/barretenberg/cpp/src/barretenberg/polynomials/univariate.hpp index 044a4e97fde..4bab8790d05 100644 --- a/barretenberg/cpp/src/barretenberg/polynomials/univariate.hpp +++ b/barretenberg/cpp/src/barretenberg/polynomials/univariate.hpp @@ -387,9 +387,9 @@ template class Univariate Univariate optimised_result; optimised_result.value_at(0) = result.value_at(0); - std::copy(std::next(result.begin(), 1 + NUM_SKIPPED_INDICES), + std::copy(std::next(result.evaluations.begin(), 1 + NUM_SKIPPED_INDICES), result.evaluations.end(), - std::next(optimised_result.begin(), 1)); + std::next(optimised_result.evaluations.begin(), 1)); return optimised_result; } diff --git a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp index b908ce342f1..7c3d96ebaa5 100644 --- a/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp +++ b/barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp @@ -381,7 +381,7 @@ template class ProtoGalaxyProver_ { accumulate_relation_univariates( thread_univariate_accumulators[thread_idx], extended_univariates[thread_idx], - instances.relation_parameters, // these parameters have already been folded + instances.optimised_relation_parameters, // these parameters have already been folded pow_challenge); } }); @@ -406,10 +406,13 @@ template class ProtoGalaxyProver_ { static_assert(std::remove_reference_t::LENGTH + (ProverInstances::NUM - 1) == std::remove_reference_t::LENGTH); element.evaluations[0] = optimised_element.evaluations[0]; - element.evaluations[1] = FF(0); + for (size_t i = 1; i < ProverInstances::NUM; i++) { + element.evaluations[i] = FF(0); + } for (size_t i = 1; i < std::remove_reference_t::LENGTH; i++) { - element.evaluations[i + 1] = optimised_element.evaluations[i]; + element.evaluations[i + ProverInstances::NUM - 1] = optimised_element.evaluations[i]; } + info("Element ", outer_idx, ".", inner_idx, "[", ":", "] = ", element); }; Utils::template apply_to_tuple_of_tuples<0, 0>(univariate_accumulators, deoptimise); @@ -488,7 +491,8 @@ template class ProtoGalaxyProver_ { { size_t param_idx = 0; auto to_fold = instances.relation_parameters.get_to_fold(); - for (auto& folded_parameter : to_fold) { + auto to_fold_optimised = instances.optimised_relation_parameters.get_to_fold(); + for (auto [folded_parameter, optimised_folded_parameter] : zip_view(to_fold, to_fold_optimised)) { Univariate tmp(0); size_t instance_idx = 0; for (auto& instance : instances) { @@ -496,6 +500,10 @@ template class ProtoGalaxyProver_ { instance_idx++; } folded_parameter = tmp.template extend_to(); + optimised_folded_parameter.value_at(0) = folded_parameter.value_at(0); + std::copy(std::next(folded_parameter.evaluations.begin(), ProverInstances::NUM), + folded_parameter.evaluations.end(), + std::next(optimised_folded_parameter.evaluations.begin(), 1)); param_idx++; } } diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp index dcfc8883098..e436270a49c 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/instance/instances.hpp @@ -18,9 +18,11 @@ template struct ProverInstances_ { static constexpr size_t EXTENDED_LENGTH = (Flavor::MAX_TOTAL_RELATION_LENGTH - 1) * (NUM - 1) + 1; static constexpr size_t BATCHED_EXTENDED_LENGTH = (Flavor::MAX_TOTAL_RELATION_LENGTH - 1 + NUM - 1) * (NUM - 1) + 1; using RelationParameters = bb::RelationParameters>; + using OptimisedRelationParameters = bb::RelationParameters>; using RelationSeparator = std::array, NUM_SUBRELATIONS - 1>; ArrayType _data; RelationParameters relation_parameters; + OptimisedRelationParameters optimised_relation_parameters; RelationSeparator alphas; std::vector next_gate_challenges;