Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 8800
Kernel: SageMath 9.5

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

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.

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.

psf_file_8 = urlopen('http://langevin.univ-tln.fr/project/spread/psf-8.txt') psf_file_9 = urlopen('http://langevin.univ-tln.fr/project/spread/psf-9.txt')
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.

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
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
len(psf_anf_9)
5443

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

psf_9_5438 = BentFunctionCayleyGraphClassification.load_mangled('psf_9_5438',dir=os.path.join("..","sobj"))
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.
Image in a Jupyter notebookImage in a Jupyter notebookImage in a Jupyter notebook