before deleting unused fragments
This commit is contained in:
parent
259764e414
commit
6ff1b83a17
@ -1,19 +1,19 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
def mod_one(n):
|
def mod_one(n):
|
||||||
"""This function returns the fractional part of some number."""
|
"""This function returns the fractional part of some number."""
|
||||||
if n >= 1:
|
n -= int(n)
|
||||||
return mod_one(n - 1)
|
|
||||||
if n < 0:
|
if n < 0:
|
||||||
return mod_one(n + 1)
|
n += 1
|
||||||
return n
|
return n
|
||||||
|
|
||||||
|
|
||||||
class av_signature_function(object):
|
class av_signature_function(object):
|
||||||
'''
|
"""
|
||||||
This simple class encodes twisted and untwisted signature functions
|
This simple class encodes twisted and untwisted signature functions
|
||||||
of knots. Since the signature function is entirely encoded by its signature
|
of knots. Since the signature function is entirely encoded by its signature
|
||||||
jump, the class stores only information about signature jumps
|
jump, the class stores only information about signature jumps
|
||||||
@ -22,7 +22,7 @@ class av_signature_function(object):
|
|||||||
where the key is the argument at which the functions jumps
|
where the key is the argument at which the functions jumps
|
||||||
and value encodes the value of the jump. Remember that we treat
|
and value encodes the value of the jump. Remember that we treat
|
||||||
signature functions as defined on the interval [0,1).
|
signature functions as defined on the interval [0,1).
|
||||||
'''
|
"""
|
||||||
def __init__(self, values=[]):
|
def __init__(self, values=[]):
|
||||||
# We will store data of signature jumps here.
|
# We will store data of signature jumps here.
|
||||||
self.data = collections.defaultdict(int)
|
self.data = collections.defaultdict(int)
|
||||||
@ -46,22 +46,17 @@ class av_signature_function(object):
|
|||||||
val += jump
|
val += jump
|
||||||
return val
|
return val
|
||||||
|
|
||||||
def total_sign_jump(self):
|
def sum_of_values(self):
|
||||||
# Total signature jump is the sum of all jumps.
|
# Total signature jump is the sum of all jumps.
|
||||||
a = sum([j[1] for j in self.to_list()])
|
a = sum([j[1] for j in self.to_list()])
|
||||||
b = sum(self.data.values())
|
b = sum(self.data.values())
|
||||||
# print b
|
# print b
|
||||||
assert a == b
|
assert a == b
|
||||||
|
assert a == 0
|
||||||
return sum(self.data.values())
|
return sum(self.data.values())
|
||||||
|
|
||||||
def total_absolute_sign_jump(self):
|
def sum_of_absolute_values(self):
|
||||||
# Total signature jump is the sum of all jumps.
|
return sum([abs(i) for i in self.data.values()])
|
||||||
a = sum([abs(j[1]) for j in self.to_list()])
|
|
||||||
# b = sum(self.data.values())
|
|
||||||
# print b
|
|
||||||
# assert a == b
|
|
||||||
return a
|
|
||||||
|
|
||||||
|
|
||||||
def double_cover(self):
|
def double_cover(self):
|
||||||
new_data = []
|
new_data = []
|
||||||
@ -80,7 +75,7 @@ class av_signature_function(object):
|
|||||||
# by the plot function.
|
# by the plot function.
|
||||||
l = self.to_list()
|
l = self.to_list()
|
||||||
vals = ([(d[0], sum(2 * j[1] for j in l[:l.index(d)+1])) for d in l] +
|
vals = ([(d[0], sum(2 * j[1] for j in l[:l.index(d)+1])) for d in l] +
|
||||||
[(0, self.data[0]), (1, self.total_sign_jump())])
|
[(0, self.data[0]), (1, self.sum_of_values())])
|
||||||
return vals
|
return vals
|
||||||
|
|
||||||
def plot(self):
|
def plot(self):
|
||||||
@ -172,17 +167,12 @@ def get_twisted_signature_function(k_n, theta):
|
|||||||
# print "normal"
|
# print "normal"
|
||||||
for e in range(1, theta):
|
for e in range(1, theta):
|
||||||
if (theta + e) % 2 == 0:
|
if (theta + e) % 2 == 0:
|
||||||
# print e * ksi, ": 1"
|
|
||||||
# print 1 - e * ksi, ": -1 "
|
|
||||||
results.append((e * ksi, 1 * sgn(k_n)))
|
results.append((e * ksi, 1 * sgn(k_n)))
|
||||||
results.append((1 - e * ksi, -1 * sgn(k_n)))
|
results.append((1 - e * ksi, -1 * sgn(k_n)))
|
||||||
|
|
||||||
# print "reversed"
|
# print "reversed"
|
||||||
for e in range(theta + 1, k + 1):
|
for e in range(theta + 1, k + 1):
|
||||||
if (theta + e) % 2 != 0:
|
if (theta + e) % 2 != 0:
|
||||||
continue
|
continue
|
||||||
# print e * ksi, ": -1"
|
|
||||||
# print 1 - e * ksi, ": 1 "
|
|
||||||
results.append((e * ksi, -1 * sgn(k_n)))
|
results.append((e * ksi, -1 * sgn(k_n)))
|
||||||
results.append((1 - e * ksi, 1 * sgn(k_n)))
|
results.append((1 - e * ksi, 1 * sgn(k_n)))
|
||||||
return av_signature_function(results)
|
return av_signature_function(results)
|
||||||
@ -204,9 +194,6 @@ def get_sigma_set(p, q):
|
|||||||
# Bl_theta(K'_(2, d) = Bl_theta(T_2, d) + Bl(K')(ksi_l^(-theta) * t) + Bl(K')(ksi_l^theta * t)
|
# Bl_theta(K'_(2, d) = Bl_theta(T_2, d) + Bl(K')(ksi_l^(-theta) * t) + Bl(K')(ksi_l^theta * t)
|
||||||
|
|
||||||
def get_cable_signature_as_theta_function(*arg):
|
def get_cable_signature_as_theta_function(*arg):
|
||||||
if len(arg) < 2:
|
|
||||||
print "It is not a cable"
|
|
||||||
return None
|
|
||||||
def signture_function(theta):
|
def signture_function(theta):
|
||||||
if theta > abs(arg[-1]):
|
if theta > abs(arg[-1]):
|
||||||
print "k for pattern is " + str(arg[-1])
|
print "k for pattern is " + str(arg[-1])
|
||||||
@ -233,8 +220,6 @@ def get_cable_signature_as_theta_function(*arg):
|
|||||||
return cable_signature
|
return cable_signature
|
||||||
return signture_function
|
return signture_function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_untwisted_signutere_function(*arg):
|
def get_untwisted_signutere_function(*arg):
|
||||||
signture_function = av_signature_function([(0, 0)])
|
signture_function = av_signature_function([(0, 0)])
|
||||||
for k_i in arg:
|
for k_i in arg:
|
||||||
@ -256,6 +241,73 @@ def get_function_of_theta_for_sum(*arg):
|
|||||||
return signature_function
|
return signature_function
|
||||||
return signture_function_for_sum
|
return signture_function_for_sum
|
||||||
|
|
||||||
|
def first_sum(k_0, k_1, k_2, k_3):
|
||||||
|
F = get_function_of_theta_for_sum([k_3, -k_2], [-k_0, -k_1, -k_3], [k_0, k_1, k_2])
|
||||||
|
for theta_0 in range(k_3 + 1):
|
||||||
|
for theta_1 in range(k_2 + 1):
|
||||||
|
f = F(theta_0, theta_1)
|
||||||
|
f.sum_of_values()
|
||||||
|
if f.sum_of_absolute_values() != 0 and theta_1 + theta_0 == 0:
|
||||||
|
print 4 * "\n"
|
||||||
|
print "OJOJOJOJJOOJJOJJ!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3
|
||||||
|
print theta_0, theta_1
|
||||||
|
|
||||||
|
if f.sum_of_absolute_values() == 0 and theta_1 + theta_0 != 0:
|
||||||
|
# print "HURA"
|
||||||
|
# print k_0, k_1, k_2, k_3
|
||||||
|
# print theta_0, theta_1
|
||||||
|
if k_2 != k_3 or theta_0 != theta_1:
|
||||||
|
print 4 * "\n"
|
||||||
|
print " SUPER!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3
|
||||||
|
print theta_0, theta_1
|
||||||
|
|
||||||
|
def second_sum(k_0, k_1, k_2, k_3, k_4):
|
||||||
|
F = get_function_of_theta_for_sum([], [k_0, k_1, k_2], [k_3, k_4], [-k_0, -k_3, -k_4], [-k_1, -k_2])
|
||||||
|
for theta_0 in range(k_2 + 1):
|
||||||
|
for theta_1 in range(k_4 + 1):
|
||||||
|
for theta_2 in range(k_4 + 1):
|
||||||
|
for theta_3 in range(k_2 + 1):
|
||||||
|
f = F(theta_0, theta_1, theta_2, theta_3)
|
||||||
|
if f.sum_of_absolute_values() != 0 and theta_1 + theta_0 + theta_3 + theta_2 == 0:
|
||||||
|
print 4 * "\n"
|
||||||
|
print "2 OJOJOJOJJOOJJOJJ!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3, k_4
|
||||||
|
print theta_0, theta_1, theta_2, theta_3
|
||||||
|
|
||||||
|
if f.sum_of_absolute_values() == 0 and theta_1 + theta_0 + theta_3 + theta_2 != 0:
|
||||||
|
# print "HURA"
|
||||||
|
# print k_0, k_1, k_2, k_3
|
||||||
|
# print theta_0, theta_1
|
||||||
|
if k_2 != k_3 or theta_0 != theta_1:
|
||||||
|
print 4 * "\n"
|
||||||
|
print "2 SUPER!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3, k_4
|
||||||
|
print theta_0, theta_1, theta_2, theta_3
|
||||||
|
|
||||||
|
def third_sum(k_0, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8):
|
||||||
|
F = get_function_of_theta_for_sum([], [k_0, k_1, k_2], [k_3, k_4], [-k_5, -k_6, -k_7], [-k_8, -k_8])
|
||||||
|
for theta_0 in range(k_2 + 1):
|
||||||
|
for theta_1 in range(k_4 + 1):
|
||||||
|
for theta_2 in range(k_4 + 1):
|
||||||
|
for theta_3 in range(k_2 + 1):
|
||||||
|
f = F(theta_0, theta_1, theta_2, theta_3)
|
||||||
|
if f.sum_of_absolute_values() != 0 and theta_1 + theta_0 + theta_3 + theta_2 == 0:
|
||||||
|
print 4 * "\n"
|
||||||
|
print "3 OJOJOJOJJOOJJOJJ!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3, k_4
|
||||||
|
print theta_0, theta_1, theta_2, theta_3
|
||||||
|
|
||||||
|
if f.sum_of_absolute_values() == 0 and theta_1 + theta_0 + theta_3 + theta_2 != 0:
|
||||||
|
# print "HURA"
|
||||||
|
# print k_0, k_1, k_2, k_3
|
||||||
|
# print theta_0, theta_1
|
||||||
|
if k_2 != k_3 or theta_0 != theta_1:
|
||||||
|
print 4 * "\n"
|
||||||
|
print "3 SUPER!!!!!!!!!!"
|
||||||
|
print k_0, k_1, k_2, k_3, k_4
|
||||||
|
print theta_0, theta_1, theta_2, theta_3
|
||||||
|
|
||||||
def tmp(limit=None):
|
def tmp(limit=None):
|
||||||
if limit is None:
|
if limit is None:
|
||||||
@ -264,45 +316,6 @@ def tmp(limit=None):
|
|||||||
for k_1 in range(1, limit):
|
for k_1 in range(1, limit):
|
||||||
for k_2 in range(1, limit):
|
for k_2 in range(1, limit):
|
||||||
for k_3 in range(1, limit):
|
for k_3 in range(1, limit):
|
||||||
F = get_function_of_theta_for_sum([k_3, -k_2], [-k_0, -k_1, -k_3], [k_0, k_1, k_2])
|
first_sum(k_0, k_1, k_2, k_3)
|
||||||
for theta_0 in range(k_3 + 1):
|
|
||||||
for theta_1 in range(k_2 + 1):
|
|
||||||
f = F(theta_0, theta_1)
|
|
||||||
if f.total_absolute_sign_jump() != 0 and theta_1 + theta_0 == 0:
|
|
||||||
print 4 * "\n"
|
|
||||||
print "OJOJOJOJJOOJJOJJ!!!!!!!!!!"
|
|
||||||
print k_0, k_1, k_2, k_3
|
|
||||||
print theta_0, theta_1
|
|
||||||
|
|
||||||
if f.total_absolute_sign_jump() == 0 and theta_1 + theta_0 != 0:
|
|
||||||
# print "HURA"
|
|
||||||
# print k_0, k_1, k_2, k_3
|
|
||||||
# print theta_0, theta_1
|
|
||||||
if k_2 != k_3 or theta_0 != theta_1:
|
|
||||||
print 4 * "\n"
|
|
||||||
print " SUPER!!!!!!!!!!"
|
|
||||||
print k_0, k_1, k_2, k_3
|
|
||||||
print theta_0, theta_1
|
|
||||||
|
|
||||||
for k_4 in range(1, limit):
|
for k_4 in range(1, limit):
|
||||||
F = get_function_of_theta_for_sum([], [k_0, k_1, k_2], [k_3, k_4], [-k_0, -k_3, -k_4], [-k_1, -k_2])
|
second_sum(k_0, k_1, k_2, k_3, k_4)
|
||||||
for theta_0 in range(k_2 + 1):
|
|
||||||
for theta_1 in range(k_4 + 1):
|
|
||||||
for theta_2 in range(k_4 + 1):
|
|
||||||
for theta_3 in range(k_2 + 1):
|
|
||||||
f = F(theta_0, theta_1, theta_2, theta_3)
|
|
||||||
if f.total_absolute_sign_jump() != 0 and theta_1 + theta_0 + theta_3 + theta_2 == 0:
|
|
||||||
print 4 * "\n"
|
|
||||||
print "2 OJOJOJOJJOOJJOJJ!!!!!!!!!!"
|
|
||||||
print k_0, k_1, k_2, k_3, k_4
|
|
||||||
print theta_0, theta_1, theta_2, theta_3
|
|
||||||
|
|
||||||
if f.total_absolute_sign_jump() == 0 and theta_1 + theta_0 + theta_3 + theta_2 != 0:
|
|
||||||
# print "HURA"
|
|
||||||
# print k_0, k_1, k_2, k_3
|
|
||||||
# print theta_0, theta_1
|
|
||||||
if k_2 != k_3 or theta_0 != theta_1:
|
|
||||||
print 4 * "\n"
|
|
||||||
print "2 SUPER!!!!!!!!!!"
|
|
||||||
print k_0, k_1, k_2, k_3, k_4
|
|
||||||
print theta_0, theta_1, theta_2, theta_3
|
|
||||||
|
Loading…
Reference in New Issue
Block a user