9#include "../../fields/field.hpp"
10#include "../../groups/group.hpp"
11#include "../types.hpp"
21 static constexpr uint64_t
modulus_0 = 0xFFFFFFFEFFFFFC2FULL;
22 static constexpr uint64_t
modulus_1 = 0xFFFFFFFFFFFFFFFFULL;
23 static constexpr uint64_t
modulus_2 = 0xFFFFFFFFFFFFFFFFULL;
24 static constexpr uint64_t
modulus_3 = 0xFFFFFFFFFFFFFFFFULL;
34 0x300000b73ULL, 0x400000f44ULL, 0x500001315ULL, 0x6000016e6ULL,
35 0x700001ab7ULL, 0x800001e88ULL, 0x900002259ULL, 0xa0000262aULL,
38 0, 0, 0, 0, 0, 0, 0, 0,
41 0, 0, 0, 0, 0, 0, 0, 0,
44 0, 0, 0, 0, 0, 0, 0, 0,
51 static constexpr uint64_t
r_inv = 15580212934572586289ULL;
57 static constexpr uint64_t
r_inv_0 = 0xffffffff27c7f3a9UL;
58 static constexpr uint64_t
r_inv_1 = 0xffffffffffffffffUL;
59 static constexpr uint64_t
r_inv_2 = 0xffffffffffffffffUL;
60 static constexpr uint64_t
r_inv_3 = 0xd838091dd2253530UL;
77 static constexpr uint64_t
cube_root_0 = 0x58a4361c8e81894eULL;
78 static constexpr uint64_t
cube_root_1 = 0x03fde1631c4b80afULL;
79 static constexpr uint64_t
cube_root_2 = 0xf8e98978d02e3905ULL;
80 static constexpr uint64_t
cube_root_3 = 0x7a4a36aebcbb3d53ULL;
123 0x000000a0000262a0ULL, 0x000000c00002dcc0ULL,
124 0x000000e0000356e0ULL, 0x000001000003d100ULL,
125 0x0000012000044b20ULL, 0x000001400004c540ULL };
127 0x0000000000000000ULL, 0x0000000000000000ULL,
128 0x0000000000000000ULL, 0x0000000000000000ULL,
129 0x0000000000000000ULL, 0x0000000000000000ULL };
131 0x0000000000000000ULL, 0x0000000000000000ULL,
132 0x0000000000000000ULL, 0x0000000000000000ULL,
133 0x0000000000000000ULL, 0x0000000000000000ULL };
135 0x0000000000000000ULL, 0x0000000000000000ULL,
136 0x0000000000000000ULL, 0x0000000000000000ULL,
137 0x0000000000000000ULL, 0x0000000000000000ULL };
150 static constexpr uint64_t
modulus_0 = 0xBFD25E8CD0364141ULL;
151 static constexpr uint64_t
modulus_1 = 0xBAAEDCE6AF48A03BULL;
152 static constexpr uint64_t
modulus_2 = 0xFFFFFFFFFFFFFFFEULL;
153 static constexpr uint64_t
modulus_3 = 0xFFFFFFFFFFFFFFFFULL;
165 static constexpr uint64_t
r_inv = 5408259542528602431ULL;
171 static constexpr uint64_t
r_inv_0 = 0x9d4ad302583de6dcUL;
172 static constexpr uint64_t
r_inv_1 = 0xa09f710af0155525UL;
173 static constexpr uint64_t
r_inv_2 = 0xffffffffffffffffUL;
174 static constexpr uint64_t
r_inv_3 = 0x4b0dff665588b13eUL;
193 0x40e4273feef0b9bbULL, 0x8111c8b31eba787aULL, 0xc13f6a264e843739ULL, 0x16d0b997e4df5f8ULL,
194 0x419aad0cae17b4b7ULL, 0x81c84e7fdde17376ULL, 0xc1f5eff30dab3235ULL, 0x22391663d74f0f4ULL,
197 0x5a95af7e9394ded5ULL, 0x9fe6d297e44c3e99ULL, 0xe537f5b135039e5dULL, 0x2a8918ca85bafe22ULL,
198 0x6fda3be3d6725de6ULL, 0xb52b5efd2729bdaaULL, 0xfa7c821677e11d6eULL, 0x3fcda52fc8987d33ULL,
201 0x6ULL, 0x7ULL, 0x8ULL, 0xaULL, 0xbULL, 0xcULL, 0xdULL, 0xfULL,
204 0, 0, 0, 0, 0, 0, 0, 0,
217 static constexpr uint64_t
endo_b2_lo = 0xe86c90e49284eb15ULL;
220 static constexpr uint64_t
endo_g1_lo = 0xE893209A45DBB031ULL;
222 static constexpr uint64_t
endo_g1_hi = 0xE86C90E49284EB15ULL;
225 static constexpr uint64_t
endo_g2_lo = 0x1571B4AE8AC47F71ULL;
227 static constexpr uint64_t
endo_g2_hi = 0x6F547FA90ABFE4C4ULL;
271 0x27ed44c9d086e720ULL, 0x2da1732fc9bebf00ULL,
272 0x3355a195c2f696e0ULL, 0x3909cffbbc2e6ec0ULL,
273 0x3ebdfe61b56646a0ULL, 0x44722cc7ae9e1e80ULL };
275 0xa6feb626a073cbb8ULL, 0x51231950b75fc440ULL,
276 0xfb477c7ace4bbcc8ULL, 0xa56bdfa4e537b550ULL,
277 0x4f9042cefc23add8ULL, 0xf9b4a5f9130fa660ULL };
279 0x000000000000011cULL, 0x0000000000000145ULL,
280 0x000000000000016dULL, 0x0000000000000196ULL,
281 0x00000000000001bfULL, 0x00000000000001e7ULL };
283 0x0000000000000000ULL, 0x0000000000000000ULL,
284 0x0000000000000000ULL, 0x0000000000000000ULL,
285 0x0000000000000000ULL, 0x0000000000000000ULL };
299 static constexpr bool has_a =
false;
305 fq(0x59F2815B16F81798UL, 0x029BFCDB2DCE28D9UL, 0x55A06295CE870B07UL, 0x79BE667EF9DCBBACUL).
to_montgomery_form();
307 fq(0x9C47D08FFB10D4B8UL, 0xFD17B448A6855419UL, 0x5DA4FBFC0E1108A8UL, 0x483ADA7726A3C465UL).
to_montgomery_form();
315 return "Secp256k1Point";
typename Group::element Element
typename Group::affine_element AffineElement
group class. Represents an elliptic curve group element. Group is parametrised by Fq and Fr
group_elements::affine_element< Fq, Fr, Params > affine_element
group_elements::element< Fq, Fr, Params > element
std::string msgpack_schema_name(g1::affine_element const &)
group< fq, fr, G1Params > g1
General class for prime fields see Prime field documentation["field documentation"] for general imple...
BB_INLINE constexpr field to_montgomery_form() const noexcept
static constexpr uint64_t primitive_root_wasm_0
static constexpr uint64_t coset_generators_1[8]
static constexpr uint64_t primitive_root_2
static constexpr uint64_t modulus_wasm_4
static constexpr uint64_t r_inv_3
static constexpr uint64_t primitive_root_3
static constexpr uint64_t modulus_wasm_8
static constexpr uint64_t r_inv_0
static constexpr uint64_t modulus_wasm_0
static constexpr uint64_t r_squared_2
static constexpr uint64_t r_inv
static constexpr uint64_t modulus_wasm_7
static constexpr uint64_t modulus_wasm_2
static constexpr uint64_t r_inv_wasm_4
static constexpr uint64_t r_squared_wasm_1
static constexpr uint64_t r_inv_wasm_1
static constexpr uint64_t cube_root_wasm_0
static constexpr uint64_t r_squared_wasm_0
static constexpr uint64_t r_squared_3
static constexpr uint64_t primitive_root_wasm_1
static constexpr uint64_t modulus_0
static constexpr uint64_t modulus_wasm_5
static constexpr uint64_t cube_root_0
static constexpr uint64_t modulus_1
static constexpr uint64_t r_inv_wasm_5
static constexpr uint64_t coset_generators_wasm_2[8]
static constexpr uint64_t cube_root_wasm_3
static constexpr uint64_t coset_generators_2[8]
static constexpr uint64_t r_inv_wasm_8
static constexpr uint64_t r_squared_1
static constexpr uint64_t primitive_root_wasm_3
static constexpr uint64_t r_squared_wasm_2
static constexpr uint64_t primitive_root_1
static constexpr uint64_t r_squared_wasm_3
static constexpr uint64_t modulus_2
static constexpr uint64_t r_inv_1
static constexpr uint64_t coset_generators_wasm_3[8]
static constexpr uint64_t r_inv_wasm_7
static constexpr uint64_t coset_generators_3[8]
static constexpr uint64_t r_squared_0
static constexpr uint64_t r_inv_wasm_3
static constexpr uint64_t primitive_root_wasm_2
static constexpr uint64_t primitive_root_0
static constexpr uint64_t modulus_wasm_1
static constexpr uint64_t r_inv_wasm_0
static constexpr uint64_t coset_generators_wasm_0[8]
static constexpr uint64_t cube_root_2
static constexpr uint64_t cube_root_wasm_1
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr char schema_name[]
static constexpr uint64_t coset_generators_0[8]
static constexpr uint64_t cube_root_wasm_2
static constexpr uint64_t modulus_wasm_6
static constexpr uint64_t cube_root_1
static constexpr uint64_t coset_generators_wasm_1[8]
static constexpr uint64_t modulus_wasm_3
static constexpr uint64_t r_inv_wasm_2
static constexpr uint64_t r_inv_wasm_6
static constexpr uint64_t r_inv_2
static constexpr uint64_t cube_root_3
static constexpr uint64_t modulus_3
static constexpr uint64_t r_squared_3
static constexpr uint64_t r_inv_wasm_5
static constexpr uint64_t cube_root_wasm_0
static constexpr uint64_t modulus_wasm_5
static constexpr uint64_t coset_generators_1[8]
static constexpr uint64_t endo_g1_hi
static constexpr uint64_t modulus_wasm_7
static constexpr uint64_t r_inv
static constexpr uint64_t modulus_wasm_6
static constexpr uint64_t modulus_wasm_1
static constexpr uint64_t modulus_0
static constexpr uint64_t r_squared_wasm_3
static constexpr uint64_t endo_g1_mid
static constexpr uint64_t primitive_root_wasm_3
static constexpr uint64_t primitive_root_2
static constexpr uint64_t endo_minus_b1_lo
static constexpr uint64_t r_inv_1
static constexpr uint64_t endo_g1_lo
static constexpr uint64_t cube_root_wasm_1
static constexpr uint64_t cube_root_wasm_3
static constexpr uint64_t coset_generators_wasm_1[8]
static constexpr uint64_t modulus_wasm_8
static constexpr char schema_name[]
static constexpr uint64_t r_inv_wasm_6
static constexpr uint64_t r_inv_0
static constexpr uint64_t modulus_3
static constexpr uint64_t r_inv_wasm_2
static constexpr uint64_t modulus_1
static constexpr uint64_t modulus_wasm_2
static constexpr uint64_t r_inv_wasm_8
static constexpr uint64_t endo_minus_b1_mid
static constexpr uint64_t r_inv_wasm_0
static constexpr uint64_t endo_b2_mid
static constexpr uint64_t modulus_wasm_3
static constexpr uint64_t r_inv_wasm_1
static constexpr uint64_t r_inv_2
static constexpr size_t PUBLIC_INPUTS_SIZE
static constexpr uint64_t coset_generators_0[8]
static constexpr uint64_t coset_generators_wasm_0[8]
static constexpr uint64_t primitive_root_wasm_2
static constexpr uint64_t primitive_root_0
static constexpr uint64_t cube_root_wasm_2
static constexpr uint64_t endo_b2_lo
static constexpr uint64_t r_squared_2
static constexpr uint64_t cube_root_3
static constexpr uint64_t coset_generators_3[8]
static constexpr uint64_t endo_g1_hihi
static constexpr uint64_t endo_g2_hihi
static constexpr uint64_t endo_g2_hi
static constexpr uint64_t r_inv_wasm_7
static constexpr uint64_t primitive_root_1
static constexpr uint64_t coset_generators_wasm_3[8]
static constexpr uint64_t primitive_root_wasm_0
static constexpr uint64_t r_squared_0
static constexpr uint64_t r_squared_wasm_2
static constexpr uint64_t modulus_2
static constexpr uint64_t r_squared_wasm_1
static constexpr uint64_t coset_generators_wasm_2[8]
static constexpr uint64_t modulus_wasm_4
static constexpr uint64_t coset_generators_2[8]
static constexpr uint64_t r_inv_wasm_4
static constexpr uint64_t cube_root_2
static constexpr uint64_t endo_g2_lo
static constexpr uint64_t r_squared_wasm_0
static constexpr uint64_t endo_g2_mid
static constexpr uint64_t r_squared_1
static constexpr uint64_t primitive_root_3
static constexpr uint64_t cube_root_0
static constexpr uint64_t r_inv_3
static constexpr uint64_t primitive_root_wasm_1
static constexpr uint64_t modulus_wasm_0
static constexpr uint64_t cube_root_1
static constexpr uint64_t r_inv_wasm_3
static constexpr bool small_elements
static constexpr bool can_hash_to_curve
static constexpr fq one_x
static constexpr fq one_y
static constexpr bool has_a
static constexpr bool USE_ENDOMORPHISM