STILL UNDER CONSTRUCTION

The Line Problem for Cubic Extensions

Background

In [Coh2009] and [Coh2010], Stephen Cohen investigates what he calls the line problem: Given a finite field F = 𝔽q and an extension K = 𝔽qn, and suppose that γ generates K over F (i.e., K = F(γ)); is it the case that for every non-zero β in K there exists an α in F such that β(γ + α) is primitive? Or rather, for which values of q does such a primitive element exist for every appropriate pair (β, γ)?

Cohen was able to resolve this question fully for the case of quadratic extensions. For cubic extensions, he was able to resolve it for all but 149 values of q, the largest of which was q = 9811. In [CTSB], improved sieving methods are described that reduce the number of unresolved cases considerably, with the largest remaining case being q = 4951. These cases were all checked with the program described on this page, and the result is the expected one: Such primitive elements always exist except when q = 3, 4, 5, 7, 9, 11, 13, 31, or 37.

The program used to do the final verifications, L3check, was of necessity highly optimised. This page endeavours to explain its workings, and how to use it to verify these claims.

Downloads

Usage

Arguments

Basic invocation: L3check p n f0 … fn 3 lg0 … lg3 k p1 … pk

The above basic invocation runs L3check for q = pn. A more detailed explanation of the arguments is provided below, but the easiest option is simply to run the provided Magma code in L3.m to generate the argument list. A typical example for q = 7:

$ magma -b L3.m > L3args(7); 7 1 4 1 3 4 6 3 0 3 2 3 19 > quit; $ L3check 7 1 4 1 3 4 6 3 0 3 2 3 19 q = 7: FAIL for beta = w^57, gamma = w^2 + w

The output will print the value of q tested, and either SUCCESS if all (β, γ) pairs were good, or FAIL and a bad pair (β, γ).

The remaining arguments are explained as follows:

Options

L3check also supports some options to change its behaviour. A brief description of these options will be given if invoking the program without arguments, or with an invalid argument list. All options must be provided before the first regular argument. The options available are:

-h

Prints an extended usage message, including an explanation of the argument format (similar to that given in the previous section).

-m

Prints the Magma source code for the L3args function to generate argument lists. This is the same code as in L3.m.

-v

Prints more information during the program's run, including timing for major subroutines.

-t nthreads

Parallelise the main search by using nthreads threads. This scales fairly well up to the number of execution units, but memory contention can cause the gains to be sublinear. It is probably best to experiment with smaller examples to find the best number of threads to use for your computer.

q = 523 is a decent choice for testing. For instance, on my current computer the main search for q = 523 takes 15.14s on a single thread, 3.99s with four threads, 3.33s with eight threads, and more threads do not lead to any improvement. This is as expected, since the machine has four cores with hyperthreading. Going up to four threads provides good speedup since we have four real execution units; going up to eight threads makes things a little better due to hyperthreading; and thereafter no improvement is possible.

-all

Prints out all bad pairs that are found, rather than stopping after the first one. This was useful during development of the program (to check that all bad cases were still being found), but is probably not something that you want to use. In particular, note that this will not print all bad pairs, since the algorithm only needs to test a subset of all pairs and so only a subset of all potential bad pairs.

-na

Disable the "antisort" step of the algorithm. Again, this is an option that you should not set; it is always right to antisort. This option was added in order to be able to measure the performance difference made by antisorting.

Bibliography

[Coh2009] S. D. Cohen, Generators of the cubic extension of a finite field, Journal of Combinatorics and Number Theory 1 (2009), no 3., 189—202
[Coh2010] S. D. Cohen, Primitive elements on lines in extensions of finite fields, Finite Fields: Theory and Applications, Contempory Mathematics 518, American Mathematical Society, 2010
[CTSB] S. D. Cohen, T. Trudgian, N. Sutherland, G. Bailey, Existence results for primitive elements in the cubic extension of a finite field, to appear