1#ifndef SECP256K1_CT_POINT_HPP
2#define SECP256K1_CT_POINT_HPP
42#if defined(SECP256K1_FAST_52BIT)
71#if defined(SECP256K1_FAST_52BIT)
78 r.
infinity = ~static_cast<std::uint64_t>(0);
84 if (p.is_infinity()) {
87#if defined(SECP256K1_FAST_52BIT)
88 r.
x = FE52::from_fe(p.x());
89 r.
y = FE52::from_fe(p.y());
138 std::uint64_t mask)
noexcept;
141 std::uint64_t mask)
noexcept;
147 std::size_t table_size,
148 std::size_t index)
noexcept;
152 std::size_t table_size,
153 std::size_t index)
noexcept;
160 std::size_t table_size,
162 unsigned group_size)
noexcept;
167 std::size_t table_size,
169 unsigned group_size)
noexcept;
180 std::uint64_t mask)
noexcept;
static FieldElement zero()
std::uint64_t point_eq(const Point &a, const Point &b) noexcept
CTAffinePoint affine_neg(const CTAffinePoint &p) noexcept
CTJacobianPoint point_table_lookup(const CTJacobianPoint *table, std::size_t table_size, std::size_t index) noexcept
CTJacobianPoint point_add_mixed_complete(const CTJacobianPoint &p, const CTAffinePoint &q) noexcept
CTAffinePoint affine_table_lookup(const CTAffinePoint *table, std::size_t table_size, std::size_t index) noexcept
CTJacobianPoint point_neg(const CTJacobianPoint &p) noexcept
secp256k1::fast::FieldElement FieldElement
Point scalar_mul(const Point &p, const Scalar &k) noexcept
CTJacobianPoint point_endomorphism(const CTJacobianPoint &p) noexcept
CTAffinePoint affine_endomorphism(const CTAffinePoint &p) noexcept
CTJacobianPoint point_select(const CTJacobianPoint &a, const CTJacobianPoint &b, std::uint64_t mask) noexcept
void point_add_mixed_unified_into(CTJacobianPoint *out, const CTJacobianPoint &a, const CTAffinePoint &b) noexcept
CTJacobianPoint point_dbl_n(const CTJacobianPoint &p, unsigned n) noexcept
CTAffinePoint affine_table_lookup_signed(const CTAffinePoint *table, std::size_t table_size, std::uint64_t n, unsigned group_size) noexcept
void init_generator_table() noexcept
void point_cmov(CTJacobianPoint *r, const CTJacobianPoint &a, std::uint64_t mask) noexcept
void point_dbl_n_inplace(CTJacobianPoint *r, unsigned n) noexcept
CTJacobianPoint point_add_complete(const CTJacobianPoint &p, const CTJacobianPoint &q) noexcept
void affine_table_lookup_signed_into(CTAffinePoint *out, const CTAffinePoint *table, std::size_t table_size, std::uint64_t n, unsigned group_size) noexcept
Point generator_mul(const Scalar &k) noexcept
CTJacobianPoint point_add_mixed_unified(const CTJacobianPoint &a, const CTAffinePoint &b) noexcept
CTGLVDecomposition ct_glv_decompose(const Scalar &k) noexcept
std::uint64_t point_is_on_curve(const Point &p) noexcept
CTJacobianPoint point_dbl(const CTJacobianPoint &p) noexcept
void affine_cmov(CTAffinePoint *r, const CTAffinePoint &a, std::uint64_t mask) noexcept
static CTAffinePoint make_infinity() noexcept
static CTAffinePoint from_point(const Point &p) noexcept
static CTJacobianPoint make_infinity() noexcept
static CTJacobianPoint from_point(const Point &p) noexcept
Point to_point() const noexcept