The braid programme was originally written in support of work done with Roger Fenn to calculate matrix representations of virtual braid groups. It has evolved to include tasks that relate to virtual knots, long knots, welded knots and knotoids but that do not involve a braid representation. However, in the absence of anything better, the name 'braid' has been retained for the programme.
The tools provided by the programme support the following:
The programme is available as a binary image or a source distribution:
Binary image for Fedora 11 Linux together with user documentation: braid-16.0-F11.tar.gz.
Binary image for Windows together with user documentation: braid-16.0.zip.
If you have a different version of UNIX, you are likely to require the source distribution.
The source code is available, together with user documentation and some additional developers notes here: braid-16.0-src.tar.gz.
Note: from version 12.0, one of the source code header files was renamed from Quaternion.h to quaternion-scalar.h. This was done to avoid a conflict with another header file quaternion.h experienced in some operating systems, such as Windows and MAC OS X.
When you unzip and extract the files from the binary image archive you will create a sub-directory at the current location called braid-16.0 containing the braid programme, a sample input file, the programme help file, and the user documentation in HTML format. With the Linux distribution the directory also contains a programe Qbraid, the Qbraid wizard graphical front end to the braid programme based on the Nokia (origninally Trolltech's) Qt3 C++ GUI toolkit.
When you unzip and extract the files from the source image archive braid-15.0-src.tar.gz you will create a subdirectory called braid-16.0 containing subdirectories prog and Qt. The prog directory contains the source code in subdirectories called src and include, the sample input file and the programme help, and also a Makefile and a README file with further details of the source distribution. In the source distribution the prog directory also contains a subdirectory, doc, that contains the user documentation in HTML format and some software developer's notes. The Qt directory contains the source files and Qt 3.0 user interface files needed to build the GUI wizard and the QT3 Designer project file so you can modify the GUI more easily if you need to. You need Qt to be installed on your machine to build the wizard from source, the Qt directory also contains a README file that describes what you need to do.
User documentation
Here is a link to the latest on-line version of the user documentation.
If you did not get a copy with the programme, you can download one from here.
If you have lost the file helpinfo.txt from your machine, you can get another copy here.
Some results from the early version of the programme are presented on the braid results page.
The braid programme is able to calculate quaternionic polynomial invariants as described in [1]. The source code used to search for the quaternionic switches used for these invariants is presented on the quaternionic switches page.
The first released version was 6.1.b1, supporting Burau and quaternion matrix representation, Alexander polynomial, 0th and 1st ideal polynomials for quaternionic representations, Dynnikov test and Dowker code calculation.
Version 7.0 (not released via the web) introduced calculation of Sawollek's normalized Conway polynomial.
Version 8.0 added the Vogel algorithm for evaluating braid words from Gauss codes, the ability to include programme options in input files, the writing of an output file in "input" format, and support of the alphabetical notation for classical braids.
Version 9.0 added the Gauss code and labelled immersion code calculations. It added the calculation of DeltaiC and DeltaiR as further options to the quaternionic representations. Version 9 changed the meaning of two programme options (see below), and aligned the terminology used for the Burau and Alexander representations to that in [1]. This meant that what had previously been referred to as the Burau representation was henceforth referred to as the Alexander representation and vice versa. The term Alexander polynomial was retained for Delta_1 of the Burau representation according to common practise.
The option changes introduced in version 9 are as follows:
option old meaning new meaning new option
for old meaning
c dowker code calculate Delta_1^C d
i input as output imersion code I
Version 9.0 also extended the Vogel algorithm to handle labelled immersion code descriptions of virtual knots. This corrected an error that was found in the version 8.0 implementation of the Vogel algorithm.
Version 10 was a major update to the structure of the code, making it much more object oriented. This was partly motivated by the requirement to add support for matrix switch invariants but was also long overdue from a coding standpoint. Version 10 introduced use of the fundamental equation ([5]) to calculate C and D from A and B when evaluating switch matrices. This version also included support of a simple web interface to the programme.
Version 11 added support for Weyl algebra switches, calaulation mod p for all switches, control over the use of the variable t, and changed the default behaviour for calculating Delta1. Previous versions only calculated Delta1 when Delta0 was zero, now Delta1 is always calculated, unless the user specifies otherwise. Version 11 was also supplied with a much more feature rich web interface that allowed access to most of the common command line options.
Version 11.1 tidied up the internal structure of the code and made several behind-the-scenes changes, but did not alter the functionality from Version 11.0.
Version 11.2 added an option for the programme to report explicitly whether polynomial invariant switch elements satisfy A=D and B=C. It also corrected an error in the HTML used for the web interface that caused a problem with some browsers.
Version 12.0 introduced support for long knots, termination of further calculation of E1 generators if a unit is encountered, and added various improvements to the web interface for the programme. It also corrected an error in the calculation of Delta1 for non-commutative switches when Delta0 was non-zero (see the bug tracker below).
In version 12.0, one of the source code header files was renamed from Quaternion.h to quaternion-scalar.h. This was done to avoid a conflict with another header file quaternion.h experienced in some operating systems, such as Windows and MAC OS X.
In version 12.0, the matrix representation produced from a labelled immersion code was changed so that the switch action at a real crossing was more natural, whilst not affecting the results.
In version 12.0, the option for mapping quaternionic matrix representations into Mn(R[t,t-1]) was removed, since it proved to be of no theoretical value.
Version 12.1 was a maintenance release, see the bug tracker below.
Version 12.2 added automatic handling of the concatenation product for long knots via the # syntax in an input file.
Version 12.3 was a maintenance release: it corrected an error in processing an unusual input polynomial case (see the bug tracker below) and added some additional error checking on input strings.
Version 13.0 added support for the HOMFLY polynomial and introduced the Qbraid graphical front end to the programme. It also changed the CLI syntax if the programme is run from the command line.
Version 14.0 added support for the fixed-point invariant and finite-switch polynomial invariants.
Version 15.0 added the bracket polynomial for knotoids and extended the dowker code tool to accommodate labelled immersion codes as input.
Version 16.0 added support of labelled peer codes, and the silent option for batch processing
[1] A. Bartholomew and R. Fenn. Quaternionic Invariants of Virtual Knots and Links (J Knot Theory Ramifications Vol. 17 No. 2 (2008) 231-251).
[2] A. Bartholomew. An Application of Vogel's Algorithm to Classical Links and Virtual Knots, download it here
[3] J. Sawollwk. On Alexander-Conway Polynomials For Virtual Knots and Links
[4] P. Dehornoy. Braids and Self-Distributivity. Progress in Mathematics no 192 Birkha user, (2000)
[5] P. Budden and R. Fenn. The equation [B,(A-1)(A,B)]=0 and Virtual Knots and Links Fund. Math. 184 (2004) 19-29
[6] R. Fenn and V. Turaev. Weyl Algebras and Knots J. Geometry and Physics 57 (2007) 1313-1324
[7] A. Bartholomew, R. Fenn, N. Kamada, S. Kamada, New Invariants of Long Virtual Knots (to appear)
[8] V. Turaev, Knotoids, arXiv:1002.4133v4