A boolean function class that represents a General Linear Equivalence Class
The boolean_function_general_linear_class
module defines
the BooleanFunctionGeneralLinearClass
class,
which is a subclass of BooleanFunctionImproved that represents
a general linear equivalence class of boolean functions.
AUTHORS:
Paul Leopardi (2023-02-05): initial version
EXAMPLES:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import (
....: BooleanFunctionGeneralLinearClass)
sage: bf = BooleanFunctionGeneralLinearClass([0,0,0,1])
sage: type(bf)
<class 'boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass'>
sage: bf.truth_table(format='int')
(0, 0, 0, 1)
- class boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass[source]
Bases:
boolean_cayley_graphs.boolean_function_improved.BooleanFunctionImproved
,boolean_cayley_graphs.saveable.Saveable
A subclass of BooleanFunctionImproved that represents a general linear equivalence class of boolean functions.
The class inherits from BooleanFunctionImproved and is initialized in the same way. The class inherits from Saveable to obtain load_mangled and save_mangled methods.
EXAMPLES:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf1 = BooleanFunctionGeneralLinearClass([0,1,0,0]) sage: type(bf1) <class 'boolean_cayley_graphs.boolean_function_general_linear_class.BooleanFunctionGeneralLinearClass'> sage: bf1.algebraic_normal_form() x0*x1 + x0 sage: bf1.truth_table() (False, True, False, False)
TESTS:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf = BooleanFunctionGeneralLinearClass([0,1,0,0]) sage: print(bf) Boolean function with 2 variables sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf = BooleanFunctionGeneralLinearClass([0,1,0,0]) sage: latex(bf) \text{\texttt{Boolean{ }function{ }with{ }2{ }variables}}
- classmethod from_csv(csv_file_name)[source]
Constructor from a csv file.
The csv file is assumed to be produced by the method save_as_csv().
INPUT:
cls
– the class object.csv_file_name
– string: the name of the csv file to read from.
EXAMPLES:
sage: import csv sage: import os sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf2 = BooleanFunctionGeneralLinearClass([1,0,1,1]) sage: bf2_csv_name = tmp_filename(ext='.csv') sage: bf2.save_as_csv(bf2_csv_name) sage: bf2_test = BooleanFunctionGeneralLinearClass.from_csv(bf2_csv_name) sage: bf2 == bf2_test True sage: os.remove(bf2_csv_name) sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2) sage: bf3_csv_name = tmp_filename(ext='.csv') sage: bf3.save_as_csv(bf3_csv_name) sage: bf3_test = BooleanFunctionGeneralLinearClass.from_csv(bf3_csv_name) sage: bf3 == bf3_test True
- classmethod from_tt_buffer(dim, tt_buffer)[source]
Constructor from the buffer tt_buffer.
The buffer tt_buffer is assumed to be the result of method tt_buffer(), which returns a result of type buffer representing a truth table in hex.
INPUT:
cls
– the class object.dim
– integer: the dimension of the Boolean function.tt_buffer
– buffer: the result of the method tt_buffer() for the Boolean function.
EXAMPLES:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf2 = BooleanFunctionGeneralLinearClass([0,1,0,0]) sage: bf2_tt_buffer = bf2.tt_buffer() sage: bf2_test = BooleanFunctionGeneralLinearClass.from_tt_buffer(2, bf2_tt_buffer) sage: bf2_test.algebraic_normal_form() x0*x1 + x0 sage: bf2 == bf2_test True sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2) sage: bf3.nvariables() 3 sage: bf3_tt_buffer = bf3.tt_buffer() sage: bf3_test = BooleanFunctionGeneralLinearClass.from_tt_buffer(3, bf3_tt_buffer) sage: bf3 == bf3_test True
- classmethod from_tt_hex(dim, tt_hex)[source]
Constructor from the dimension dim, and the string tt_hex.
The string tt_hex is assumed to be the result of method tt_hex(), which returns a string representing a truth table in hex.
INPUT:
cls
– the class object.dim
– integer: the dimension of the Boolean function.tt_hex
– string: the result of the method tt_hex() for the Boolean function.
EXAMPLES:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf2 = BooleanFunctionGeneralLinearClass([0,1,0,0]) sage: bf2_tt_hex = bf2.tt_hex() sage: bf2_test = BooleanFunctionGeneralLinearClass.from_tt_hex(2, bf2_tt_hex) sage: bf2_test.algebraic_normal_form() x0*x1 + x0 sage: bf2 == bf2_test True
TESTS:
sage: from boolean_cayley_graphs.boolean_function_general_linear_class import ( ....: BooleanFunctionGeneralLinearClass) sage: bf1 = BooleanFunctionGeneralLinearClass([0,1]) sage: bf1_tt_hex = bf1.tt_hex() sage: bf1_test = BooleanFunctionGeneralLinearClass.from_tt_hex(1, bf1_tt_hex) sage: bf1_test.algebraic_normal_form() x sage: bf1 == bf1_test True sage: bf3 = BooleanFunctionGeneralLinearClass([0,1,0,0]*2) sage: bf3.nvariables() 3 sage: bf3_tt_hex = bf3.tt_hex() sage: bf3_test = BooleanFunctionGeneralLinearClass.from_tt_hex(3, bf3_tt_hex) sage: bf3 == bf3_test True