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 andrewb@layer8.co.uk

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:

- braid programme binaries and source code
- Vogel's algorithm provides a mechanism for determining an equivalent closed braid representation for a link diagram. I have an implementation of this algorithm as part of my braid programme for classical links and virtual knots. You can get a postscript copy of a paper that describes this algorithm here: vogel.pdf.

My draw programme produces Metapost code for drawing classical and virtual knots or knotoids.

By enumerating labelled peer codes, complete lists of distinct link immersions have been determined for immersions up to eleven crossings, and up to four components for crossings with nine crossings or less.

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:

- finite racks up to size 6
- finite biracks up to size 4
- finite quandles up to size 6
- finite biquandles up to size 4
- quandle-related biracks up to size 6
- quandle-related biquandles up to size 6

Lists are also provided for:

- Virtual pairs of finite biquandles
- Weld pairs of finite biquandles
- Essential pairs of finite biquandles

Lists of both minimal planar doodles and virtual doodles are presented on the virtual doodles page:

- planar doodles with fewer than 8 crossings
- virtual doodles with n crossings

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.