Irreducible Polynomial



2012/10/25 Robert Dodier <robert.dodier at gmail.com>

> On 2012-10-25, Volker van Nek <volkervannek at gmail.com> wrote:
>
> > I am working on a package for Galois Fields. I nearly finished coding the
> > functions but unfortunately at the moment most of them are not
> documented.
>
> Well, in a sense that's good, since I'd like to suggest changing the
> name of the function.
>
> > (%i2) gf_irr_p(x^4+x+1, 2);
> > (%o2) true
> >
> > which means that x^4+x+1 is irredicible over F2,
>
> I'd like to suggest spelling out "irreducible" in this function name.
> Maxima has a tremendous number of functions and variables and it is hard
> to keep track of them all, so spelling out names makes Maxima as a whole
> more comprehensible, especially for names which are not widely used.
>
> It's OK to use abbreviations for commonly-used names. In this case, I
> think it's OK to abbreviate Galois field as gf. (Also, 'GF' is a typical
> abbreviation anyway.)
>
> So the name I'll suggest is gf_irreducible_p or maybe gf_irreduciblep.
>

Robert,
gf_irreducible_p is OK by me.

The following list shows all the GF-functions I put to src. I hope the very
short and quick comments explain what these functions do. Feel free to make
any suggestions about other names.

As I posted in a previous mail to this list I coded AES encryption as an
application and test case for these functions. That showed me which of
these are used frequently.
E.g. the conversion functions gf_p2n and friends are used quite often and I
would like to keep them as short as possible.
Frequently used are also the arithmetic functions like gf_add and (in small
fields) the lookup arrays gf_powers and gf_logs.

gf_set : set the field parameters and global variables
gf_unset : reset the globals to nil
gf_minset : set a minimum of information to allow simple GF-arithmetics
gf_rat : option variable - the returned polys are of cre or of general form
gf_char : return the field characteristic set by gf_set
gf_prim : return the primitive element computed by gf_set
gf_red : return the reduction polynomial set or computed by gf_set
gf_info : print information about globals
gf_make_arrays : compute the lookup arrays gf_powers and gf_logs
gf_powers : global variable - all powers of gf_prim stored in an array
gf_logs : global variable - the corresponding logarithms
gf_mult_table : show a multiplication table of the field
gf_power_table : show a power table of the field
gf_add : add field elements
gf_sub : subtract field elements
gf_mult : mulitply field elements
gf_inv : return the inverse of a field element
gf_div : divide field elements
gf_exp : return the power of a field element
gf_exp : return the field exponent when used with no args
gf_ind : return the index of a field element
gf_log : return a logarithm wrt the primitive or another element
gf_p2n : convert a poly to the corresponding number
gf_n2p : convert a number to the corresponding poly
gf_p2l : convert a poly to a list of coefficients
gf_l2p : convert a list of coefficients to a poly
gf_l2n : convert a list of coefficients to a number
gf_n2l : convert a number to a list of coefficients
gf_irr_p : test of irreducibility
gf_prim_p : test of primitivity
gf_next_prim : find the next primitive element
gf_eval : evaluate an arbitrary poly in the context of the field
gf_rand : return a random field element
gf_factor : factor an arbitrary poly in the context of the field
gf_gcd : return the gcd of two field elements
gf_gcdex : return the ext gcd of two field elements
gf_ord : return the order of the field
gf_deg : return the degree of a field element
gf_minpoly : return the minimum poly of a field element
gf_normal_p : test if an element is normal
gf_normal : find a normal element by brute force
gf_random_normal : find a normal element by random
gf_normal_basis : compute a normal base
gf_nbrep : return a normal base representation of a field element
gf_matadd : add two matrices
gf_matmult : multiply two matrices
gf_matinv : return the inverse of a matrix


Greetings
Volker


>
> Volker, thanks very much for your work on the Galois fields package.
>
> best
>
> Robert Dodier
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>