cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A135488 Number of distinct self-dual normal bases for GF(2^n) over GF(2).

This page as a plain text file.
%I A135488 #25 Jun 19 2025 00:31:10
%S A135488 1,1,1,0,1,2,1,0,3,4,3,0,5,8,15,0,17,48,27,0,63,96,89,0,205,320,513,0,
%T A135488 565,1920,961,0,3267,4352,4095,0,7085,13824,20475,0,25625,64512,49923,
%U A135488 0,184275,182272,178481,0,299593,839680,1105425,0,1266205,4202496,3145725,0,7105563,9256960,9099507,0
%N A135488 Number of distinct self-dual normal bases for GF(2^n) over GF(2).
%H A135488 Max Alekseyev, <a href="https://oeis.org/wiki/User:Max_Alekseyev/gpscripts">PARI/GP Scripts for Miscellaneous Math Problems</a>
%H A135488 Joerg Arndt, <a href="http://www.jjj.de/fxt/#fxtbook">Matters Computational (The Fxtbook)</a>, see p. 910.
%H A135488 Dieter Jungnickel, Alfred J. Menezes and Scott A. Vanstone, <a href="https://doi.org/10.1090/S0002-9939-1990-1007501-X">On the Number of Self-Dual Bases of GF(q^m) Over GF(q)</a>, Proc. Amer. Math. Soc. 109 (1990), 23-29.
%o A135488 (PARI)
%o A135488 /* based on nsdb.gp by Max Alekseyev */
%o A135488 sdn(m,p) =
%o A135488 /* Number of distinct self-dual normal bases of GF(p^m) over GF(p) where p is prime */
%o A135488 {
%o A135488     my(F, f, g, s, c, d);
%o A135488     if ( p==2 && m%4==0, return(0) );
%o A135488     if ( !(m%p), /* p divides m */
%o A135488         s = m\p;
%o A135488         return( p^((p-1)*(s+(s*(p+1))%2)/2-1) * sdn(s,p) );
%o A135488     , /* else */
%o A135488         F = factormod( (x^m - 1)/(x - 1), p );
%o A135488         c = d = [];
%o A135488         for (i=1, matsize(F)[1],
%o A135488             f = lift(F[i,1]);
%o A135488             g = polrecip(f);
%o A135488             if ( f==g,  c = concat( c, vector(F[i,2],j,poldegree(f)/2) ); );
%o A135488             if ( lex(Vec(f), Vec(g))==1 ,
%o A135488                 d = concat( d, vector(F[i,2],j,poldegree(f)) );
%o A135488             );
%o A135488         );
%o A135488         return( 2^(p%2) * prod(i=1,#c, p^c[i] + 1) * prod(j=1,#d, p^d[j] - 1) / m );
%o A135488     );
%o A135488 }
%o A135488 vector(66, n, sdn(n,2)); /* _Joerg Arndt_, Jul 03 2011 */
%Y A135488 Cf. A088437.
%K A135488 nonn
%O A135488 1,6
%A A135488 _Max Alekseyev_, Feb 11 2008