If you plan to use any of these programmes, please read the disclaimer and general comments
If you find any bugs or errors, please email me at email@example.com
My braid programme was developed for some work done with Roger Fenn at the University of Sussex. See his homepage here.
The programme calculates a number of properties of virtual and classical braids. In particular it calculates Alexander polynomials and quaternionic invariants from classical and virtual braids and implements Vogel's algorithm for classical link diagrams.
Follow the links below to:
My draw programme produces Metapost code for drawing classical and virtual knots or knotoids.
A list of distinct welded knots has been produced with Roger Fenn using invariants developed from lists of finite biquandles found by a computer search. This page contains links to various lists related to finite switches of small size:
Lists are also provided for:
A list of distinct knotoids, as described by Vladimir Turaev, has been produced using his extended bracket polynomial invariant by a computer search.
My postgraduate studies were focussed on tracks, which are generalizations of simple closed curves on a 2-dimensional CW-complex. From a finitely presented group G it is possible to construct a 2-dimensional CW-complex K, with fundamental group G, where the tracks on K give information about a splitting of G as a free product or as an HNN extension. As part of my studies, I wrote two programmes that calculated a finite set of generating tracks for K and that could calculate the splitting of G determined by any given track.
Later work by Martin Dunwoody prompted me to update the code for these programmes so they can be compiled using a modern C++ compiler. Originally they were written in ALGOL68 and subsequently converted to a very early version of C++. These latest versions have been using the GNU gcc compiler on Fedora, they can be found on the tracks page.
During the development of the braid programme I produced a number of C++ classes, in particular a set of scalar classes that provide for limited run-time selection of type. Since these may be of more general interest and use, the are described on the scalars page.