CoCalc Public FilesBoolean-Cayley-graphs / sage-code / cayley_graphs_boolean_dimension_8_partial_spreads.ipynb
Author: Paul Leopardi
Compute Environment: Ubuntu 18.04 (Deprecated)

# Cayley graphs of partial spread binary bent functions of dimension 8.

In [1]:
import os
from boolean_cayley_graphs.bent_function import BentFunction
from boolean_cayley_graphs.bent_function_cayley_graph_classification import BentFunctionCayleyGraphClassification


This worksheet loads files from Philippe Langevin's web page http://langevin.univ-tln.fr/project/spread/psp.html.

In [2]:
from urllib.request import urlopen


Download the files psf-8.txt and psf-9.txt, which are the files that contain details of the partial spread bent functions.

In [3]:
psf_file_8 = urlopen('http://langevin.univ-tln.fr/project/spread/psf-8.txt')

In [4]:
load("langevin_hou_partial_spreads.sage")


Parse the files of details of partial spread bent functions into two lists of algebraic normal forms, and convert these to two lists of bent functions.

In [5]:
psf_anf_8 = read_langevin_hou_anf_list(psf_file_8)
psf_bentf_8 = [BentFunction(p) for p in psf_anf_8[1:]]
print(all([f.is_bent() for f in psf_bentf_8]))
len(psf_bentf_8)

True
9316
In [6]:
psf_anf_9 = read_langevin_hou_anf_list(psf_file_9)
psf_bentf_9 = [BentFunction(p) for p in psf_anf_9[1:]]
print(all([f.is_bent() for f in psf_bentf_9]))
len(psf_bentf_9)

True
5442
In [7]:
len(psf_anf_9)

5443

Now load an example of a classification that has already been performed.

In [8]:
psf_9_5438 = BentFunctionCayleyGraphClassification.load_mangled('psf_9_5438',dir=os.path.join("..","sobj"))

In [9]:
psf_9_5438.report()
matrix_plot(psf_9_5438.weight_class_matrix,cmap='gist_stern').show()
matrix_plot(psf_9_5438.bent_cayley_graph_index_matrix,cmap='gist_stern').show()
matrix_plot(psf_9_5438.dual_cayley_graph_index_matrix,cmap='gist_stern').show()

Algebraic normal form of Boolean function: x0*x1*x2*x4 + x0*x1*x2*x7 + x0*x1*x3*x6 + x0*x1*x4*x5 + x0*x1*x4*x6 + x0*x1*x4*x7 + x0*x1*x5*x6 + x0*x1*x5*x7 + x0*x1*x7 + x0*x2*x3*x5 + x0*x2*x4*x5 + x0*x2*x5 + x0*x2*x6*x7 + x0*x2*x6 + x0*x2*x7 + x0*x3*x4*x5 + x0*x3*x4*x7 + x0*x3*x4 + x0*x3*x6*x7 + x0*x3*x7 + x0*x4*x6 + x0*x4*x7 + x0*x5*x6*x7 + x0*x5*x7 + x0*x6*x7 + x0*x6 + x0*x7 + x1*x2*x3*x7 + x1*x2*x4*x5 + x1*x2*x5*x6 + x1*x2*x5 + x1*x2*x6*x7 + x1*x2*x6 + x1*x3*x4*x5 + x1*x3*x4 + x1*x3*x5 + x1*x3*x6*x7 + x1*x4*x5*x7 + x1*x4*x6 + x1*x4 + x1*x5*x6 + x1*x6*x7 + x1*x7 + x2*x3*x4*x6 + x2*x3*x4*x7 + x2*x3*x4 + x2*x3*x5*x6 + x2*x3*x5*x7 + x2*x3*x5 + x2*x3*x6*x7 + x2*x3*x6 + x2*x3*x7 + x2*x4*x5*x7 + x2*x4*x5 + x2*x4*x6*x7 + x2*x4 + x2*x5*x6 + x2*x5*x7 + x2*x5 + x2*x6*x7 + x3*x4*x5*x6 + x3*x4*x7 + x3*x5*x7 + x3*x5 + x3*x6*x7 + x3*x6 Function is bent. SDP design incidence structure t-design parameters: (True, (2, 256, 120, 56)) Classification of Cayley graphs and classification of Cayley graphs of duals differ in matrices of indexes: There are 16 extended Cayley classes in the extended translation class. There are 16 extended Cayley classes of dual bent functions in the extended translation class, and 16 extended Cayley classes in the union of the two.
In [ ]: