37 for (
int i=3; i>=0; i--) {
__device__ __host__ void fp_zero(fp_t &z)
Sets z to zero.
uint64_t fr_t[4]
Subgroup element stored as a 256-bit array (a 4-element little-endian array of uint64_t)....
__device__ __host__ void g1p_inf(g1p_t &p)
Set p to the point-at-infinity (0,1,0)
__device__ void g1p_add(g1p_t &p, const g1p_t &q)
Computes the sum of two points q into p, using projective coordinates. and stores in p.
__device__ void g1p_dbl(g1p_t &p)
G1 point doubling, with write back: p=2*p.
__device__ __host__ void g1p_cpy(g1p_t &p, const g1p_t &q)
Copy from q into p.
__device__ bool g1p_isPoint(const g1p_t &p)
Check if the value stored in p is a valid point on the G1 curve.
__device__ void g1p_mul(g1p_t &p, const fr_t &k)
p ← k·p Point multiplication by scalar, in projective coordinates. That result is stored back into p.
G1 point in projective coordinates.