# Gauss Codes

The Gauss Code of an $n$-crossing knot or link $L$ is obtained as follows:

• Number the crossings of $L$ from 1 to $n$ in an arbitrary manner.
• Order the components of $L$ is some arbitrary manner.
• Start "walking" along the first component of $L$, taking note of the numbers of the crossings you've gone through. If in a given crossing you cross on the "over" strand, write down the number of that crossing. If you cross on the "under" strand, write down the negative of the number of that crossing.
• Do the same for all other components of $L$ (if any).

The resulting list of signed integers (in the case of a knot) or list of lists of signed integers (in the case of a link) is called the Gauss Code of $L$. `KnotTheory`` has some rudimentary support for Gauss codes:

(For In see Setup)

 In:= ?GaussCode GaussCode[i1, i2, ...] represents a knot via its Gauss Code following the conventions used by the knotilus website, http://srankin.math.uwo.ca/cgi-bin/retrieve.cgi/html/start.html. Likewise GaussCode[l1, l2, ...] represents a link, where each of l1, l2,... is a list describing the code read along one component of the link. GaussCode also acts as a "type caster", so for example, GaussCode[K] where K is is a named knot (or link) returns the Gauss code of that knot.

Thus for example, the Gauss codes for the trefoil knot and the Borromean link are:

 `In:=` `GaussCode /@ {Knot[3, 1], Link[6, Alternating, 4]}` `Out=` ```{GaussCode[-1, 3, -2, 1, -3, 2], GaussCode[{1, -6, 5, -3}, {4, -1, 2, -5}, {6, -4, 3, -2}]}```

Ralph Furmaniak, working under the guidance of Stuart Rankin and Ortho Flint at the University of Western Ontario, wrote a web-based server called "Knotilus" that takes Gauss codes and outputs pictures of the desired knots and links in several standard image formats.

 In:= ?KnotilusURL KnotilusURL[K_] returns the URL of the knot/link K on the knotilus website, http://srankin.math.uwo.ca/cgi-bin/retrieve.cgi/html/start.html.

Thus,

 `In:=` `KnotilusURL /@ {Knot[3, 1], Link[6, Alternating, 4]}` `Out=` ```{http://srankin.math.uwo.ca/cgi-bin/retrieve.cgi/-1,3,-2,1,-3,2/goTop.h\ tml, http://srankin.math.uwo.ca/cgi-bin/retrieve.cgi/1,-6,5,-3:4,-1,\ 2,-5:6,-4,3,-2/goTop.html}```