20 const auto base_points =
context.generators->get(inputs.size(),
context.offset,
context.domain_separator);
26 for (
size_t i = 0; i < inputs.size(); ++i) {
29 points.emplace_back(base_points[i]);
43 const auto base_points =
context.generators->get(inputs.size(),
context.offset,
context.domain_separator);
49 for (
size_t i = 0; i < inputs.size(); ++i) {
53 points.emplace_back(base_points[i]);
69 const size_t num_bytes = input.
size();
70 const size_t bytes_per_element = 31;
71 size_t num_elements =
static_cast<size_t>(num_bytes % bytes_per_element != 0) + (num_bytes / bytes_per_element);
74 for (
size_t i = 0; i < num_elements; ++i) {
75 size_t bytes_to_slice = 0;
76 if (i == num_elements - 1) {
77 bytes_to_slice = num_bytes - (i * bytes_per_element);
79 bytes_to_slice = bytes_per_element;
85 if (elements.size() < 2) {
88 hashed =
hash({ elements[0], elements[1] },
context);
89 for (
size_t i = 2; i < elements.size(); ++i) {
Performs pedersen hashes!
Represents a dynamic array of bytes in-circuit.
byte_array slice(size_t offset) const
Slice bytes from the byte array starting at offset. Does not add any constraints.
::bb::stdlib::cycle_scalar< Builder > cycle_scalar
static cycle_group batch_mul(const std::vector< cycle_group > &base_points, const std::vector< BigScalarField > &scalars, GeneratorContext context={})
cycle_scalar represents a member of the cycle curve SCALAR FIELD. This is NOT the native circuit fiel...
static cycle_scalar create_from_bn254_scalar(const field_t &_in, bool skip_primality_test=false)
Use when we want to multiply a group element by a string of bits of known size. N....
stdlib class that evaluates in-circuit pedersen hashes, consistent with behavior in crypto::pedersen_...
static field_ct hash_buffer(const stdlib::byte_array< Builder > &input, GeneratorContext context={})
Hash a byte_array.
static field_ct hash_skip_field_validation(const std::vector< field_ct > &in, GeneratorContext context={})
typename cycle_group< Builder >::Curve EmbeddedCurve
static field_ct hash(const std::vector< field_ct > &in, GeneratorContext context={})
StrictMock< MockContext > context
stdlib::field_t< Builder > field_ct
void hash(State &state) noexcept
std::conditional_t< IsGoblinBigGroup< C, Fq, Fr, G >, element_goblin::goblin_element< C, goblin_field< C >, Fr, G >, element_default::element< C, Fq, Fr, G > > element
element wraps either element_default::element or element_goblin::goblin_element depending on parametr...
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept