cuElim/include/gfp/gfp_header.cuh

27 lines
592 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"
2024-09-14 16:15:13 +08:00
namespace gfp
{
using gfp_t = uint32_t;
2024-09-14 15:57:00 +08:00
2024-09-14 16:15:13 +08:00
static const gfp_t gfprime = 65521;
2024-09-14 15:57:00 +08:00
2024-09-14 16:15:13 +08:00
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;
2024-09-14 15:57:00 +08:00
2024-09-14 16:15:13 +08:00
__managed__ gfp_t gfp_inv_table[gfprime];
2024-09-14 15:57:00 +08:00
2024-09-14 16:15:13 +08:00
void init_inv_table()
{
gfp_inv_table[0] = 0;
gfp_inv_table[1] = 1;
for (int i = 2; i < gfprime; ++i)
gfp_inv_table[i] = (gfprime - gfprime / i) * gfp_inv_table[gfprime % i] % gfprime;
}
2024-09-14 15:57:00 +08:00
}
#endif