# Liverpool University Knot Theory Group Programs and Procedures

Some basic descriptions and instructions are attached.
Queries can be sent by e-mail to morton@liv.ac.uk.

This list can be found at URL http://www.liv.ac.uk/~su14/knotprogs.html or by following links from http://www.liv.ac.uk/maths/

See also the list of publications of the Liverpool Knot Theory group, where PostScript copies of some recent preprints can be found.

There are at present four programs, each calculating some invariant from a closed braid presentation. In each case the major constraint is the number of braid strings; the growth of calculation time with the number of crossings is roughly quadratic, and so typically it is not difficult to deal with braids having about 100 crossings.

Three of the programs are in Pascal. In each case the input required is the braid in terms of standard generators, with no separators, for example 123-2-231.

The three programs are

• br9z.pas
This is the original Homfly program (written by Short and Morton in 1985) using the Hecke algebra directly . The output here is the Homfly polynomial, as a matrix of coefficients, and also calculations of Alexander, Conway and Jones derived from it. It will deal with up to 9-string braids, and you can alter the number of strings within a session. If you have a more powerful machine or more storage you could try to make it work with 10 strings by altering a couple of the initial constants before recompiling. The program itself handles the polynomial coefficients of an element of the Hecke algebra by means of pointers, so as to avoid committing space unnecessarily in advance of the calculation.
The program has been updated slightly in 2014.

A C++ version of the basic Homfly program is also available.
This is homfly.cpp which works for up to 10 strings.

• jones12.pas

• This program (by Morton, 1994) calculates the Jones polynomial alone for a braid on up to 12 strings. The last two generators are input as a and b respectively, but otherwise as for the first program. It is based on the fundamental quantum group representation of the braid on a vector space of dimension 2^n, and calculates the contribution of each basis vector to the weighted trace of the representing endomorphism. As feedback it tells you how far through the calculation it is by noting which of the 2^n rows it is currently calculating (in groups of 10). Again this program works on pointers to hold the entries. Its output is the Jones polynomial multiplied by the factor s+s^(-1), and it is written in a form suitable for copying into Maple if you want to process it further. The program has been updated slightly in 2014.

• br9vas.p

• This program was developed by Morton in 1994 from the Hecke algebra program, and again deals with the Homfly polynomial, but makes use of the fact that the calculations mainly use the variable z and involve v by means of u = (1-v^2)/z, to write the Homfly polynomial as a power of v multiplied by a genuine polynomial in z and u. It is easy to identify the contribution to Vassiliev invariants up to a given degree, and to truncate the calculations so as to retain only this information. The output of the program is then a polynomial in u and z of restricted degree in z, depending on the degree of Vassiliev invariant required. The coefficients of powers of z, which are functions of u, are Vassiliev invariants of the type wanted, and are properly normalised once the polynomial is multiplied by the power of v (=(1-uz)^(1/2)) which is specified in the output.

For many purposes it is not necessary to multiply by this power series, but the polynomial in u and z is written so as to make it easy to read into Maple. Other natural changes of the output involve the substitutions v=s^-N, z=s-s^(-1), with s=exp(h/2). This gives a power series in h whose coefficients are polynomials in N, and tallies with the invariant from the fundamental representation of quantum sl(N). Putting N=0 gives the Alexander polynomial, N=1 gives a constant, and N=2 gives the Jones polynomial (with t=exp(h)).

The program itself deals with up to 9-string braids, but it allows the extra feature of closing off some strings of the braid before putting in a further 9-braid, and it thus allows the composition of two tangles based on partial closures of 9-braids. It was originally developed to help with calculations of parallels of mutants.

In this program polynomials are stored in arrays rather than in terms of pointers.

The three Pascal files need to be compiled before use. Via unix this might simply need the instruction
pc -o homfly br9z.pas to compile the first program (assuming it is in your files as br9z.pas) and to save the compiled version as an executable file called homfly.
Most recently (2021) I have used the Free Pascal compiler with Lazarus, to compile the first two programs on MacOSX, in both the 32bit and 64bit systems.
In the case of program 3, you may need to include the option -casesense in the compilation instructions, as there are both upper and lower case variable names used in it.

The last of the programs is a Maple procedure
• multiburau.txt.
This program, written by Morton and Hodgson in 1995, will calculate the multivariable Alexander polynomial of a closed braid. It also calculates the polynomial for the closed braid and axis.
It needs to be read in to a Maple session as Maple input, and used, for example for the figure-eight knot, by typing

• braid(3,1,-2,1,-2);
where the first entry is the number of braid strings, followed by the braid word with commas as separators. There are some comments at the beginning of the file to advise you of its use.
(The program has been amended slightly in 1999 to distinguish reliably between a knot and a link.)

H.R.Morton
Dept. of Mathematical Sciences
University of Liverpool
Peach Street
LIVERPOOL L69 7ZL