2021-01-11 06:58:30 +01:00
|
|
|
#!/usr/bin/env python3
|
2021-01-25 02:20:17 +01:00
|
|
|
|
|
|
|
r"""
|
|
|
|
This package contains calculations of signature functions for knots (cable sums)
|
|
|
|
|
|
|
|
|
|
|
|
A knot (cable sum) is encoded as a list where each element (also a list)
|
|
|
|
corresponds to a cable knot, e.g. a list
|
|
|
|
[[1, 3], [2], [-1, -2], [-3]] encodes
|
|
|
|
T(2, 3; 2, 7) # T(2, 5) # -T(2, 3; 2, 5) # -T(2, 7).
|
|
|
|
|
|
|
|
To calculate the number of characters for which signature function vanish use
|
|
|
|
the function .
|
|
|
|
|
|
|
|
sage: eval_cable_for_null_signature([[1, 3], [2], [-1, -2], [-3]])
|
|
|
|
|
|
|
|
T(2, 3; 2, 7) # T(2, 5) # -T(2, 3; 2, 5) # -T(2, 7)
|
|
|
|
Zero cases: 1
|
|
|
|
All cases: 1225
|
|
|
|
Zero theta combinations:
|
|
|
|
(0, 0, 0, 0)
|
|
|
|
|
|
|
|
sage:
|
|
|
|
|
|
|
|
The numbers given to the function eval_cable_for_null_signature are k-values
|
|
|
|
for each component/cable in a direct sum.
|
|
|
|
|
|
|
|
To calculate signature function for a knot and a theta value, use function
|
|
|
|
get_signature_as_function_of_theta (see help/docstring for details).
|
|
|
|
|
|
|
|
About notation:
|
|
|
|
Cables that we work with follow a schema:
|
|
|
|
T(2, q_1; 2, q_2; 2, q_4) # -T(2, q_2; 2, q_4) #
|
|
|
|
# T(2, q_3; 2, q_4) # -T(2, q_1; 2, q_3; 2, q_4)
|
|
|
|
In knot_formula each k[i] is related with some q_i value, where
|
|
|
|
q_i = 2*k[i] + 1.
|
|
|
|
So we can work in the following steps:
|
|
|
|
1) choose a schema/formula by changing the value of knot_formula
|
|
|
|
2) set each q_i all or choose range in which q_i should varry
|
|
|
|
3) choose vector v / theata vector.
|
|
|
|
"""
|
|
|
|
|
2021-01-11 06:58:30 +01:00
|
|
|
from .utility import import_sage
|
2021-01-25 02:20:17 +01:00
|
|
|
import os
|
|
|
|
|
2021-07-15 13:48:37 +02:00
|
|
|
#
|
|
|
|
# package = __name__.split('.')[0]
|
|
|
|
# path = os.path.dirname(__file__)
|
|
|
|
# import_sage('signature', package=package, path=path)
|
2021-01-25 02:20:17 +01:00
|
|
|
# import_sage('cable_signature', package=package, path=path)
|
|
|
|
# import_sage('main', package=package, path=path)
|