Skip to content

Commit

Permalink
Put headers on the C files.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jim Plank committed Oct 9, 2013
1 parent 110523d commit b0e2ae0
Show file tree
Hide file tree
Showing 26 changed files with 143 additions and 43 deletions.
3 changes: 2 additions & 1 deletion License.txt
@@ -1,4 +1,5 @@
Copyright (c) 2013, James S. Plank, Ethan L. Miller, William B. Houston
Copyright (c) 2013, James S. Plank, Ethan L. Miller, Kevin M. Greenan,
Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
4 changes: 4 additions & 0 deletions gf.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf.c
*
* Generic routines for Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_add.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_add.c
*
* Adds two numbers in gf_2^w
Expand Down
4 changes: 4 additions & 0 deletions gf_example_1.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_1.c
*
* Demonstrates using the procedures for examples in GF(2^w) for w <= 32.
Expand Down
4 changes: 4 additions & 0 deletions gf_example_2.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_2.c
*
* Demonstrates using the procedures for examples in GF(2^w) for w <= 32.
Expand Down
4 changes: 4 additions & 0 deletions gf_example_3.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_3.c
*
* Identical to example_2 except it works in GF(2^64)
Expand Down
4 changes: 4 additions & 0 deletions gf_example_4.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_4.c
*
* Identical to example_3 except it works in GF(2^128)
Expand Down
4 changes: 4 additions & 0 deletions gf_example_5.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_5.c
*
* Demonstrating altmap and extract_word
Expand Down
4 changes: 4 additions & 0 deletions gf_example_6.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_6.c
*
* Demonstrating altmap and extract_word
Expand Down
4 changes: 4 additions & 0 deletions gf_example_7.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_example_7.c
*
* Demonstrating extract_word and Cauchy
Expand Down
4 changes: 4 additions & 0 deletions gf_general.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_general.c
*
* This file has helper routines for doing basic GF operations with any
Expand Down
4 changes: 4 additions & 0 deletions gf_inline_time.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_inline_time.c
*
* Times inline single multiplication when w = 4, 8 or 16
Expand Down
4 changes: 4 additions & 0 deletions gf_method.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_method.c
*
* Parses argv to figure out the mult_type and arguments. Returns the gf.
Expand Down
6 changes: 5 additions & 1 deletion gf_methods.c
@@ -1,7 +1,11 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_methods.c
*
* Lists supported methods (incomplete w.r.t. GROUP and COMPOSITE
* Lists supported methods (incomplete w.r.t. GROUP and COMPOSITE)
*/

#include <stdio.h>
Expand Down
4 changes: 4 additions & 0 deletions gf_mult.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_mult.c
*
* Multiplies two numbers in gf_2^w
Expand Down
85 changes: 44 additions & 41 deletions gf_poly.c
@@ -1,45 +1,48 @@
/*
gf_poly.c - program to help find irreducible polynomials in composite fields,
using the Ben-Or algorithm.
James S. Plank
Please see the following paper for a
description of the Ben-Or algorithm:
author S. Gao and D. Panario
title Tests and Constructions of Irreducible Polynomials over Finite Fields
booktitle Foundations of Computational Mathematics
year 1997
publisher Springer Verlag
pages 346-361
The basic technique is this. You have a polynomial f(x) whose coefficients are
in a base field GF(2^w). The polynomial is of degree n. You need to do the
following for all i from 1 to n/2:
Construct x^(2^w)^i modulo f. That will be a polynomial of maximum degree n-1
with coefficients in GF(2^w). You construct that polynomial by starting with x
and doubling it w times, each time taking the result modulo f. Then you
multiply that by itself i times, again each time taking the result modulo f.
When you're done, you need to "subtract" x -- since addition = subtraction =
XOR, that means XOR x.
Now, find the GCD of that last polynomial and f, using Euclid's algorithm. If
the GCD is not one, then f is reducible. If it is not reducible for each of
those i, then it is irreducible.
In this code, I am using a gf_general_t to represent elements of GF(2^w). This
is so that I can use base fields that are GF(2^64) or GF(2^128).
I have two main procedures. The first is x_to_q_to_i_minus_x, which calculates
x^(2^w)^i - x, putting the result into a gf_general_t * called retval.
The second is gcd_one, which takes a polynomial of degree n and a second one
of degree n-1, and uses Euclid's algorithm to decide if their GCD == 1.
These can be made faster (e.g. calculate x^(2^w) once and store it).
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_poly.c - program to help find irreducible polynomials in composite fields,
* using the Ben-Or algorithm.
*
* (This one was written by Jim)
*
* Please see the following paper for a description of the Ben-Or algorithm:
*
* author S. Gao and D. Panario
* title Tests and Constructions of Irreducible Polynomials over Finite Fields
* booktitle Foundations of Computational Mathematics
* year 1997
* publisher Springer Verlag
* pages 346-361
*
* The basic technique is this. You have a polynomial f(x) whose coefficients are
* in a base field GF(2^w). The polynomial is of degree n. You need to do the
* following for all i from 1 to n/2:
*
* Construct x^(2^w)^i modulo f. That will be a polynomial of maximum degree n-1
* with coefficients in GF(2^w). You construct that polynomial by starting with x
* and doubling it w times, each time taking the result modulo f. Then you
* multiply that by itself i times, again each time taking the result modulo f.
*
* When you're done, you need to "subtract" x -- since addition = subtraction =
* XOR, that means XOR x.
*
* Now, find the GCD of that last polynomial and f, using Euclid's algorithm. If
* the GCD is not one, then f is reducible. If it is not reducible for each of
* those i, then it is irreducible.
*
* In this code, I am using a gf_general_t to represent elements of GF(2^w). This
* is so that I can use base fields that are GF(2^64) or GF(2^128).
*
* I have two main procedures. The first is x_to_q_to_i_minus_x, which calculates
* x^(2^w)^i - x, putting the result into a gf_general_t * called retval.
*
* The second is gcd_one, which takes a polynomial of degree n and a second one
* of degree n-1, and uses Euclid's algorithm to decide if their GCD == 1.
*
* These can be made faster (e.g. calculate x^(2^w) once and store it).
*/

#include "gf_complete.h"
Expand Down
4 changes: 4 additions & 0 deletions gf_rand.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_rand.c -- Random number generator.
*/

Expand Down
4 changes: 4 additions & 0 deletions gf_time.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_time.c
*
* Performs timing for gf arithmetic
Expand Down
4 changes: 4 additions & 0 deletions gf_unit.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_unit.c
*
* Performs unit testing for gf arithmetic
Expand Down
4 changes: 4 additions & 0 deletions gf_w128.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w128.c
*
* Routines for 128-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_w16.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w16.c
*
* Routines for 16-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_w32.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w32.c
*
* Routines for 32-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_w4.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w4.c
*
* Routines for 4-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_w64.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w64.c
*
* Routines for 64-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_w8.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_w8.c
*
* Routines for 8-bit Galois fields
Expand Down
4 changes: 4 additions & 0 deletions gf_wgen.c
@@ -1,4 +1,8 @@
/*
* GF-Complete: A Comprehensive Open Source Library for Galois Field Arithmetic
* James S. Plank, Ethan L. Miller, Kevin M. Greenan,
* Benjamin A. Arnold, John A. Burnum, Adam W. Disney, Allen C. McBride.
*
* gf_wgen.c
*
* Routines for Galois fields for general w < 32. For specific w,
Expand Down

0 comments on commit b0e2ae0

Please sign in to comment.