84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
from jinja2 import Environment, FileSystemLoader
|
|
from src.models import OuterKey, InnerKey, SubstitutionKey
|
|
|
|
|
|
def render_spn_algebra(data: dict):
|
|
# Set up the Jinja2 environment and template loader
|
|
file_loader = FileSystemLoader('./docs')
|
|
env = Environment(loader=file_loader)
|
|
|
|
# Load the template
|
|
template = env.get_template('spn_algebra_template.md')
|
|
# Render the template with the data
|
|
output = template.render(data)
|
|
|
|
# Print or save the output
|
|
output_file = "/Users/donov/Desktop/NKode_documentation/nkode/docs/spn_algebra.md"
|
|
with open(output_file, 'w') as fp:
|
|
fp.write(output)
|
|
print("File written successfully")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
height = 9
|
|
width = 8
|
|
total_attr = height * width
|
|
i0 = InnerKey.init_matrix(width, height)
|
|
i1 = InnerKey.init_matrix(width, height)
|
|
i2 = InnerKey.init_matrix(width, height)
|
|
i_identity = InnerKey.init_identity_matrix(width, height)
|
|
|
|
o0 = OuterKey.init_matrix(height)
|
|
o1 = OuterKey.init_matrix(height)
|
|
o2 = OuterKey.init_matrix(height)
|
|
o_identity = OuterKey.init_identity_matrix(height)
|
|
|
|
s0 = SubstitutionKey.init_matrix(width, height)
|
|
s1 = SubstitutionKey.init_matrix(width, height)
|
|
s2 = SubstitutionKey.init_matrix(width, height)
|
|
s_identity = SubstitutionKey.init_identity_matrix(width, height)
|
|
|
|
s0_o0 = s0 < o0
|
|
|
|
i0_o0 = i0 < o0
|
|
|
|
o0_o1 = o0 << o1
|
|
|
|
i0_i1 = i0 << i1
|
|
|
|
s0_i0 = s0 << i0
|
|
|
|
inv_o0 = ~o0
|
|
|
|
inv_i0 = ~i0
|
|
|
|
s0_s1 = s0 ^ s1
|
|
|
|
data = {
|
|
'height': height,
|
|
'width': width,
|
|
'total_attr': total_attr,
|
|
'i0': i0,
|
|
'i1': i1,
|
|
'i2': i2,
|
|
'i_identity': i_identity,
|
|
'o0': o0,
|
|
'o1': o1,
|
|
'o2': o2,
|
|
'o_identity': o_identity,
|
|
's0': s0,
|
|
's1': s1,
|
|
's2': s2,
|
|
's_identity': s_identity,
|
|
's0_o0': s0_o0,
|
|
'i0_o0': i0_o0,
|
|
'o0_o1': o0_o1,
|
|
'i0_i1': i0_i1,
|
|
's0_i0': s0_i0,
|
|
'inv_o0': inv_o0,
|
|
'inv_i0': inv_i0,
|
|
's0_s1': s0_s1
|
|
}
|
|
|
|
render_spn_algebra(data)
|