\(\mathbb{F}_{2^e}\)
More...
#include <m4ri/m4ri.h>
#include <m4rie/gf2x.h>
Go to the source code of this file.
|
#define | M4RIE_DLL_EXPORT |
#define | M4RIE_MAX_DEGREE 16 |
| maximal supported degree
|
|
gf2e * | gf2e_init (const word minpoly) |
void | gf2e_free (gf2e *ff) |
static word | gf2e_inv (const gf2e *ff, word a) |
| a^(-1) % minpoly
|
static word | _gf2e_mul_table (const gf2e *ff, const word a, const word b) |
| a*b in \(\mathbb{F}_{2^e}\) using a table lookups.
|
static word | _gf2e_mul_arith (const gf2e *ff, const word a, const word b) |
| a*b in \(\mathbb{F}_{2^e}\) using a gf2x_mul() lookups.
|
static word | gf2e_mul (const gf2e *ff, const word a, const word b) |
| a*b in \(\mathbb{F}_{2^e}\).
|
static size_t | gf2e_degree_to_w (const gf2e *ff) |
static word * | gf2e_t16_init (const gf2e *ff, const word a) |
static void | gf2e_t16_free (word *mul) |
| Free multiplication table.
|
|
M4RIE_DLL_EXPORT const word * | irreducible_polynomials [17] |
| all Irreducible polynomials over GF(2) up to degree 16.
|
◆ gf2e_degree_to_w()
size_t gf2e_degree_to_w |
( |
const gf2e * | ff | ) |
|
|
inlinestatic |
Return the width used for storing elements of ff
- Parameters
-
◆ gf2e_free()
void gf2e_free |
( |
gf2e * | ff | ) |
|
◆ gf2e_init()
gf2e * gf2e_init |
( |
const word | minpoly | ) |
|
Create finite field from minimal polynomial
- Parameters
-
minpoly | Polynomial represented as series of bits. |
red
pow_gen: X^i
mul tables
◆ gf2e_t16_free()
void gf2e_t16_free |
( |
word * | mul | ) |
|
|
inlinestatic |
Free multiplication table.
- Parameters
-
◆ gf2e_t16_init()
word * gf2e_t16_init |
( |
const gf2e * | ff, |
|
|
const word | a ) |
|
inlinestatic |
Compute all multiples by a of vectors fitting into 16 bits.
- Parameters
-
ff | Finite field. |
a | Finite field element. |
- Todo
- : this is a bit of overkill, we could do better