Barretenberg
The ZK-SNARK library at the core of Aztec
|
Typedefs | |
template<typename Builder > | |
using | fr = field_t< Builder > |
template<typename Builder > | |
using | fq = bigfield< Builder, bb::Bn254FqParams > |
template<typename Builder > | |
using | bn254_element = element< Builder, fq< Builder >, fr< Builder >, curve::BN254::Group > |
template<typename Builder > | |
using | grumpkin_element = cycle_group< Builder > |
Functions | |
template<typename Builder > | |
fq< Builder > | convert_to_grumpkin_fr (Builder &builder, const fr< Builder > &f) |
Converts a challenge to a fq<Builder> | |
template fq< UltraCircuitBuilder > | convert_to_grumpkin_fr< UltraCircuitBuilder > (UltraCircuitBuilder &builder, const fr< UltraCircuitBuilder > &f) |
template fq< MegaCircuitBuilder > | convert_to_grumpkin_fr< MegaCircuitBuilder > (MegaCircuitBuilder &builder, const fr< MegaCircuitBuilder > &f) |
template<typename Builder , typename T > | |
T | convert_challenge (Builder &builder, const fr< Builder > &challenge) |
template<typename Builder > | |
std::vector< fr< Builder > > | convert_goblin_fr_to_bn254_frs (const goblin_field< Builder > &input) |
template<typename Builder > | |
std::vector< fr< Builder > > | convert_grumpkin_fr_to_bn254_frs (const fq< Builder > &input) |
template<typename Builder , typename T > | |
constexpr size_t | calc_num_bn254_frs () |
Calculates the size of a types (in their native form) in terms of fr<Builder>s. | |
template<typename Builder , typename T > | |
T | convert_from_bn254_frs (Builder &builder, std::span< const fr< Builder > > fr_vec) |
Conversions from vector of fr<Builder> elements to transcript types. | |
template<typename Builder , typename T > | |
std::vector< fr< Builder > > | convert_to_bn254_frs (const T &val) |
Conversion from transcript values to fr<Builder>s. | |
template<typename TargetType , typename Builder > | |
TargetType | deserialize_from_frs (Builder &builder, std::span< fr< Builder > > elements, size_t &num_frs_read) |
Deserialize an object of specified type from a buffer of field elements; update provided read count in place. | |
using bb::stdlib::field_conversion::bn254_element = typedef element<Builder, fq<Builder>, fr<Builder>, curve::BN254::Group> |
Definition at line 21 of file field_conversion.hpp.
using bb::stdlib::field_conversion::fq = typedef bigfield<Builder, bb::Bn254FqParams> |
Definition at line 20 of file field_conversion.hpp.
using bb::stdlib::field_conversion::fr = typedef field_t<Builder> |
Definition at line 19 of file field_conversion.hpp.
using bb::stdlib::field_conversion::grumpkin_element = typedef cycle_group<Builder> |
Definition at line 22 of file field_conversion.hpp.
|
constexpr |
Calculates the size of a types (in their native form) in terms of fr<Builder>s.
We want to support the following types: fr<Builder>, fq<Builder>, bn254_element<Builder>, grumpkin_element<Builder, bb::Univariate<FF, N>, std::array<FF, N>, for FF = fr<Builder> or fq<Builder>, and N is arbitrary
Builder | |
T |
Definition at line 64 of file field_conversion.hpp.
|
inline |
Definition at line 29 of file field_conversion.hpp.
T bb::stdlib::field_conversion::convert_from_bn254_frs | ( | Builder & | builder, |
std::span< const fr< Builder > > | fr_vec | ||
) |
Conversions from vector of fr<Builder> elements to transcript types.
We want to support the following types: fr<Builder>, fq<Builder>, bn254_element<Builder>, grumpkin_element<Builder, bb::Univariate<FF, N>, std::array<FF, N>, for FF = fr<Builder> or fq<Builder>, and N is arbitrary
Builder | |
T |
builder | |
fr_vec |
Definition at line 94 of file field_conversion.hpp.
|
inline |
Definition at line 39 of file field_conversion.hpp.
|
inline |
Definition at line 47 of file field_conversion.hpp.
std::vector< fr< Builder > > bb::stdlib::field_conversion::convert_to_bn254_frs | ( | const T & | val | ) |
Conversion from transcript values to fr<Builder>s.
We want to support the following types: bool, size_t, uint32_t, uint64_t, fr<Builder>, fq<Builder>, bn254_element<Builder>, grumpkin_element<Builder,, bb::Univariate<FF, N>, std::array<FF, N>, for FF = fr<Builder>/fq<Builder>, and N is arbitrary.
Builder | |
T |
val |
Definition at line 161 of file field_conversion.hpp.
fq< Builder > bb::stdlib::field_conversion::convert_to_grumpkin_fr | ( | Builder & | builder, |
const fr< Builder > & | f | ||
) |
Converts a challenge to a fq<Builder>
We sometimes need challenges that are a bb::fq element, so we need to convert the bb::fr challenge to a bb::fq type. We do this by in a similar fashion to the convert_from_bn254_frs function that converts to a fq<Builder>. In fact, we do call that function that the end, but we first have to split the fr<Builder> into two pieces, one that is the 136 lower bits and one that is the 118 higher bits. Then, we can split these two pieces into their bigfield limbs through convert_from_bn254_frs, which is actually just a bigfield constructor that takes in two two-limb frs.
TODO(https://github.com/AztecProtocol/barretenberg/issues/850): audit this function more carefully
Builder |
Definition at line 24 of file field_conversion.cpp.
template fq< MegaCircuitBuilder > bb::stdlib::field_conversion::convert_to_grumpkin_fr< MegaCircuitBuilder > | ( | MegaCircuitBuilder & | builder, |
const fr< MegaCircuitBuilder > & | f | ||
) |
template fq< UltraCircuitBuilder > bb::stdlib::field_conversion::convert_to_grumpkin_fr< UltraCircuitBuilder > | ( | UltraCircuitBuilder & | builder, |
const fr< UltraCircuitBuilder > & | f | ||
) |
TargetType bb::stdlib::field_conversion::deserialize_from_frs | ( | Builder & | builder, |
std::span< fr< Builder > > | elements, | ||
size_t & | num_frs_read | ||
) |
Deserialize an object of specified type from a buffer of field elements; update provided read count in place.
TargetType | Type to reconstruct from buffer of field elements |
builder | |
elements | Buffer of field elements |
num_frs_read | Index at which to read into buffer |
Definition at line 205 of file field_conversion.hpp.