Skip to content

Commit

Permalink
Add basic arithmetization class.
Browse files Browse the repository at this point in the history
  • Loading branch information
codygunton committed Mar 30, 2023
1 parent cc31aab commit 2a6f6b6
Showing 1 changed file with 25 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include <cstddef>

namespace arithmetization {

template <size_t _num_wires, size_t _num_gates> struct Arithmetization {
static constexpr size_t num_wires = 3;
static constexpr size_t num_selectors = 7;
// Note: For even greater modularity, in eace instantiation we could specify a list of components here, where a
// component is a meaningful collection of functions for creating gates, as in:
//
// struct Component {
// using Arithmetic = component::Arithmetic3Wires;
// using RangeConstraints = component::Base4Accumulators or component::GenPerm or...
// using LooupTables = component::Plookup4Wire or component::CQ8Wire or...
// ...
// };
//
// We should only do this if it becomes necessary or convenient, as might happen when implementing certain execution
// trace layout optimizations.
};

using Standard = Arithmetization<3, 7>;
using Turbo = Arithmetization<4, 11>;

} // namespace arithmetization

0 comments on commit 2a6f6b6

Please sign in to comment.