7#ifndef SECP256K1_FIELD_INNER5X52_IMPL_H
8#define SECP256K1_FIELD_INNER5X52_IMPL_H
13#define VERIFY_BITS(x, n) VERIFY_CHECK(((x) >> (n)) == 0)
15#define VERIFY_BITS(x, n) do { } while(0)
22 const uint64_t M = 0xFFFFFFFFFFFFFULL,
R = 0x1000003D10ULL;
52 d += (
c &
M) *
R;
c >>= 52;
75 tx = (
t4 >> 48);
t4 &= (
M >> 4);
100 r[0] =
c &
M;
c >>= 52;
114 c += (d &
M) *
R; d >>= 52;
118 r[1] =
c &
M;
c >>= 52;
132 c += (d &
M) *
R; d >>= 52;
138 r[2] =
c &
M;
c >>= 52;
145 r[3] =
c &
M;
c >>= 52;
161 const uint64_t M = 0xFFFFFFFFFFFFFULL,
R = 0x1000003D10ULL;
181 d += (
c &
M) *
R;
c >>= 52;
185 t3 = d &
M; d >>= 52;
199 t4 = d &
M; d >>= 52;
203 tx = (
t4 >> 48);
t4 &= (
M >> 4);
215 u0 = d &
M; d >>= 52;
226 r[0] =
c &
M;
c >>= 52;
239 c += (d &
M) *
R; d >>= 52;
243 r[1] =
c &
M;
c >>= 52;
255 c += (d &
M) *
R; d >>= 52;
259 r[2] =
c &
M;
c >>= 52;
267 r[3] =
c &
M;
c >>= 52;
static SECP256K1_INLINE void secp256k1_fe_mul_inner(uint64_t *r, const uint64_t *a, const uint64_t *SECP256K1_RESTRICT b)
#define VERIFY_BITS(x, n)
static SECP256K1_INLINE void secp256k1_fe_sqr_inner(uint64_t *r, const uint64_t *a)
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
#define VERIFY_CHECK(cond)
#define SECP256K1_RESTRICT