|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <standard_affine_point.hpp>
Public Types | |
| using | BaseField = AffinePoint::Fq |
| using | ScalarField = AffinePoint::Fr |
Public Member Functions | |
| constexpr | StandardAffinePoint () noexcept=default |
| constexpr | StandardAffinePoint (AffinePoint val) noexcept |
| constexpr | StandardAffinePoint (BaseField x, BaseField y, bool is_infinity) noexcept |
| constexpr StandardAffinePoint | operator+ (const StandardAffinePoint &other) const noexcept |
| constexpr StandardAffinePoint | operator* (const ScalarField &exponent) const noexcept |
| constexpr bool | operator== (const StandardAffinePoint &other) const noexcept |
| constexpr StandardAffinePoint | operator- () const noexcept |
| constexpr bool | is_infinity () const noexcept |
| constexpr bool | on_curve () const noexcept |
| constexpr const BaseField & | x () const noexcept |
| constexpr const BaseField & | y () const noexcept |
Static Public Member Functions | |
| static const StandardAffinePoint & | infinity () |
| static const StandardAffinePoint & | one () |
Private Attributes | |
| AffinePoint | point |
| BaseField | x_coord = zero |
| BaseField | y_coord = zero |
Static Private Attributes | |
| static constexpr const auto | zero = BaseField::zero() |
AVM bytecode expects the representation of points to be triplets, the two coordinates and an is_infinity boolean. Furthermore, its representation of infinity is inherited from noir's and is expected to be 0,0,true. BB, however, uses only the two coordinates to represent points. Infinity in barretenberg is represented as (P+1)/2,0. This class is a wrapper of the BB representation, needed to operate with points, that allows to extract the standard representation that AVM bytecode expects. NOTE: When constructing infinity from BB's two element representation, is_infinity() will be true but the coordinates will remain (P+1)/2,0. NOTE: When constructing infinity via BaseFields, input coordinates are maintained and can be any values, so may mismatch the underlying AffinePoint. Always check is_infinity() before ECC operations on coordinates. See test InfinityPreservesRawCoordinates for an example.
Definition at line 20 of file standard_affine_point.hpp.
| using bb::avm2::StandardAffinePoint< AffinePoint >::BaseField = AffinePoint::Fq |
Definition at line 22 of file standard_affine_point.hpp.
| using bb::avm2::StandardAffinePoint< AffinePoint >::ScalarField = AffinePoint::Fr |
Definition at line 23 of file standard_affine_point.hpp.
|
constexprdefaultnoexcept |
|
inlineconstexprnoexcept |
Definition at line 27 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 33 of file standard_affine_point.hpp.
|
inlinestatic |
Definition at line 83 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 73 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 75 of file standard_affine_point.hpp.
|
inlinestatic |
Definition at line 89 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 49 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 39 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 64 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 59 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 79 of file standard_affine_point.hpp.
|
inlineconstexprnoexcept |
Definition at line 81 of file standard_affine_point.hpp.
|
private |
Definition at line 98 of file standard_affine_point.hpp.
|
private |
Definition at line 101 of file standard_affine_point.hpp.
|
private |
Definition at line 102 of file standard_affine_point.hpp.
|
staticconstexprprivate |
Definition at line 103 of file standard_affine_point.hpp.