Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
witness_constant.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
11
12namespace acir_format {
13template <typename FF> struct WitnessOrConstant {
14
15 uint32_t index;
19 friend bool operator==(WitnessOrConstant const& lhs, WitnessOrConstant const& rhs) = default;
21 {
22 return WitnessOrConstant{
23 .index = index,
24 .value = FF::zero(),
25 .is_constant = false,
26 };
27 }
28
30 {
31 return WitnessOrConstant{
32 .index = bb::stdlib::IS_CONSTANT,
33 .value = value,
34 .is_constant = true,
35 };
36 }
37};
38
39template <typename Builder>
48
49template <typename Builder>
50bb::stdlib::cycle_group<Builder> to_grumpkin_point(const WitnessOrConstant<typename Builder::FF>& input_x,
51 const WitnessOrConstant<typename Builder::FF>& input_y,
52 const WitnessOrConstant<typename Builder::FF>& input_infinite,
53 const bb::stdlib::bool_t<Builder>& predicate,
55
56template <typename Builder>
58 const WitnessOrConstant<typename Builder::FF>& scalar_lo,
59 const WitnessOrConstant<typename Builder::FF>& scalar_hi,
60 const bb::stdlib::bool_t<Builder>& predicate,
62
63} // namespace acir_format
Implements boolean logic in-circuit.
Definition bool.hpp:59
cycle_group represents a group Element of the proving system's embedded curve, i.e....
Represents a member of the Grumpkin curve scalar field (i.e. BN254 base field).
static field_t from_witness_index(Builder *ctx, uint32_t witness_index)
Definition field.cpp:62
AluTraceBuilder builder
Definition alu.test.cpp:124
bb::stdlib::cycle_group< Builder > to_grumpkin_point(const WitnessOrConstant< typename Builder::FF > &input_x, const WitnessOrConstant< typename Builder::FF > &input_y, const WitnessOrConstant< typename Builder::FF > &input_infinite, const bb::stdlib::bool_t< Builder > &predicate, Builder &builder)
Convert inputs representing a Grumpkin point into a cycle_group element.
stdlib::field_t< Builder > field_ct
bb::stdlib::cycle_group< Builder >::cycle_scalar to_grumpkin_scalar(const WitnessOrConstant< typename Builder::FF > &scalar_lo, const WitnessOrConstant< typename Builder::FF > &scalar_hi, const bb::stdlib::bool_t< Builder > &predicate, Builder &builder)
Convert inputs representing a Grumpkin scalar into a cycle_scalar element.
bb::stdlib::field_t< Builder > to_field_ct(const WitnessOrConstant< typename Builder::FF > &input, Builder &builder)
MSGPACK_FIELDS(index, value, is_constant)
static WitnessOrConstant from_index(uint32_t index)
static WitnessOrConstant from_constant(FF value)
friend bool operator==(WitnessOrConstant const &lhs, WitnessOrConstant const &rhs)=default