barretenberg
Loading...
Searching...
No Matches
pedersen.hpp
1#pragma once
2#include "barretenberg/dsl/types.hpp"
3#include <vector>
4
5namespace acir_format {
6
7// P = xG + bH
9 std::vector<uint32_t> scalars;
10 uint32_t hash_index;
11
12 uint32_t result_x;
13 uint32_t result_y;
14
15 friend bool operator==(PedersenConstraint const& lhs, PedersenConstraint const& rhs) = default;
16};
17
19 std::vector<uint32_t> scalars;
20 uint32_t hash_index;
21
22 uint32_t result;
23
24 friend bool operator==(PedersenHashConstraint const& lhs, PedersenHashConstraint const& rhs) = default;
25};
26
27template <typename Builder> void create_pedersen_constraint(Builder& builder, const PedersenConstraint& input);
28template <typename Builder> void create_pedersen_hash_constraint(Builder& builder, const PedersenHashConstraint& input);
29
30template <typename B> inline void read(B& buf, PedersenConstraint& constraint)
31{
32 using serialize::read;
33 read(buf, constraint.scalars);
34 read(buf, constraint.hash_index);
35 read(buf, constraint.result_x);
36 read(buf, constraint.result_y);
37}
38
39template <typename B> inline void write(B& buf, PedersenConstraint const& constraint)
40{
41 using serialize::write;
42 write(buf, constraint.scalars);
43 write(buf, constraint.hash_index);
44 write(buf, constraint.result_x);
45 write(buf, constraint.result_y);
46}
47
48} // namespace acir_format
Definition: ultra_circuit_builder.hpp:31
Definition: pedersen.hpp:8
Definition: pedersen.hpp:18