Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The following code is doing the job. (I hope the formula was retyped in an equivalent manner. For instance, (y/x)^(1/2) was replaced for our purposes by (y/x)^4 .)

F8 = GF(8)
F2 = GF(2)

def f( x, y, field=F8, d=3 ):

    if x == field(0):    y_by_x = field(0)
    else            :    y_by_x = y / x

    return d^2 * ( y * ( y_by_x^3 + 1 ) + ( 1 + d + d^2 ) * y_by_x * ( y_by_x + 1 ) ) \
        / \
        ( y_by_x^4 + d^2 * y_by_x^2 + 1 ) \
        + \
        y_by_x^4

print matrix( F2, 8, 8, [ [ f( x, y, F8, 3 ).trace() for y in F8 ] for x in F8 ] )

We get:

[0 0 0 1 0 1 1 1]
[0 1 1 1 0 0 1 0]
[0 0 1 0 1 1 1 0]
[0 0 1 1 0 0 1 1]
[0 1 0 1 1 1 0 0]
[0 1 0 1 0 1 0 1]
[0 0 0 0 1 1 1 1]
[0 1 1 0 1 0 0 1]

N.B. Which is the meaning of the above result?