30 uint64_t parts[4] = { 0, 0, 0, 0 };
32 for (
size_t i = 0; i < (buffer_size + 7) / 8; i++) {
33 size_t to_read = (buffer_size - i * 8) < 8 ? buffer_size - i * 8 : 8;
36 return uint256_t(parts[0], parts[1], parts[2], parts[3]);
48 std::vector<ECCVMOperation> eccvm_ops;
50 size_t size_left = size;
55 eccvm_ops.emplace_back(op);
71 std::vector<ECCVMOperation> eccvm_ops;
74 size_t size_left = size;
93 if (eccvm_ops.empty()) {
98 const auto p_x =
uint256_t(0xd3c208c16d87cfd3, 0xd97816a916871ca8, 0x9b85045b68181585, 0x30644e72e131a02);
99 const auto p_y =
uint256_t(0x3ce1cc9c7e645a83, 0x2edac647851e3ac5, 0xd0cbe61fced2bc53, 0x1a76dae6d3272396);
100 auto padding_element =
G1(p_x, p_y);
101 auto padding_scalar = -
Fr::one();
103 ecc_op_queue->set_eccvm_ops_for_fuzzing(eccvm_ops);
104 ecc_op_queue->mul_accumulate(padding_element, padding_scalar);
107 return std::make_tuple(batching_challenge, x, ecc_op_queue);
#define BB_ASSERT_LTE(left, right,...)
typename Group::affine_element AffineElement
const std::vector< FF > data
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr field one()
curve::BN254::BaseField Fq
std::optional< std::tuple< Fq, Fq, std::shared_ptr< ECCOpQueue > > > parse_and_construct_opqueue(const unsigned char *data, size_t size)
Try to parse out the batching and evaluating challenges and then the ECCOpQueue from the data.
uint256_t read_uint256(const uint8_t *data, size_t buffer_size=32)
std::vector< ECCVMOperation > parse_operations(const unsigned char *data, size_t size)
Parse raw operations for ECCOpQueue from the data stream.
curve::BN254::AffineElement G1