Once the theory and the example are understood, one might think that developing the appropriate program would be fairly simple. Let a notation {(a_1,b_1),(a_2,b_2),...,(a_N,b_N)}. For each crossing one needs an appropriate equation; then one discards one of the N equations, sets one of the unknowns equal to 0, and calculates the determinant. In order now to obtain the equations, all one needs are the three strands meeting at a crossing. This is done as follows.

Since a strand is defined as a segment joining two undercrossings, first one
orders the numbers b_1,b_2,...,b_N. Each of them represents the end of one
strand and the beginning of another. Now let *(i,j)* a crossing, and
*j* be the
end of the *r* strand and the beginning of the *r+1* strand. If
*i* lies between

k and *l*, and *k* is the beginning of the *s* strand
while *l* is its end, then *i*
belongs to the *s* strand and thus the relevant strands are the ones
numbered *r*, *r+1* and *s*. Therefore the equation may look
*x_r = t * x_s + (1-t) * x_{r+1}*,

or it may look
*x_{r+1} = t * x_s + (1-t) * x_r*.

But which one of them? This is the only true difficulty of the calculation.

This question may be answered by drawing the figure and observing whether
the crossing looks as in **this figure**, or
whether it
looks as its mirror image. But it can also be answered without the use of any
figure.

First, one may notice that it is possible to start working from the "shadow", assigning a sign +1 or -1 to each crossing point depending on whether the angle that starts at its segment and ends at its "partner's" segment is positive or negative. At each crossing, one of the two points is always assigned +1 and the other -1.

Second, one may also notice that by switching all assigned numbers one obtains the mirror image knot which has the same notation. Therefore one may arbitrarily choose to assign the first crossing point (which is an overcrossing) the value +1.

Therefore if at a crossing, the overcrossing is assigned -1 and the undercrossing +1, it looks as in the figure, while if the signs are inverted, it looks as its mirror image.

This means that the 2N crossing points can be divided into two classes of N points each; points in each class have the same sign with each other and opposite signs with points of the other classes. One must thus find which points belong to the same class and which to oppoiste classes. The rules to do so are slightly complicated; we will briefly summarise them here, but readers are encouraged to draw figures of their own to visualise them.

First rule, as stated before, an overcrossing and an undercrossing of the same crossing belong to opposite classes.

Second rule, let *{i,j}* and *{k,l}* be two crossings such that
*i < k < j < l*
and no number between *i* and *k* is paired to number between
*k* and *j*. One then
counts how many numbers between *i* and *k* are paired to numbers
between *j* and *l*;
if this number is even, *i* and *k* belong to different classes, if
it is odd, they
belong to the same class.

It is possible however that through these rules the problem is not entirely
resolved. Then for crossings *{i,j}* and *{k,l}* such that
*i < k < j < l* , one
needs to use a third crossing {m,n} such that *k < m < j* and
*l < n* and:

a) no number between *i* and *k* is paired to number between *k*
and *j*,

b) no number between *j* and *l* is paired to number between *k*
and *j*,

c) no number between *k* and *m* is paired to number between *m*
and *j*.

Then one counts for how many numbers between *j* and *n*
there is an odd number of *i*, *j*, *k*, *l* separating
them from their pairs. An even number means that *i* and *k* belong
to different classes, and odd number means they belong to the same class.

Complicated as it may seem, this is the simplest procedure I have been able to come up with in order to resolve this question. It is not guaranteed that in the end all 2N crossing points will have been separated in these two classes, in such a case one should introduce a fourth crossing.

There is one "trick" that looks simpler; since it is known that the Alexander polynomial a_n x^n + a_{n-1} x^{n-1} + ... + a_1 x + a_0 satisfies a_n = a_0 , a_{n-1} = a_1 and so on, one may try all possible combinations and keep the one that will yield an Alexander polynomial satisfying this property. There is no guarantee that just one of the combinations will satisfy this property.

This of course is merely the beginning, a method to obtain the
Alexander-Conway polynomial. To see how to calculate the other Alexander
polynomials, click **here**.

In September 1996 I replaced the calculation of Alexander polynomials with
the calculation of the **homflypt** polynomials, which had been discovered
in 1985 independently by a number of mathematicians (**H**oste,
**O**cneanu, **M**illet, **F**reyd, **L**ickorish, **Y**etter,
**P**rzytycki, **T**raczyk). To see why using the
homflypt polynomials is preferrable, but also the additional complications
arising through the *skein* relations, click
**here**.

*Charilaos Aneziris, charilaos_aneziris@standardandpoors.com*

**Copyright 1995**

Educational institutions are encouraged to reproduce and distribute these materials for educational use free of charge as long as credit and notification are provided. For any other purpose except educational, such as commercial etc, use of these materials is prohibited without prior written permission.