add jupyter notebook

This commit is contained in:
Maria Marchwicka 2020-11-09 09:34:33 +01:00
parent ee58512534
commit 412adc9abd

361
main.ipynb Normal file
View File

@ -0,0 +1,361 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"%load_ext pycodestyle_magic\n",
"\n",
"\n",
"# display full output, not only last result, except ended with semicolon\n",
"from IPython.core.interactiveshell import InteractiveShell\n",
"InteractiveShell.ast_node_interactivity = 'all';\n",
"from IPython.display import Image, SVG\n",
"\n",
"\n",
"# magic functions that do not work in current ipython --version\n",
"# \n",
"# auto check each cell, E703 - \"statement ends with a semicolon\"\n",
"# %flake8_on --ignore E703\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import importlib\n",
"\n",
"def import_sage(module_name):\n",
" \n",
" importlib.invalidate_caches() \n",
" sage_name = module_name + \".sage\"\n",
" python_name = module_name + \".sage.py\"\n",
"\n",
" if os.path.isfile(sage_name):\n",
" os.system('sage --preparse {}'.format(sage_name));\n",
" os.system('mv {} {}.py'.format(python_name, module_name))\n",
" if module_name in sys.modules:\n",
" return importlib.reload(sys.modules[module_name]) \n",
" return importlib.import_module(module_name, package=None)\n",
"\n",
"cs = import_sage('cable_signature')\n",
"# sig = import_sage('signature')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cables with 8 direct summands "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[1], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[0], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[5], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[4], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Relatively small cables "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"q_vector = (5, 13, 19, 41,\\\n",
" 7, 17, 23, 43)\n",
"cable_template.fill_q_vector(q_vector=q_vector)\n",
"cable = cable_template.cable\n",
"print(cable.knot_description)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# cable.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"q_vector_small = (3, 7, 13, 19,\\\n",
" 5, 11, 17, 23)\n",
"cable_template.fill_q_vector(q_vector=q_vector)\n",
"cable = cable_template.cable\n",
"print(cable.knot_description)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# cable.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Slice candidate"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"\n",
"\n",
"# cable.is_signature_big_for_all_metabolizers()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Other cables"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[4]], [-k[1], -k[3]],\\\n",
"# [k[2], k[3]], [-k[0], -k[2], -k[4]]]\"\n",
"\n",
"# knot_formula = \"[[k[3]], [-k[3]],\\\n",
"# [k[3]], [-k[3]] ]\"\n",
"\n",
"# knot_formula = \"[[k[3], k[2], k[0]], [-k[2], -k[0]],\\\n",
"# [k[1], k[0]], [-k[3], -k[1], -k[0]]]\"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[2]], [k[3], k[4]],\\\n",
"# [-k[0], -k[3], -k[4]], [-k[1], -k[2]]]\"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[2]], [k[3]],\\\n",
"# [-k[0], -k[1], -k[3]], [-k[2]]]\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"knot_formula = \"[[k[0], k[1], k[3]],\" + \\\n",
" \" [-k[1], -k[3]],\" + \\\n",
" \" [k[2], k[3]],\" + \\\n",
" \" [-k[0], -k[2], -k[3]]]\"\n",
"# q_vector = (3, 5, 7, 13)\n",
"q_vector = (3, 5, 7, 11)\n",
"\n",
"template = cs.CableTemplate(knot_formula, q_vector=q_vector)\n",
"cable = template.cable\n",
"cable.plot_all_summands()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"cable.plot_sum_for_theta_vector([0,4,0,4], save_to_dir=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[1], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[0], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[5], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[4], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"\n",
"\n",
"slice_canidate.q_order\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[5], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[4], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[1], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[0], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"cable_template.fill_q_vector()\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"\n",
"slice_canidate.q_order\n",
"slice_canidate.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[5], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[4], -k[6], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[1], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[0], -k[2], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"slice_canidate.q_order\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.0",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}