#!/usr/bin/env python3 r""" This package contains calculations of signature functions for knots (cable sums) It can be run as a sage script from the terminal or used in interactive mode. 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. """ from .utility import import_sage import os # # package = __name__.split('.')[0] # path = os.path.dirname(__file__) # import_sage('signature', package=package, path=path) # import_sage('cable_signature', package=package, path=path) # import_sage('main', package=package, path=path)