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.
%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