Sara,
I fear I do not really get what you are trying to do and what your
application is about. But I hope the following helps in any way.
Well, a primitive polynomial is defined as the minimal polynomial of a
primitive element of Fp^n. I haven't yet implemented an algorithm to
compute these polynomials but there are possibilities to get them.
I stay with p=3, n=4.
(%i1) display2d : false$
(%i2) gf_set(3, 4);
(%o2) [x,x^4+x+2]
(%i3) totient(3^4-1)/4;
(%o3) 8
There should be 8 primitive polynomials. According to the definition
above we get
(%i3) S : set()$
(%i4) for n:1 thru 80 do
if gf_primitive_p(p : gf_n2p(n)) then
S : adjoin(gf_minimal_poly(p), S)$
(%i5) S;
(%o5) {z^4+z+2,z^4+2*z+2,z^4+z^3+2,z^4+z^3+z^2+2*z+2,z^4+z^3+2*z^2+2*z+2,
z^4+2*z^3+2,z^4+2*z^3+z^2+z+2,z^4+2*z^3+2*z^2+z+2}
I used a set to eliminate duplicates. All 8 are irreducible.
(%i6) map(gf_irreducible_p, listify(S));
(%o6) [true,true,true,true,true,true,true,true]
Now searching for elements of F3^4 with order 4:
(%i7) for n:1 thru 80 do
if gf_order(p : gf_n2p(n)) = 4 then print(p)$
x^3+x^2+2*x
2*x^3+2*x^2+x
(%i8) a : x^3+x^2+2*x$
(%i9) gf_exp(a, 2);
(%o9) 2
(%i10) gf_exp(a, 3);
(%o10) 2*x^3+2*x^2+x
(%i11) gf_exp(a, 4);
(%o11) 1
I am interested to know what your application is about. This package
is work in progress I would like to know what users really need.
Volker van Nek
2013/2/20 Sara Mussie <saramussie at gmx.net>:
> Hi Volker,
>
> x^4+x+2 is irreducible over F3 and you tell me this in your first answer.
>
> My question was if it is also 'primitive'. There are irreducible polynomials and primitive irreducible polynomials. For my construction I need the 'primitive irreducible polynomials' to find the subgroup. The primitive irreducible polynomials gives me that subgroup.
>
> There is only one real subgroup of GF(3)^4 with the order 4 that meets the condition
> a*a = b and b*b = a and a*b = 1 and generates all the side classes of a quotient space, which I need to generate all 2-dimensional subspaces.
>
> Maybe you can give me the necessary command to generate all irreducible polynomials like x^4+x+2 over F3 and then I can find the primitive irreducible polynomial under these irreducible polynomials.
>
> Thanks.
>
> Regards,
> Sara
>
>
> -------- Original-Nachricht --------
>> Datum: Tue, 19 Feb 2013 22:21:34 +0100
>> Von: Volker van Nek <volkervannek at gmail.com>
>> An: Sara Mussie <saramussie at gmx.net>
>> CC: Maxima at math.utexas.edu
>> Betreff: Re: [Maxima] GF(3^4)
>
>> Yes, x^4+x+2 is irreducible over F3. Please read again my first answer.
>>
>> Volker van Nek
>>
>> 2013/2/19 Sara Mussie <saramussie at gmx.net>:
>> > Hi,
>> >
>> > yes, you are right. It is modulo 2 but not modulo 3.
>> >
>> > Can you tell me if x^4+x+2 is primitive irreducible?
>> >
>> > LG,
>> > Sara
>> >
>> > -------- Original-Nachricht --------
>> >> Datum: Tue, 19 Feb 2013 15:41:24 +0100
>> >> Von: Volker van Nek <volkervannek at gmail.com>
>> >> An: Sara Mussie <saramussie at gmx.net>
>> >> CC: Maxima at math.utexas.edu
>> >> Betreff: Re: [Maxima] GF(3^4)
>> >
>> >> Sara, x^4+x+1 is not irreducible over F3. So that will make a
>> difference.
>> >>
>> >> (%i1) display2d : false$
>> >> (%i2) gf_irreducible_p(x^4+x+1, 2);
>> >> (%o2) true
>> >>
>> >> OK modulo 2, but
>> >>
>> >> (%i3) gf_irreducible_p(x^4+x+1, 3);
>> >> (%o3) false
>> >>
>> >> The factors over F3:
>> >>
>> >> (%i4) gf_factor(x^4+x+1, 3);
>> >> (%o4) (x+2)*(x^3+x^2+x+2)
>> >>
>> >> (%i5) gf_set(3, x^4+x+1);
>> >> (%o5) [false,x^4+x+1]
>> >>
>> >> If I use x^4+x+1 for reduction this is the answer of gf_set in Maxima
>> >> 5.29.1.
>> >>
>> >> The answer in 5.30 will be of more information. I load the recent git
>> >> version of src/numth.lisp:
>> >>
>> >> (%i6) load("/home/volker/Maxima/git_130219/numth.lisp")$
>> >>
>> >> (%i7) gf_set(3, x^4+x+1);
>> >> (%o7) gf_data(3,4,x^4+x+1,false,81,52,[[2,2],[13,1]])
>> >>
>> >> If display2d will be true, gf_set will answer what gf_info does:
>> >> (%i8) gf_info();
>> >> (%o8) "characteristic = 3, exponent = 4, reduction = x^4+x+1,
>> >> primitive = false, cardinality = 81, order = 52, factors_of_order =
>> >> [[2,2],[13,1]]"
>> >>
>> >> That means the group (F3/(x^4+x+1))* has no generator, so it is not
>> >> cyclic. F3/(x^4+x+1) has 81 elements, the group (F3/(x^4+x+1))* only
>> >> 52. F3/(x^4+x+1) is not a field. E.g. x+2 is no unit.
>> >>
>> >> (%i9) gf_inv(x+2);
>> >> (%o9) false
>> >>
>> >> Volker van Nek
>> >>
>> >>
>> >> 2013/2/19 Sara Mussie <saramussie at gmx.net>:
>> >> > Hi Volker,
>> >> >
>> >> > that helps to get started. I use the irreducible primitive polynomial
>> >> x^4+x+1. It shouldn't make any different right? but will look at the
>> package
>> >> now.
>> >> >
>> >> > Thank you.
>> >> >
>> >> > Regards,
>> >> > Sara
>> >> >
>> >> > -------- Original-Nachricht --------
>> >> >> Datum: Tue, 19 Feb 2013 13:25:00 +0100
>> >> >> Von: Volker van Nek <volkervannek at gmail.com>
>> >> >> An: Sara Mussie <saramussie at gmx.net>
>> >> >> CC: Maxima at math.utexas.edu
>> >> >> Betreff: Re: [Maxima] GF(3^4)
>> >> >
>> >> >> Hi,
>> >> >>
>> >> >> there is a package for Galois fields. See
>> >> >> share/contrib/gf/gf_manual.pdf
>> >> >> for documentation. It is work in progress, so it will be slightly
>> >> >> different in the next version. In 5.29.1 a session looks like this.
>> >> >>
>> >> >> (%i1) display2d : false$
>> >> >> (%i2) gf_set(3, 4);
>> >> >> (%o2) [x,x^4+x+2]
>> >> >>
>> >> >> This defines F3^4 with x as a generator of the group (F3^4)* of
>> order
>> >> 80
>> >> >> (%i3) [gf_primitive(), gf_order()];
>> >> >> (%o3) [x,80]
>> >> >>
>> >> >> and with x^4+x+2 as the irreducible reduction polynomial.
>> >> >> (%i4) [gf_reduction(), gf_irreducible_p(x^4+x+2)];
>> >> >> (%o4) [x^4+x+2,true]
>> >> >>
>> >> >> Now I print 0 thru 80 literally, in base 3 and viewed as a
>> polynomial
>> >> in
>> >> >> F3^4.
>> >> >> (%i5) for n:0 thru 80 do printf(true, "~d : ~3R : ~a ~%", n, n,
>> >> >> gf_n2p(n))$
>> >> >> 0 : 0 : 0
>> >> >> 1 : 1 : 1
>> >> >> 2 : 2 : 2
>> >> >> 3 : 10 : x
>> >> >> 4 : 11 : x+1
>> >> >> 5 : 12 : x+2
>> >> >> 6 : 20 : 2*x
>> >> >> 7 : 21 : 2*x+1
>> >> >> 8 : 22 : 2*x+2
>> >> >> 9 : 100 : x^2
>> >> >> 10 : 101 : x^2+1
>> >> >> 11 : 102 : x^2+2
>> >> >> 12 : 110 : x^2+x
>> >> >> 13 : 111 : x^2+x+1
>> >> >> 14 : 112 : x^2+x+2
>> >> >> 15 : 120 : x^2+2*x
>> >> >> 16 : 121 : x^2+2*x+1
>> >> >> 17 : 122 : x^2+2*x+2
>> >> >> 18 : 200 : 2*x^2
>> >> >>
>> >> >> etc.
>> >> >>
>> >> >> Hope that helps to get started.
>> >> >> Volker van Nek
>> >> >>
>> >> >>
>> >> >> 2013/2/19 Sara Mussie <saramussie at gmx.net>:
>> >> >> > Hi everybody,
>> >> >> >
>> >> >> > hope all is well with you.
>> >> >> >
>> >> >> > I am working on a (2,n)-Threshold Secret Sharing Scheme based on
>> the
>> >> >> vector space construction. My example works over the elements of
>> >> GF(2)^4. I am
>> >> >> not sure about the right setting of my parameters for any random
>> number
>> >> of
>> >> >> participants.
>> >> >> >
>> >> >> > Can anybody tell me the elements of GF(3)^4 expressed as
>> polynomials?
>> >> >> >
>> >> >> > V = GF(2)^4 ; 16 elements
>> >> >> >
>> >> >> > expressed as polynomials:
>> >> >> >
>> >> >> > V = {0, 1, X, X+1, X^2, X^2+1, X^2+X, X^2+X+1, X^3, X^3+1, X^3+X,
>> >> >> X^3+X+1,
>> >> >> > X^3 + X^2, X^3 + X^2 + 1, X^3 + X^2 + X, X^3 + X^2 + X + 1}
>> >> >> >
>> >> >> > T = GF(3)^4 ; 81 elements
>> >> >> > expressed as polynomials:
>> >> >> > ?
>> >> >> >
>> >> >> > Thanks you.
>> >> >> >
>> >> >> > Regards,
>> >> >> > Sara
>> >> >> > _______________________________________________
>> >> >> > Maxima mailing list
>> >> >> > Maxima at math.utexas.edu
>> >> >> > http://www.math.utexas.edu/mailman/listinfo/maxima