-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
29 lines (23 loc) · 1.03 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
This library provides simple and fast arithmetic functions (macros) in GF(2^16)
and GF(2^8) based on table lookup.
The only programs you need are gf.c and gf.h; copy them to your directory and
compile your programs with them.
For GF(2^16), call
GF16init();
first and then call other functions (macros) such as GF16mul(), GF16div().
Similarly for GF(2^8), call
GF8init();
first and call other functions (macros) such as GF8mul(), GF18iv().
Some techniques to accelerate region calculation such as:
for (i = 0; i < N; i++)
c[i] = a * b[i]; // Static coefficient * region of data (array)
are also included.
Please see gf-bench/multiplication/gf-nishida-region-{16,8}/gf-bench.c for
the code examples.
All the deitais and benchmark results are described in our technical papers
gf-nishida-16.pdf (English) and gf-nishida-16-ja.pdf (Japanese).
CAUTION!! Never use b = 0 for GF16div(a, b) because it causes segmentation
violation.
The program does not check "(a == 0 || b == 0)" for speedup.
Hiroshi Nishida
nishida at asusa.net