Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
27079ce
Add flavor & shuffle; everything builds with clang
codygunton Mar 31, 2023
6bc56b1
Template composer lib; split plonk tests pass.
codygunton Apr 6, 2023
7546bc3
WIP on building Honk
codygunton Apr 11, 2023
18a85ab
set log_circuit_size in pk
codygunton Apr 11, 2023
ebf82e8
"Everything builds" in clang!
codygunton Apr 11, 2023
c8d75c7
"It builds" again after rebase
codygunton Apr 15, 2023
cef40e5
Make flavor base class, proof_system_tests pass.
codygunton Apr 17, 2023
08b6c34
Less inheritance
codygunton Apr 17, 2023
06ce1dc
Good through creation of prover.
codygunton Apr 17, 2023
9073ecf
Fix compilation.
codygunton Apr 18, 2023
05db2a3
Bring back evaluation_domain constructor.
codygunton Apr 18, 2023
fdbf396
Work on prover (it builds again!)
codygunton Apr 19, 2023
1a7de69
BaseCase runs through but fails.
codygunton Apr 19, 2023
27ffbeb
Add table polys and reinstate in prover lib.
codygunton Apr 19, 2023
43bc9f1
Change assignment operators
codygunton Apr 19, 2023
f10c9ce
Reinstate some more polynomials.
codygunton Apr 19, 2023
549cad1
Fix grand product test.
codygunton Apr 20, 2023
5825d73
A bit of tidying up.
codygunton Apr 20, 2023
7320e4c
Debugging: sigma polys make it to loop in test.
codygunton Apr 20, 2023
6fd6206
Notes after lookover.
codygunton Apr 20, 2023
f97be70
See failures in AssertEquals test.
codygunton Apr 20, 2023
e2c18d5
Cleanup-ish
codygunton Apr 20, 2023
8155d48
Logs showing change in sigma polys.
codygunton Apr 20, 2023
924d562
move wire index incrementer inside loop in compute perm mapping
ledwards2225 Apr 20, 2023
c279b8b
Comments
codygunton Apr 20, 2023
ac03bf8
commitment label fix
ledwards2225 Apr 20, 2023
92e3bb0
Merge branch 'cg/flavor' of github.com:AztecProtocol/barretenberg int…
codygunton Apr 20, 2023
56a5b0a
New vk
codygunton Apr 20, 2023
43fdc20
WIP on verifier (build but failing assert)
codygunton Apr 20, 2023
a25deb3
WIP on Gemini verification
codygunton Apr 21, 2023
8b82d58
WIP sumcheck verifier passes but Gemini fails.
codygunton Apr 21, 2023
84bbeed
proof bbytes agree with master
ledwards2225 Apr 21, 2023
ed68972
WIP
codygunton Apr 21, 2023
2bed95e
fix typo, verifies
ledwards2225 Apr 21, 2023
7d9b768
Merge branch 'cg/flavor' of github.com:AztecProtocol/barretenberg int…
codygunton Apr 21, 2023
9192d6b
LookupGrandProduct passes.
codygunton Apr 22, 2023
a6f1875
WIP debugging correctness test
codygunton Apr 22, 2023
dcbabf1
Get rid of old flavor file.
codygunton Apr 24, 2023
a843aea
fix and simplify relation consistency tests
ledwards2225 Apr 24, 2023
b9ef0bf
fix expected manifest in transcript tests
ledwards2225 Apr 24, 2023
4410fdb
exploring some simplifications in the Flavor data classes
ledwards2225 Apr 24, 2023
a4a6157
simplifying flavor classes a bit
ledwards2225 Apr 25, 2023
881da26
make selector order match that in ultra composer; relation correctnes…
ledwards2225 Apr 25, 2023
ea20222
Cheaply fix Flavor.Standard.
codygunton Apr 25, 2023
94b4cc3
Enrich circuit constructor
codygunton Apr 26, 2023
44430c0
Reduce boilerplate.
codygunton Apr 26, 2023
bdb25d6
Revert "Cheaply fix Flavor.Standard."
codygunton Apr 26, 2023
67e5d5b
Merge branch 'cg/flavor' of github.com:AztecProtocol/barretenberg int…
codygunton Apr 26, 2023
e867a9c
Trip skipping segfaulting incomplete test.
codygunton Apr 26, 2023
cfc911e
Reorg CCI workflow
codygunton Apr 26, 2023
727a47e
Fix CCI workflow.
codygunton Apr 26, 2023
154da15
Initialize proving key in SetUp().
codygunton Apr 26, 2023
62a12d7
Write test idiomatically.
codygunton Apr 26, 2023
19bedf0
Change num_randomized_gates.
codygunton Apr 26, 2023
5a77e5b
Fix typo in pk setup.
codygunton Apr 26, 2023
4d255db
Splitting out biggroup tests saves no time.
codygunton Apr 26, 2023
b9b4ed8
initial merge
ledwards2225 Apr 26, 2023
3589b0e
getting things to build post master merge; all previously passing tes…
ledwards2225 Apr 26, 2023
6601e97
well ok now its building anyway
ledwards2225 Apr 26, 2023
d53aede
lookup relation consistency tests passing
ledwards2225 Apr 26, 2023
893d6ae
reinstated UH composer tests passing
ledwards2225 Apr 26, 2023
2f24618
all tests reinstated and passing!
ledwards2225 Apr 26, 2023
d0732c0
new ProvingKey and WiP on making everything use the wires in the pkey
ledwards2225 Apr 26, 2023
06116f5
store all witness polys in the provng key for standard and ultra honk
ledwards2225 Apr 27, 2023
d64b9f8
Small WORKTODOs
codygunton Apr 27, 2023
2c83444
fix wrong wire access in field tests
ledwards2225 Apr 27, 2023
5c54ee0
WORKTODO: read wires
codygunton Apr 27, 2023
0a6d1a9
Small WORKTODOs
codygunton Apr 27, 2023
b1e2617
Prover ~> StandardProver_, simly for Honk
codygunton Apr 27, 2023
b8884ca
Small WORKTODOs
codygunton Apr 27, 2023
5f9f19e
Delete test due to significant drift over time.
codygunton Apr 27, 2023
d1631d0
Fix commitment labels
codygunton Apr 27, 2023
a768d8f
Clean up test
codygunton Apr 27, 2023
ecb272f
Make MAX_RELATION_LENGTH issue.
codygunton Apr 27, 2023
0684049
Reference zip issue
codygunton Apr 27, 2023
916a225
Another opportunity to zip
codygunton Apr 27, 2023
1a0c774
Merge branch 'cg/flavor' of github.com:AztecProtocol/barretenberg int…
codygunton Apr 27, 2023
d197327
Remove unused template argument.
codygunton Apr 27, 2023
59ceaf7
Update comment.
codygunton Apr 27, 2023
dffbefd
Ranged `for` loop and note.
codygunton Apr 27, 2023
ac0414d
Clarify complicated loop.
codygunton Apr 27, 2023
ffdffef
Note on ComposerType
codygunton Apr 28, 2023
f881a12
Add note on ComposerType
codygunton Apr 28, 2023
fb3b0db
Fix the dirty hack.
codygunton Apr 28, 2023
3c17edd
Generalize verifier, nix unused template param
codygunton Apr 28, 2023
dc3e03a
Fix reverted comments (?)
codygunton Apr 28, 2023
bfe8ce5
Fix compilation.
codygunton Apr 28, 2023
e98ca5d
Clean up comments
codygunton Apr 28, 2023
c7fc7cb
More cleanup of TODOs
codygunton Apr 28, 2023
1611950
Rename template args in Flavor.
codygunton Apr 28, 2023
9a30d6e
Add handle types for uniformity
codygunton Apr 28, 2023
64836c8
Rename the base classes.
codygunton Apr 28, 2023
a69185c
Straggler
codygunton Apr 28, 2023
66ac270
Some hierarchy simplifications.
codygunton Apr 28, 2023
87499ff
Split flavor
codygunton Apr 28, 2023
372f14b
Less verbose name
codygunton Apr 28, 2023
2c96ff3
UH prover implemented through sumcheck
ledwards2225 Apr 28, 2023
df37f58
Comments and clarity.
codygunton Apr 28, 2023
859e5dd
Rename "data" to "entities"
codygunton Apr 28, 2023
2bdacb7
Use access specifiers in flavors.
codygunton Apr 28, 2023
aea115f
successful creation of shell verifier
ledwards2225 Apr 28, 2023
4dfe945
Explicitness in flavor
codygunton Apr 28, 2023
0be17f0
Move constructor from array and clean up.
codygunton Apr 28, 2023
8421b49
Add huge introductory comment.
codygunton Apr 28, 2023
e89aeef
Document flavor class templates.
codygunton Apr 28, 2023
c6dc98a
num_wires ~> NUM_WIRES
codygunton Apr 28, 2023
2a9af17
Comment standard flavor; resolve last WORKTODO.
codygunton Apr 28, 2023
d2b8c32
verifier running through sumcheck but failing after 0th round
ledwards2225 Apr 29, 2023
91913f9
Comments and WitnessEntities_
codygunton May 1, 2023
0c33146
Remove redundant template arg.
codygunton May 1, 2023
93d6d61
Symmetry of proving key.
codygunton May 1, 2023
604e68e
Remove some boilerplate
codygunton May 1, 2023
f25d727
Share proving key constructor.
codygunton May 1, 2023
79fdf77
sumcheck is verifying for simple add gate circuit
ledwards2225 May 1, 2023
f7eec59
Adding PCS but commenting out due to zero poly issue
ledwards2225 May 1, 2023
c951806
reinstate all UH composer tests to run but only through Sumcheck
ledwards2225 May 1, 2023
ce0ac06
WiP non zero poly enforcement contraint
ledwards2225 May 1, 2023
1ddb451
Rename members; resue VK constructors.
codygunton May 1, 2023
050bb38
Paste standard flavor comments into ultra flavor.
codygunton May 1, 2023
e6d7ebe
Cleanup
codygunton May 1, 2023
623e11a
Merge branch 'master' into cg/flavor
codygunton May 1, 2023
642f61e
gen perm relation passes consistency and correctness but doesnt verify
ledwards2225 May 2, 2023
260825e
fix gen perm relation, all tests pass
ledwards2225 May 2, 2023
2757e51
elliptic widget; consistency check only
ledwards2225 May 2, 2023
3b63030
elliptic curve relation correctness passing
ledwards2225 May 3, 2023
08bcfec
elliptic relation integrated into prover and verifier
ledwards2225 May 3, 2023
12b0ea4
Merge branch 'master' into cg/flavor
codygunton May 4, 2023
2c70458
Merge branch 'master' into cg/flavor
codygunton May 4, 2023
c7b3e30
Add cci config line back in.
codygunton May 4, 2023
69f649b
all composer tests passing for full UH prover and verifier
ledwards2225 May 4, 2023
4a8d52d
Low-lying fixes like typos.
codygunton May 4, 2023
b9c2952
Cheaply reintroduce equality check.
codygunton May 4, 2023
503aca0
Leave note on unfinished tests
codygunton May 4, 2023
75589bf
Make todo an issue
codygunton May 4, 2023
aa6d063
Add failure case.
codygunton May 4, 2023
7053096
Clarify some flavor tests.
codygunton May 4, 2023
e7a997d
Remove some logging.
codygunton May 4, 2023
034c541
Add assert suggested by Kesha.
codygunton May 4, 2023
0561e5d
Fix typo.
codygunton May 4, 2023
5282d68
Remove proof printing function.
codygunton May 4, 2023
b47a122
cleaning up TODOs and adding issue numbers as appropriate
ledwards2225 May 4, 2023
86a6fa8
Merge branch 'cg/flavor' into lde/uh
ledwards2225 May 4, 2023
74f32cf
fixes after merge
ledwards2225 May 4, 2023
d03fdb5
Merge branch 'master' into lde/uh
ledwards2225 May 4, 2023
0a25986
fix merge issues
ledwards2225 May 4, 2023
0434345
add issue number to new ultra composer tests
ledwards2225 May 4, 2023
b40836a
cleanup
ledwards2225 May 5, 2023
2e58114
aux relation completely integrated
ledwards2225 May 5, 2023
102618a
address Pr comments
ledwards2225 May 11, 2023
0b2b345
Merge branch 'master' into lde/uh
ledwards2225 May 11, 2023
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
12 changes: 6 additions & 6 deletions cpp/src/barretenberg/crypto/generators/generator_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace {
// Parameters for generator table construction
struct GeneratorParameters {
size_t num_default_generators; // Number of unique base points with default main index with precomputed ladders
size_t num_hash_indices; // Number of unique hash indices
size_t num_hash_indices; // Number of unique hash indices
size_t num_generators_per_hash_index; // Number of generators per hash index
size_t hash_indices_generator_offset; // Offset for hash index generators
};
Expand All @@ -16,13 +16,13 @@ struct GeneratorParameters {
// This hack is to avoid breakage due to generators in aztec circuits while maintaining compatibility
// with the barretenberg master.
#ifdef BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK
constexpr GeneratorParameters GEN_PARAMS = {BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK};
constexpr GeneratorParameters GEN_PARAMS = { BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK };
#else
#ifdef __wasm__
constexpr GeneratorParameters GEN_PARAMS = {32, 16, 8, 2048};
constexpr GeneratorParameters GEN_PARAMS = { 32, 16, 8, 2048 };
// TODO need to resolve memory out of bounds when these are too high
#else
constexpr GeneratorParameters GEN_PARAMS = {2048, 16, 8, 2048};
constexpr GeneratorParameters GEN_PARAMS = { 2048, 16, 8, 2048 };
#endif
#endif

Expand Down Expand Up @@ -277,8 +277,8 @@ generator_data const& get_generator_data(generator_index_t index)
}
ASSERT(index.index <= GEN_PARAMS.num_hash_indices);
ASSERT(index.sub_index < GEN_PARAMS.num_generators_per_hash_index);
return *global_generator_data[GEN_PARAMS.hash_indices_generator_offset + ((index.index - 1) * GEN_PARAMS.num_generators_per_hash_index) +
index.sub_index];
return *global_generator_data[GEN_PARAMS.hash_indices_generator_offset +
((index.index - 1) * GEN_PARAMS.num_generators_per_hash_index) + index.sub_index];
}

const fixed_base_ladder* generator_data::get_ladder(size_t num_bits) const
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,27 +146,25 @@ UltraProver UltraHonkComposerHelper::create_prover(CircuitConstructor& circuit_c
return output_state;
}

// /**
// * Create verifier: compute verification key,
// * initialize verifier with it and an initial manifest and initialize commitment_scheme.
// *
// * @return The verifier.
// * */
// plonk::UltraVerifier UltraHonkComposerHelper::create_verifier(
// const CircuitConstructor& circuit_constructor)
// {
// auto verification_key = compute_verification_key(circuit_constructor);
/**
* Create verifier: compute verification key,
* initialize verifier with it and an initial manifest and initialize commitment_scheme.
*
* @return The verifier.
* */
UltraVerifier UltraHonkComposerHelper::create_verifier(const CircuitConstructor& circuit_constructor)
{
auto verification_key = compute_verification_key(circuit_constructor);

// plonk::UltraVerifier output_state(verification_key,
// create_manifest(circuit_constructor.public_inputs.size()));
UltraVerifier output_state(verification_key);

// std::unique_ptr<plonk::KateCommitmentScheme<plonk::ultra_settings>> kate_commitment_scheme =
// std::make_unique<plonk::KateCommitmentScheme<plonk::ultra_settings>>();
// TODO(Cody): This should be more generic
auto kate_verification_key = std::make_unique<pcs::kzg::VerificationKey>("../srs_db/ignition");

// output_state.commitment_scheme = std::move(kate_commitment_scheme);
output_state.kate_verification_key = std::move(kate_verification_key);

// return output_state;
// }
return output_state;
}

std::shared_ptr<UltraHonkComposerHelper::Flavor::ProvingKey> UltraHonkComposerHelper::compute_proving_key(
const CircuitConstructor& circuit_constructor)
Expand Down Expand Up @@ -296,50 +294,65 @@ std::shared_ptr<UltraHonkComposerHelper::Flavor::ProvingKey> UltraHonkComposerHe
return proving_key;
}

// /**
// * Compute verification key consisting of selector precommitments.
// *
// * @return Pointer to created circuit verification key.
// * */
// std::shared_ptr<VerificationKey> UltraHonkComposerHelper::compute_verification_key(
// const CircuitConstructor& circuit_constructor)
// {
// if (verification_key) {
// return verification_key;
// }

// if (!proving_key) {
// compute_proving_key(circuit_constructor);
// }
// verification_key = compute_verification_key_common(proving_key,
// crs_factory_->get_verifier_crs());

// verification_key->composer_type = type; // Invariably plookup for this class.

// // See `add_recusrive_proof()` for how this recursive data is assigned.
// verification_key->recursive_proof_public_input_indices =
// std::vector<uint32_t>(recursive_proof_public_input_indices.begin(),
// recursive_proof_public_input_indices.end());

// verification_key->contains_recursive_proof = contains_recursive_proof;

// return verification_key;
// }

// void UltraHonkComposerHelper::add_table_column_selector_poly_to_proving_key(
// polynomial& selector_poly_lagrange_form, const std::string& tag)
// {
// polynomial selector_poly_lagrange_form_copy(selector_poly_lagrange_form, proving_key->small_domain.size);

// selector_poly_lagrange_form.ifft(proving_key->small_domain);
// auto& selector_poly_coeff_form = selector_poly_lagrange_form;

// polynomial selector_poly_coset_form(selector_poly_coeff_form, proving_key->circuit_size * 4);
// selector_poly_coset_form.coset_fft(proving_key->large_domain);

// proving_key->polynomial_store.put(tag, std::move(selector_poly_coeff_form));
// proving_key->polynomial_store.put(tag + "_lagrange", std::move(selector_poly_lagrange_form_copy));
// proving_key->polynomial_store.put(tag + "_fft", std::move(selector_poly_coset_form));
// }
/**
* Compute verification key consisting of selector precommitments.
*
* @return Pointer to created circuit verification key.
* */
std::shared_ptr<UltraHonkComposerHelper::VerificationKey> UltraHonkComposerHelper::compute_verification_key(
const CircuitConstructor& circuit_constructor)
{
if (verification_key) {
return verification_key;
}

if (!proving_key) {
compute_proving_key(circuit_constructor);
}

verification_key = std::make_shared<UltraHonkComposerHelper::VerificationKey>(proving_key->circuit_size,
proving_key->num_public_inputs,
crs_factory_->get_verifier_crs(),
proving_key->composer_type);

// TODO(kesha): Dirty hack for now. Need to actually make commitment-agnositc
auto commitment_key = pcs::kzg::CommitmentKey(proving_key->circuit_size, "../srs_db/ignition");

// Compute and store commitments to all precomputed polynomials
verification_key->q_m = commitment_key.commit(proving_key->q_m);
verification_key->q_l = commitment_key.commit(proving_key->q_l);
verification_key->q_r = commitment_key.commit(proving_key->q_r);
verification_key->q_o = commitment_key.commit(proving_key->q_o);
verification_key->q_4 = commitment_key.commit(proving_key->q_4);
verification_key->q_c = commitment_key.commit(proving_key->q_c);
verification_key->q_arith = commitment_key.commit(proving_key->q_arith);
verification_key->q_sort = commitment_key.commit(proving_key->q_sort);
verification_key->q_elliptic = commitment_key.commit(proving_key->q_elliptic);
verification_key->q_aux = commitment_key.commit(proving_key->q_aux);
verification_key->q_lookup = commitment_key.commit(proving_key->q_lookup);
verification_key->sigma_1 = commitment_key.commit(proving_key->sigma_1);
verification_key->sigma_2 = commitment_key.commit(proving_key->sigma_2);
verification_key->sigma_3 = commitment_key.commit(proving_key->sigma_3);
verification_key->sigma_4 = commitment_key.commit(proving_key->sigma_4);
verification_key->id_1 = commitment_key.commit(proving_key->id_1);
verification_key->id_2 = commitment_key.commit(proving_key->id_2);
verification_key->id_3 = commitment_key.commit(proving_key->id_3);
verification_key->id_4 = commitment_key.commit(proving_key->id_4);
verification_key->table_1 = commitment_key.commit(proving_key->table_1);
verification_key->table_2 = commitment_key.commit(proving_key->table_2);
verification_key->table_3 = commitment_key.commit(proving_key->table_3);
verification_key->table_4 = commitment_key.commit(proving_key->table_4);
verification_key->lagrange_first = commitment_key.commit(proving_key->lagrange_first);
verification_key->lagrange_last = commitment_key.commit(proving_key->lagrange_last);

// // See `add_recusrive_proof()` for how this recursive data is assigned.
// verification_key->recursive_proof_public_input_indices =
// std::vector<uint32_t>(recursive_proof_public_input_indices.begin(),
// recursive_proof_public_input_indices.end());

// verification_key->contains_recursive_proof = contains_recursive_proof;

return verification_key;
}

} // namespace proof_system::honk
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include "barretenberg/srs/reference_string/file_reference_string.hpp"
#include "barretenberg/plonk/proof_system/proving_key/proving_key.hpp"
#include "barretenberg/honk/proof_system/ultra_prover.hpp"
// #include "barretenberg/plonk/proof_system/verifier/verifier.hpp"
#include "barretenberg/honk/proof_system/ultra_verifier.hpp"

#include <cstddef>
#include <memory>
Expand Down Expand Up @@ -61,12 +61,12 @@ class UltraHonkComposerHelper {
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);
std::shared_ptr<VerificationKey> compute_verification_key(const CircuitConstructor& circuit_constructor);

void compute_witness(CircuitConstructor& circuit_constructor);

UltraProver create_prover(CircuitConstructor& circuit_constructor);
// UltraVerifier create_verifier(const CircuitConstructor& circuit_constructor);
UltraVerifier create_verifier(const CircuitConstructor& circuit_constructor);

void add_table_column_selector_poly_to_proving_key(polynomial& small, const std::string& tag);
};
Expand Down
13 changes: 11 additions & 2 deletions cpp/src/barretenberg/honk/composer/ultra_honk_composer.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once
#include "barretenberg/proof_system/plookup_tables/plookup_tables.hpp"
#include "barretenberg/honk/proof_system/ultra_prover.hpp"
#include "barretenberg/honk/proof_system/ultra_verifier.hpp"
#include "barretenberg/proof_system/circuit_constructors/ultra_circuit_constructor.hpp"
#include "barretenberg/honk/composer/composer_helper/ultra_honk_composer_helper.hpp"
#include "barretenberg/honk/flavor/ultra.hpp"
Expand Down Expand Up @@ -51,7 +52,12 @@ class UltraHonkComposer {
void finalize_circuit() { circuit_constructor.finalize_circuit(); };

UltraProver create_prover() { return composer_helper.create_prover(circuit_constructor); };
// UltraVerifier create_verifier() { return composer_helper.create_verifier(circuit_constructor); };
UltraVerifier create_verifier() { return composer_helper.create_verifier(circuit_constructor); };

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

void create_add_gate(const add_triple& in) { circuit_constructor.create_add_gate(in); }

Expand Down Expand Up @@ -118,7 +124,10 @@ class UltraHonkComposer {
// accumulator_triple create_and_constraint(const uint32_t a, const uint32_t b, const size_t num_bits);
// accumulator_triple create_xor_constraint(const uint32_t a, const uint32_t b, const size_t num_bits);

// uint32_t put_constant_variable(const barretenberg::fr& variable);
uint32_t put_constant_variable(const barretenberg::fr& variable)
{
return circuit_constructor.put_constant_variable(variable);
};

// size_t get_num_constant_gates() const override { return 0; }

Expand Down
Loading