19 using Proof = std::vector<DataType>;
50 return bb::stdlib::field_conversion::convert_challenge<Builder, T>(*
builder, challenge);
55 return bb::stdlib::field_conversion::calc_num_bn254_frs<Builder, T>();
61 ASSERT(frs[0].get_context() !=
nullptr);
63 return bb::stdlib::field_conversion::convert_from_bn254_frs<Builder, T>(*
builder, frs);
68 return bb::stdlib::field_conversion::convert_to_bn254_frs<Builder, T>(
element);
#define ASSERT(expression,...)
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
static FF hash(const std::vector< FF > &input)
Hashes a vector of field elements.
cycle_scalar represents a member of the cycle curve SCALAR FIELD. This is NOT the native circuit fiel...
static constexpr size_t LO_BITS
static constexpr size_t HI_BITS
void create_range_constraint(size_t num_bits, std::string const &msg="field_t::range_constraint") const
Let x = *this.normalize(), constrain x.v < 2^{num_bits}.
Builder * get_context() const
const std::vector< FF > data
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...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static DataType hash(const std::vector< DataType > &data)
static T convert_challenge(const DataType &challenge)
static constexpr size_t calc_num_data_types()
static std::array< DataType, 2 > split_challenge(const DataType &challenge)
Split a challenge field element into two half-width challenges.
std::vector< DataType > Proof
static T deserialize(std::span< const DataType > frs)
static std::vector< DataType > serialize(const T &element)