FK20 CUDA
fr_nonzero.cu
Go to the documentation of this file.
1 // bls12_381: Arithmetic for BLS12-381
2 // Copyright 2022-2023 Dag Arne Osvik
3 // Copyright 2022-2023 Luan Cardoso dos Santos
4 
5 #include "fr.cuh"
12 __device__ bool fr_nonzero(const fr_t &x) {
13  fr_t t;
14  fr_cpy(t, x);
15  fr_reduce4(t);
16 
17  return ((t[3] | t[2] | t[1] | t[0]) != 0);
18 }
19 
20 // vim: ts=4 et sw=4 si
uint64_t fr_t[4]
Subgroup element stored as a 256-bit array (a 4-element little-endian array of uint64_t)....
Definition: fr.cuh:24
__device__ __host__ void fr_cpy(fr_t &z, const fr_t &x)
Copy from x into z.
Definition: fr_cpy.cu:14
__device__ void fr_reduce4(fr_t &z)
Reduced the value in fr_t to the field modulus.
Definition: fr_reduce4.cu:16
__device__ bool fr_nonzero(const fr_t &x)
Check if the reduced input x is different from zero.
Definition: fr_nonzero.cu:12