corection of the mistake in twist counting

This commit is contained in:
Maria Marchwicka 2019-05-16 14:03:07 +02:00
parent 8092b64e61
commit 57faf647f9

View File

@ -129,6 +129,24 @@ class SignatureFunction(object):
new_data.append((mod_one(1/2 + jump_arg/2), jump)) new_data.append((mod_one(1/2 + jump_arg/2), jump))
return SignatureFunction(new_data) return SignatureFunction(new_data)
def square_root(self):
# to read values for t^(1/2)
new_data = []
for jump_arg, jump in self.data.items():
if jump_arg < 1/2:
new_data.append((2 * jump_arg, jump))
return SignatureFunction(new_data)
def minus_square_root(self):
# to read values for t^(1/2)
new_data = []
for jump_arg, jump in self.data.items():
if jump_arg >= 1/2:
new_data.append((mod_one(2 * jump_arg), jump))
return SignatureFunction(new_data)
def __lshift__(self, shift): def __lshift__(self, shift):
# A shift of the signature functions corresponds to the rotation. # A shift of the signature functions corresponds to the rotation.
return self.__rshift__(-shift) return self.__rshift__(-shift)
@ -161,7 +179,7 @@ class SignatureFunction(object):
return self + other.__neg__() return self + other.__neg__()
def __str__(self): def __str__(self):
return '\n'.join([str(jump_arg) + ": " + str(jump) return ' '.join([str(jump_arg) + ": " + str(jump)
for jump_arg, jump in sorted(self.data.items())]) for jump_arg, jump in sorted(self.data.items())])
@ -256,8 +274,12 @@ def get_blanchfield_for_pattern(k_n, theta):
and theta/character. It returns object of class SignatureFunction. and theta/character. It returns object of class SignatureFunction.
It is based on Proposition 9.8. in Twisted Blanchfield Pairing. It is based on Proposition 9.8. in Twisted Blanchfield Pairing.
""" """
# TBD: k_n explanation
if theta == 0: if theta == 0:
return get_untwisted_signature_function(k_n) a = get_untwisted_signature_function(k_n)
return a.square_root() + a.minus_square_root()
results = [] results = []
k = abs(k_n) k = abs(k_n)
ksi = 1/(2 * k + 1) ksi = 1/(2 * k + 1)
@ -296,14 +318,17 @@ def get_cable_signature_as_theta_function(*arg):
Bl_theta(T_2, d) + Bl(K')(ksi_l^(-theta) * t) Bl_theta(T_2, d) + Bl(K')(ksi_l^(-theta) * t)
+ Bl(K')(ksi_l^theta * t) + Bl(K')(ksi_l^theta * t)
""" """
if theta > abs(arg[-1]):
# TBD: another formula (for t^2) description
k_n = abs(arg[-1])
if theta > k_n:
print "k for the pattern in the cable is " + str(arg[-1]) print "k for the pattern in the cable is " + str(arg[-1])
print "theta shouldn't be larger than this" print "theta shouldn't be larger than this"
return None return None
cable_signature = get_blanchfield_for_pattern(arg[-1], theta) cable_signature = get_blanchfield_for_pattern(arg[-1], theta)
for i, k in enumerate(arg[:-1][::-1]): for i, k in enumerate(arg[:-1][::-1]):
ksi = 1/(2 * abs(k) + 1) ksi = 1/(2 * k_n + 1)
power = 2^i power = 2^i
a = get_untwisted_signature_function(k) a = get_untwisted_signature_function(k)
shift = theta * ksi * power shift = theta * ksi * power