Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions cpp/src/barretenberg/grumpkin_srs_gen/grumpkin_srs_gen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@
#include "barretenberg/common/net.hpp"

const std::string protocol_name = "BARRETENBERG_GRUMPKIN_IPA_CRS";
/* Generates a monomial basis Grumpkin SRS for testing purposes.
We only provide functionality create a single transcript file.
The SRS has the form [1]_1, [x]_1, [x^2]_1, ... where x = 2. */
/**
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was out of date.

* @brief Generates a monomial basis Grumpkin SRS.
*
* @details We only provide functionality create a single transcript file.
*
*/
int main(int argc, char** argv)
{
std::vector<std::string> args(argv, argv + argc);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ StandardProver_<Flavor> StandardHonkComposerHelper_<Flavor>::create_prover(

return output_state;
}

template class StandardHonkComposerHelper_<honk::flavor::Standard>;
template class StandardHonkComposerHelper_<honk::flavor::StandardGrumpkin>;

} // namespace proof_system::honk
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,10 @@ template <StandardFlavor Flavor> class StandardHonkComposerHelper_ {
commitment_key = std::make_shared<typename PCSParams::CommitmentKey>(circuit_size, crs_factory_);
};
};

extern template class StandardHonkComposerHelper_<honk::flavor::Standard>;
extern template class StandardHonkComposerHelper_<honk::flavor::StandardGrumpkin>;
// TODO(#532): this pattern is weird; is this not instantiating the templates?
using StandardHonkComposerHelper = StandardHonkComposerHelper_<honk::flavor::Standard>;

using StandardGrumpkinHonkComposerHelper = StandardHonkComposerHelper_<honk::flavor::StandardGrumpkin>;
} // namespace proof_system::honk
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,8 @@ void UltraHonkComposerHelper_<Flavor>::compute_witness(CircuitConstructor& circu
template <UltraFlavor Flavor>
UltraProver_<Flavor> UltraHonkComposerHelper_<Flavor>::create_prover(CircuitConstructor& circuit_constructor)
{
finalize_circuit(circuit_constructor);
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't see a reason for composer helpers to have a function that proxies immediately to circuit_constructor.finalize_circuit so I made the change.

circuit_constructor.add_gates_to_ensure_all_polys_are_non_zero();
circuit_constructor.finalize_circuit();

compute_proving_key(circuit_constructor);
compute_witness(circuit_constructor);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ template <UltraFlavor Flavor> class UltraHonkComposerHelper_ {
bool contains_recursive_proof = false;
bool computed_witness = false;

UltraHonkComposerHelper_()
: crs_factory_(barretenberg::srs::get_crs_factory()){};

explicit UltraHonkComposerHelper_(std::shared_ptr<srs::factories::CrsFactory> crs_factory)
: crs_factory_(std::move(crs_factory))
{}
Expand All @@ -51,8 +54,6 @@ template <UltraFlavor Flavor> class UltraHonkComposerHelper_ {
UltraHonkComposerHelper_& operator=(UltraHonkComposerHelper_ const& other) noexcept = default;
~UltraHonkComposerHelper_() = default;

void finalize_circuit(CircuitConstructor& circuit_constructor) { circuit_constructor.finalize_circuit(); };

std::shared_ptr<ProvingKey> compute_proving_key(const CircuitConstructor& circuit_constructor);
std::shared_ptr<VerificationKey> compute_verification_key(const CircuitConstructor& circuit_constructor);

Expand All @@ -70,5 +71,7 @@ template <UltraFlavor Flavor> class UltraHonkComposerHelper_ {
};
extern template class UltraHonkComposerHelper_<honk::flavor::Ultra>;
extern template class UltraHonkComposerHelper_<honk::flavor::UltraGrumpkin>;
// TODO(#532): this pattern is weird; is this not instantiating the templates?
using UltraHonkComposerHelper = UltraHonkComposerHelper_<honk::flavor::Ultra>;
using UltraGrumpkinHonkComposerHelper = UltraHonkComposerHelper_<honk::flavor::UltraGrumpkin>;
} // namespace proof_system::honk
2 changes: 2 additions & 0 deletions cpp/src/barretenberg/honk/composer/standard_honk_composer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@ template <class Flavor> class StandardHonkComposer_ {
const std::string& err() const { return circuit_constructor.err(); };
void failure(std::string msg) { circuit_constructor.failure(msg); }
};

// TODO(#532): These using declarations instantiate the templates?
using StandardHonkComposer = StandardHonkComposer_<flavor::Standard>;
using StandardGrumpkinHonkComposer = StandardHonkComposer_<flavor::StandardGrumpkin>;
} // namespace proof_system::honk
206 changes: 111 additions & 95 deletions cpp/src/barretenberg/honk/composer/standard_honk_composer.test.cpp

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions cpp/src/barretenberg/honk/composer/ultra_honk_composer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ template <class Flavor> class UltraHonkComposer_ {

barretenberg::fr get_variable(const uint32_t index) const { return circuit_constructor.get_variable(index); }

void finalize_circuit() { circuit_constructor.finalize_circuit(); };

UltraProver_<Flavor> create_prover() { return composer_helper.create_prover(circuit_constructor); };
UltraVerifier_<Flavor> create_verifier() { return composer_helper.create_verifier(circuit_constructor); };

Expand Down
Loading