cuElim/include/gfp/gfp_header.cuh

27 lines
561 B
Plaintext
Raw Normal View History

2024-09-14 15:57:00 +08:00
#ifndef GFP_HEADER_CUH
#define GFP_HEADER_CUH
#include "../header.cuh"
using gfp_t = uint32_t;
#define gfp_bits 32
static_assert(sizeof(gfp_t) * 8 == gfp_bits);
static const gfp_t gfp = 65521;
static const gfp_t gfp_zero = (gfp_t)0;
static const gfp_t gfp_one = (gfp_t)1;
static const gfp_t gfp_fullmask = (gfp_t)0xFF'FF;
__managed__ gfp_t gfp_inv_table[gfp];
void init_inv_table()
{
gfp_inv_table[0] = 0;
gfp_inv_table[1] = 1;
for (int i = 2; i < gfp; ++i)
gfp_inv_table[i] = (gfp - gfp / i) * gfp_inv_table[gfp % i] % gfp;
}
#endif