Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 8800
Kernel: SageMath 9.5
import datetime import os import sqlite3 from boolean_cayley_graphs.bent_function import BentFunction from boolean_cayley_graphs.classification_database_sqlite3 import * from boolean_cayley_graphs.bent_function_cayley_graph_classification import BentFunctionCayleyGraphClassification
db_dirname=os.path.join("..","db") sobj_dirname=os.path.join("..","sobj")
rm ../db/sqlite3_cast128.db
cast128_db_name = os.path.join(db_dirname,"sqlite3_cast128.db") create_database(cast128_db_name) conn = create_classification_tables(cast128_db_name)
def insert_classifications(conn, xbox_beg, xbox_end, j_beg): then = datetime.datetime.now() print(" ", then) for xbox in range(xbox_beg, xbox_end): str_xbox = "%01d" % xbox for j in range(j_beg, 32): strj = "%02d" % j sobj_name = "cast128_" + str_xbox + "_" + str(j) + ".sobj" name = "cast128_" + str_xbox + "_" + strj cgc = BentFunctionCayleyGraphClassification.load_mangled( sobj_name, dir=sobj_dirname) insert_classification(conn, cgc, name) now = datetime.datetime.now() print(str_xbox, strj, now, now - then) then = now
insert_classifications(conn, 1, 2, 0)
insert_classifications(conn, 2, 3, 0)
insert_classifications(conn, 3, 4, 0)
insert_classifications(conn, 4, 5, 0)
insert_classifications(conn, 5, 6, 0)
insert_classifications(conn, 6, 7, 0)
insert_classifications(conn, 7, 8, 0)
insert_classifications(conn, 8, 9, 0)
#conn.rollback()
conn.close()
conn = connect_to_database(cast128_db_name)
curs = conn.cursor() curs.execute("SELECT name FROM bent_function") for row in curs: for x in row: print(x)
exceptions = ["2_01", "2_16", "4_27", "5_16", "5_27", "6_17", "7_15", "7_21"] for suffix in exceptions: exception_name = "cast128_" + suffix print("") print(exception_name + ":") c = select_classification_where_name(conn, exception_name) c.report() matrix_plot(c.bent_cayley_graph_index_matrix,cmap="gist_stern").show()
cgc = BentFunctionCayleyGraphClassification.load_mangled("cast128_5_27.sobj", dir=sobj_dirname) bentf = BentFunction(cgc.algebraic_normal_form) c = select_classification_where_bent_function(conn, bentf) c.report()
print(datetime.datetime.now(), "before") curs.execute("SELECT MAX(ROWID) FROM graph") print(datetime.datetime.now(), "after") for row in curs: for x in row: print(x)
curs = conn.cursor() print(datetime.datetime.now(), "before") curs.execute("SELECT COUNT(ROWID) FROM cayley_graph") print(datetime.datetime.now(), "after") for row in curs: for x in row: print(x)
conn.close()