11 std::vector<fr> to_hash;
12 read(inputs_buffer, to_hash);
19 std::vector<fr> to_hash;
20 read(inputs_buffer, to_hash);
21 const size_t numHashes = to_hash.size() / 2;
22 std::vector<fr> results;
24 while (count < numHashes) {
26 { to_hash[count * 2], to_hash[count * 2 + 1] });
30 write(output, results);
38 std::vector<fr> to_permute;
39 read(inputs_buffer, to_permute);
43 std::copy(to_permute.begin(), to_permute.end(), input_state.data());
47 const std::vector<fr> results(results_array.begin(), results_array.end());
53 std::vector<fr> to_hash;
54 read(inputs_buffer, to_hash);
55 const size_t numHashes = to_hash.size();
56 fr result = to_hash[0];
58 while (count < numHashes) {
62 write(output, result);
static FF hash(const std::vector< FF > &input)
Hashes a vector of field elements.
Applies the Poseidon2 permutation function from https://eprint.iacr.org/2023/323.
Circuit form of Poseidon2 permutation from https://eprint.iacr.org/2023/323.
std::array< field_t< Builder >, t > State
static State permutation(Builder *builder, const State &input)
Circuit form of Poseidon2 permutation from https://eprint.iacr.org/2023/323.
WASM_EXPORT void poseidon2_hashes(fr::vec_in_buf inputs_buffer, fr::out_buf output)
WASM_EXPORT void poseidon2_hash_accumulate(fr::vec_in_buf inputs_buffer, fr::out_buf output)
WASM_EXPORT void poseidon2_hash(fr::vec_in_buf inputs_buffer, fr::out_buf output)
WASM_EXPORT void poseidon2_permutation(fr::vec_in_buf inputs_buffer, fr::vec_out_buf output)
Entry point for Barretenberg command-line interface.
void read(B &it, field2< base_field, Params > &value)
void write(B &buf, field2< base_field, Params > const &value)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
uint8_t * to_heap_buffer(T const &value)
static void serialize_to_buffer(const field &value, uint8_t *buffer)
const uint8_t * vec_in_buf