22template <
class Params>
struct alignas(32) field;
24namespace arithmetization {
25template <
typename FF_>
class Ultra;
27namespace proof_system {
28template <
class FF>
class StandardCircuitBuilder_;
29using StandardCircuitBuilder = StandardCircuitBuilder_<barretenberg::field<barretenberg::Bn254FrParams>>;
30using StandardGrumpkinCircuitBuilder = StandardCircuitBuilder_<barretenberg::field<barretenberg::Bn254FqParams>>;
31template <
class Arithmetization>
class UltraCircuitBuilder_;
32using UltraCircuitBuilder =
33 UltraCircuitBuilder_<arithmetization::Ultra<barretenberg::field<barretenberg::Bn254FrParams>>>;
34template <
class FF>
class GoblinUltraCircuitBuilder_;
35using GoblinUltraCircuitBuilder = GoblinUltraCircuitBuilder_<barretenberg::field<barretenberg::Bn254FrParams>>;
38#define EXTERN_STDLIB_TYPE(stdlib_type) \
39 extern template class stdlib_type<proof_system::StandardCircuitBuilder>; \
40 extern template class stdlib_type<proof_system::UltraCircuitBuilder>; \
41 extern template class stdlib_type<proof_system::GoblinUltraCircuitBuilder>;
43#define EXTERN_STDLIB_METHOD(stdlib_method) \
44 extern template stdlib_method(proof_system::StandardCircuitBuilder); \
45 extern template stdlib_method(proof_system::UltraCircuitBuilder); \
46 extern template stdlib_method(proof_system::GoblinUltraCircuitBuilder);
48#define EXTERN_STDLIB_TYPE_VA(stdlib_type, ...) \
49 extern template class stdlib_type<proof_system::StandardCircuitBuilder, __VA_ARGS__>; \
50 extern template class stdlib_type<proof_system::UltraCircuitBuilder, __VA_ARGS__>; \
51 extern template class stdlib_type<proof_system::GoblinUltraCircuitBuilder, __VA_ARGS__>;
53#define EXTERN_STDLIB_BASIC_TYPE(stdlib_type) extern template class stdlib_type<proof_system::StandardCircuitBuilder>;
55#define EXTERN_STDLIB_BASIC_TYPE_VA(stdlib_type, ...) \
56 extern template class stdlib_type<proof_system::StandardCircuitBuilder, __VA_ARGS__>;
58#define EXTERN_STDLIB_ULTRA_TYPE(stdlib_type) \
59 extern template class stdlib_type<proof_system::UltraCircuitBuilder>; \
60 extern template class stdlib_type<proof_system::GoblinUltraCircuitBuilder>;
62#define EXTERN_STDLIB_ULTRA_TYPE_VA(stdlib_type, ...) \
63 extern template class stdlib_type<proof_system::UltraCircuitBuilder, __VA_ARGS__>; \
64 extern template class stdlib_type<proof_system::GoblinUltraCircuitBuilder, __VA_ARGS__>;
66#define EXTERN_STDLIB_ULTRA_METHOD(stdlib_method) \
67 extern template stdlib_method(proof_system::UltraCircuitBuilder); \
68 extern template stdlib_method(proof_system::GoblinUltraCircuitBuilder);
constexpr_utils defines some helper methods that perform some stl-equivalent operations but in a cons...
Definition: constexpr_utils.hpp:16
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6