Talk:Primitive polynomial (field theory)

message: There is still a serious error in this article, beside the confusion with two completely different notions of primitivity. Namely, the article says that
An irreducible polynomial of degree m, F(x) over GF(p) for prime p, is a primitive polynomial if the smallest positive integer n such that F(x) divides xn - 1 is n = pm − 1.
This is again mixing together two different notions. Look at the polynomial F(x)=x4+x3+x2+x+1 over GF(2). Then F(x) is irreducible, but not primitive in the quoted sense (F(x) divides x5-1). But the definition of a primitive polynomial as the minimal polynomial of a primitive element refers to a simple extension. But the residue of x in the representation of GF(16) as the factor (GF(2))[x]/(f(x)) is a primitive element over GF(2) and F(x) really is its minimal polynomial!
----
Doesn't Gauss's lemma  state that the product of primitive polynomials is primitive? Then how can all primitive polynomials be irreducible? -3mta3 08:37, 20 July 2005 (UTC)
replies: text: I hopefully fixed that. Oleg Alexandrov (talk) 03:16, 18 July 2007 (UTC)

text: That whole paragraph is confusing and goes into excessive details about LFSR that can anyways be found in the main LFSR article, so I am deleting it. Burritok (talk) 04:32, 22 November 2022 (UTC)
thread_title: Various comments

message: The article says:
:The roots of a primitive polynomial all have order p^m − 1.
I thought primitive polynomials are irreducible. How can they have roots?
Very confusing article... This one is a bit better: http://www.theory.csc.uvic.ca/~cos/inf/neck/PolyInfo.html
Woz2 (talk) 20:13, 6 November 2013 (UTC)
replies: text: Primitive polynomials are irreducible over GF(p) and have all their roots in GF(pm). Thus they factors in linear factors over GF(pm). I have rewritten this sentence to be less confusing. D.Lazard (talk) 21:26, 6 November 2013 (UTC)
replies: text:  Thanks! Woz2 (talk) 13:27, 7 November 2013 (UTC)

text: Indeed, if you read the definition with which the article begins, you will see that a primitive polynomial must have roots: the concept "primitive polynomial" is defined in terms of a root of the polynomial (referred to in the article as α). As for the page that you link to, if you find it "better", then that's fine, but it seems to me unhelpful to anyone who wants to use it to learn about primitive polynomials, as it does not give context to the concepts it defines. For example, it defines it in terms of the order of the polynomial, but gives no indication why happening to have order 2n-1 is significant or interesting, rather than defining it in terms of fundamental properties which are more relevant to why the concept is used. That page is part of the documentation of a software tool, and if all you want is to know how to use the tool, then the information given is probably adequate. However, for anyone wanting an understanding of the mathematical theory of fields, it seems to me to be of rather limited use. Also, parts of its explanations apply only to GF(2), not to other fields. JamesBWatson (talk) 21:43, 6 November 2013 (UTC)
replies: text: Thanks! I suppose my frustration with the article is that I came to it as a non-mathematician expecting answers to two engineering questions (that I think other readers might also have) namely "1) How does one generate a complete set of primitive polynomials? 2) Why is it that GF(2) primitive polynomials are a necessary and sufficient condition to generate maximal length sequences in linear feedback shift registers?" If I find the answers, I'll add them here or in the MLS and/or LFSR articles. Any pointers appreciated. Woz2 (talk) 13:27, 7 November 2013 (UTC)
replies: text: I had to laugh when I read this at http://mathworld.wolfram.com/PrimitivePolynomial.html "Amazingly, primitive polynomials over GF(2) define a recurrence relation which can be used to obtain a new pseudorandom bit from the n preceding ones." Yes, it is amazing. Citation needed. :-) Woz2 (talk) 22:35, 7 November 2013 (UTC)
thread_title:  Roots? 

message: It should be mentioned somewhere in the article that hardware implementations involving binary finite fields GF(2^m) benefit when reducing polynomial is primitive, where the primitive element is x == 2. This reduces gate count and speeds up calculations. Rcgldr (talk) 07:38, 20 May 2021 (UTC)
replies: text: 2 is not an element of GF(2^m), and cannot therefore be a primitive element. In any case, for mentioning anything, we must provide WP:reliable sources that discuss it. It is to you to provide them. Also, the choice of a "good" representation is already discussed with a source in Finite field#Non-prime fields. If other representations are better for some computations, the applications that require these representations must be mentioned. "Hardware implementations" is not an application, but a method of implementation of other applications. D.Lazard (talk) 09:47, 20 May 2021 (UTC)
replies: text: 2 is a common shorthand form of stating that \alpha = x + 0 , in binary shown as 1 0, or in hex as 2. For example Reed-SolomonProjectReport.pdf. It's also common to show elements of GF(2^n) or polynomials as hex values, for example CRC Zoo. Linear Feedback Shift Register like operations are similar to multiplying by 2 modulo a primitive polynomial, which is why hardware implementations of GF(2^n) usually choose a primitive polynomial. AES inversion step is an exception, it uses 0x11B which is irreducible, but not primitive, one of the primitive elements is 3, but the primitive element hex 1f is often used when mapping to a composite field such as GF((2^4)^2) or GF(((2^2)^2)^2). In the case of a composite field, such as GF((2^4)^2), again a primitive polynomial is desired, but in this case \alpha = x + 0  = hex 10 (not 2). Rcgldr (talk) 02:24, 21 May 2021 (UTC)
thread_title:  Noting that hardware implementations benefit from choosing primitive polynomials for GF(2^m) where the primitive element is 2 

message: Is there a primitive polynomial x^n + ... + 1 where x is not a primitive element or vice versa? If all primitive polynomials have x as a primitive element or if all polynomials that have x as a primitive element are primitive polynomials, then why not include this as a alternative and simpler definition for primitive polynomial? Rcgldr (talk) 16:38, 5 August 2021 (UTC)
thread_title:  Is there a primitive polynomial x^n + ... + 1 where x is not a primitive element or vice versa? 

message: The section on pseudo-random bit generation and LFSRs should at least discuss why x is a generator (not \alpha), and why you need to pick a primitive polynomial (vs. an irreducible one) in order to get x to be a generator, to get maximal length.  That is what brought me to this article in the first place, trying to understand how pseudo-random generators used for communications (such as PN11) work. — Preceding unsigned comment added by 108.60.43.48 (talk • contribs) 12:54, 14 March 2022 (UTC)
thread_title:  LFSRs and Primitive Polynomials