Added descriptions of periodicity test to usage and README
This commit is contained in:
parent
7cde96e48f
commit
e9bac2e0e2
21
README
21
README
@ -3,6 +3,11 @@ knotkit is a C++ software package written by Cotton Seed
|
|||||||
invariants appearing in low-dimensional topology. Other contributors
|
invariants appearing in low-dimensional topology. Other contributors
|
||||||
include Josh Batson.
|
include Josh Batson.
|
||||||
|
|
||||||
|
This is a slightly modified version of knotkit. It includes a periodicity
|
||||||
|
testing functionality based on the Przytycki's criterion in terms of
|
||||||
|
Jones polynomial and a periodicity criterion from the upcoming paper by
|
||||||
|
Maciej Borodzik, Anna Kosiorek and Wojciech Politarczyk.
|
||||||
|
|
||||||
TABLE OF CONTENTS
|
TABLE OF CONTENTS
|
||||||
|
|
||||||
1. INTRO
|
1. INTRO
|
||||||
@ -101,7 +106,8 @@ sequence. The output for the command sq2 matches the output for the
|
|||||||
program written by Lipshitz-Sarkar and is suitable for loading into
|
program written by Lipshitz-Sarkar and is suitable for loading into
|
||||||
Sage. The command s outputs a single line of text.
|
Sage. The command s outputs a single line of text.
|
||||||
|
|
||||||
usage: kk <invariant> [options...] <link>
|
usage: %s <invariant> [options...] <link>
|
||||||
|
/home/wojtek/ownCloud/src/knotkit/kk
|
||||||
compute <invariant> for knot or link <link>
|
compute <invariant> for knot or link <link>
|
||||||
<invariant> can be one of:
|
<invariant> can be one of:
|
||||||
kh: Khovanov homology
|
kh: Khovanov homology
|
||||||
@ -113,10 +119,14 @@ usage: kk <invariant> [options...] <link>
|
|||||||
leess: spectral sequence coming from Bar-Natan analogue of Lee's
|
leess: spectral sequence coming from Bar-Natan analogue of Lee's
|
||||||
deformation of Khovanov's complex (whew!)
|
deformation of Khovanov's complex (whew!)
|
||||||
s: Rasmussen's s-invariant coming from lee
|
s: Rasmussen's s-invariant coming from lee
|
||||||
|
khp: computes Khovanov polynomial of a link
|
||||||
|
jones: computes Jones polynomial of a link
|
||||||
|
periodicity: uses periodicity criterion of Przytycki and
|
||||||
|
the criterion in terms of Khovanov polynomial
|
||||||
output:
|
output:
|
||||||
kh, gss, lsss, leess: .tex file
|
kh, gss, lsss, leess: .tex file
|
||||||
sq2: text in Sage format
|
sq2: text in Sage format
|
||||||
s: text
|
s, khp, jones, periodicity: text
|
||||||
options:
|
options:
|
||||||
-r : compute reduced theory
|
-r : compute reduced theory
|
||||||
-h : print this message
|
-h : print this message
|
||||||
@ -125,6 +135,13 @@ options:
|
|||||||
-f <field> : ground field (if applicable)
|
-f <field> : ground field (if applicable)
|
||||||
(Z2 is the default)
|
(Z2 is the default)
|
||||||
-v : verbose: report progress as the computation proceeds
|
-v : verbose: report progress as the computation proceeds
|
||||||
|
-p : period when verifying periodicity, can be equal to
|
||||||
|
5,7,11,13,17 or 19
|
||||||
|
-t : type of periodicity test:
|
||||||
|
- Przytycki - Przytycki's periodicity test
|
||||||
|
- Kh - periodicity criterion in terms of Khovanov homology
|
||||||
|
- all - uses both criteria and tests for all prime
|
||||||
|
periods between 5 and 19
|
||||||
<field> can be one of:
|
<field> can be one of:
|
||||||
Z2, Z3, Q
|
Z2, Z3, Q
|
||||||
<link> can be one of:
|
<link> can be one of:
|
||||||
|
95
kk.cpp
95
kk.cpp
@ -9,47 +9,58 @@ const char *program_name;
|
|||||||
void
|
void
|
||||||
usage ()
|
usage ()
|
||||||
{
|
{
|
||||||
printf ("usage: %s <invariant> [options...] <link>\n", program_name);
|
std::cout << "usage: %s <invariant> [options...] <link>\n" << program_name << "\n"
|
||||||
printf (" compute <invariant> for knot or link <link>\n");
|
<< " compute <invariant> for knot or link <link>\n"
|
||||||
printf ("<invariant> can be one of:\n");
|
<< "<invariant> can be one of:\n"
|
||||||
printf (" kh: Khovanov homology\n");
|
<< " kh: Khovanov homology\n"
|
||||||
printf (" gss: Szabo's geometric spectral sequence\n");
|
<< " gss: Szabo's geometric spectral sequence\n"
|
||||||
printf (" lsss: Batson-Seed link splitting spectral sequence\n");
|
<< " lsss: Batson-Seed link splitting spectral sequence\n"
|
||||||
printf (" component weights are 0, 1, ..., m\n");
|
<< " component weights are 0, 1, ..., m\n"
|
||||||
printf (" sq2: Lipshitz-Sarkar Steenrod square on Z/2 Kh\n");
|
<< " sq2: Lipshitz-Sarkar Steenrod square on Z/2 Kh\n"
|
||||||
printf (" output suitable for Sage\n");
|
<< " output suitable for Sage\n"
|
||||||
printf (" leess: spectral sequence coming from Bar-Natan analogue of Lee's\n");
|
<< " leess: spectral sequence coming from Bar-Natan analogue of Lee's\n"
|
||||||
printf (" deformation of Khovanov's complex (whew!)\n");
|
<< " deformation of Khovanov's complex (whew!)\n"
|
||||||
printf (" s: Rasmussen's s-invariant coming from lee\n");
|
<< " s: Rasmussen's s-invariant coming from lee\n"
|
||||||
printf ("output:\n");
|
<< " khp: computes Khovanov polynomial of a link\n"
|
||||||
printf (" kh, gss, lsss, leess: .tex file\n");
|
<< " jones: computes Jones polynomial of a link\n"
|
||||||
printf (" sq2: text in Sage format\n");
|
<< " periodicity: uses periodicity criterion of Przytycki and\n"
|
||||||
printf (" s: text\n");
|
<< " the criterion in terms of Khovanov polynomial\n"
|
||||||
printf ("options:\n");
|
<< "output:\n"
|
||||||
printf (" -r : compute reduced theory\n");
|
<< " kh, gss, lsss, leess: .tex file\n"
|
||||||
printf (" -h : print this message\n");
|
<< " sq2: text in Sage format\n"
|
||||||
printf (" -o <file> : write output to <file>\n");
|
<< " s, khp, jones, periodicity: text\n"
|
||||||
printf (" (stdout is the default)\n");
|
<< "options:\n"
|
||||||
printf (" -f <field> : ground field (if applicable)\n");
|
<< " -r : compute reduced theory\n"
|
||||||
printf (" (Z2 is the default)\n");
|
<< " -h : print this message\n"
|
||||||
printf (" -v : verbose: report progress as the computation proceeds\n");
|
<< " -o <file> : write output to <file>\n"
|
||||||
printf ("<field> can be one of:\n");
|
<< " (stdout is the default)\n"
|
||||||
printf (" Z2, Z3, Q\n");
|
<< " -f <field> : ground field (if applicable)\n"
|
||||||
printf ("<link> can be one of:\n");
|
<< " (Z2 is the default)\n"
|
||||||
printf (" - the unknot, e.g. U or unknot\n");
|
<< " -v : verbose: report progress as the computation proceeds\n"
|
||||||
printf (" - a torus knot, e.g. T(2,3)\n");
|
<< " -p : period when verifying periodicity, can be equal to\n"
|
||||||
printf (" - a Rolfsen table knot, e.g. 10_124\n");
|
<< " 5,7,11,13,17 or 19\n"
|
||||||
printf (" - a Hoste-Thistlethwaite-Weeks knot, e.g. 11a12 or 12n214\n");
|
<< " -t : type of periodicity test:\n"
|
||||||
printf (" - a Morwen Thistlethwaite link, e.g. L8n9 or L13n8862\n");
|
<< " - Przytycki - Przytycki's periodicity test\n"
|
||||||
printf (" - a planar diagram, e.g.\n");
|
<< " - Kh - periodicity criterion in terms of Khovanov homology\n"
|
||||||
printf (" PD[X[1, 4, 2, 5], X[3, 6, 4, 1], X[5, 2, 6, 3]] or\n");
|
<< " - all - uses both criteria and tests for all prime\n"
|
||||||
printf (" PD[[1, 4, 2, 5], [3, 6, 4, 1], [5, 2, 6, 3]]\n");
|
<< " periods between 5 and 19\n"
|
||||||
printf (" - a Dowker-Thistlethwaite code, e.g.\n");
|
<< "<field> can be one of:\n"
|
||||||
printf (" DTCode[6,8,2,4],\n");
|
<< " Z2, Z3, Q\n"
|
||||||
printf (" DT[dadbcda] or\n");
|
<< "<link> can be one of:\n"
|
||||||
printf (" DT[{6, -8}, {-10, 12, -14, 2, -4}]\n");
|
<< " - the unknot, e.g. U or unknot\n"
|
||||||
printf (" - a braid, e.g. BR[2, {-1, -1, -1}]\n");
|
<< " - a torus knot, e.g. T(2,3)\n"
|
||||||
printf (" - disjoint union (juxtaposition), e.g. T(2,3) U\n");
|
<< " - a Rolfsen table knot, e.g. 10_124\n"
|
||||||
|
<< " - a Hoste-Thistlethwaite-Weeks knot, e.g. 11a12 or 12n214\n"
|
||||||
|
<< " - a Morwen Thistlethwaite link, e.g. L8n9 or L13n8862\n"
|
||||||
|
<< " - a planar diagram, e.g.\n"
|
||||||
|
<< " PD[X[1, 4, 2, 5], X[3, 6, 4, 1], X[5, 2, 6, 3]] or\n"
|
||||||
|
<< " PD[[1, 4, 2, 5], [3, 6, 4, 1], [5, 2, 6, 3]]\n"
|
||||||
|
<< " - a Dowker-Thistlethwaite code, e.g.\n"
|
||||||
|
<< " DTCode[6,8,2,4],\n"
|
||||||
|
<< " DT[dadbcda] or\n"
|
||||||
|
<< " DT[{6, -8}, {-10, 12, -14, 2, -4}]\n"
|
||||||
|
<< " - a braid, e.g. BR[2, {-1, -1, -1}]\n"
|
||||||
|
<< " - disjoint union (juxtaposition), e.g. T(2,3) U\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE *outfp = stdout;
|
FILE *outfp = stdout;
|
||||||
@ -336,7 +347,7 @@ void check_periodicity(std::string out_file) {
|
|||||||
}
|
}
|
||||||
auto result = std::find(primes_list.begin(), primes_list.end(), period);
|
auto result = std::find(primes_list.begin(), primes_list.end(), period);
|
||||||
if(result == primes_list.end()) {
|
if(result == primes_list.end()) {
|
||||||
std::cout << "For now you can only check periodicity for primes up to 31..." << "\n";
|
std::cout << "For now you can only check periodicity for primes up to 19..." << "\n";
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
std::ofstream out(out_file, std::ios_base::app);
|
std::ofstream out(out_file, std::ios_base::app);
|
||||||
|
Loading…
Reference in New Issue
Block a user