Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tl-tensor

A Python library for calculating the Jones polynomial of knots and links via abstract tensor contraction. It can scale quite large (hundreds of crossings) by using the cotengra library for contraction path planning.

Building

Clone, install maturin (pip install maturin) and run maturin develop --release. A working Rust and C compiler is required. It is helpful to install kahypar to get better results from cotengra.

Example

Calculating the Jones polynomial (with $t = x^4$) from a Markov-closed braid (in this case the knot $7_5$):

from tl_tensor import TLTensorNetwork

network = TLTensorNetwork.from_word([1, 1, 1, 1, 2, -1, 2, 2])
contracted = network.contract(optimize='auto')
jones = contracted.tensors[0].terms[0][1]
print(jones)

Using cotengra to optimize large computations (in this case the (15, 15) torus knot):

from tl_tensor import TLTensorNetwork, CotengraOptimizer

network = TLTensorNetwork.from_word(list(range(1, 15)) * 15)
opt = CotengraOptimizer(progbar=True, max_repeats=128)
info = network.contract_info(optimize=opt, parallel='auto', progbar=True)
print("contraction path =", info.path)
print("log10(cost) =", info.cost)

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages