diff --git a/README b/README index 4da80c4..ba068c6 100644 --- a/README +++ b/README @@ -3,6 +3,11 @@ knotkit is a C++ software package written by Cotton Seed invariants appearing in low-dimensional topology. Other contributors 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 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 Sage. The command s outputs a single line of text. -usage: kk [options...] +usage: %s [options...] +/home/wojtek/ownCloud/src/knotkit/kk compute for knot or link can be one of: kh: Khovanov homology @@ -113,10 +119,14 @@ usage: kk [options...] leess: spectral sequence coming from Bar-Natan analogue of Lee's deformation of Khovanov's complex (whew!) 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: kh, gss, lsss, leess: .tex file sq2: text in Sage format - s: text + s, khp, jones, periodicity: text options: -r : compute reduced theory -h : print this message @@ -125,6 +135,13 @@ options: -f : ground field (if applicable) (Z2 is the default) -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 can be one of: Z2, Z3, Q can be one of: diff --git a/kk.cpp b/kk.cpp index 4ac28ca..441f3f9 100644 --- a/kk.cpp +++ b/kk.cpp @@ -9,47 +9,58 @@ const char *program_name; void usage () { - printf ("usage: %s [options...] \n", program_name); - printf (" compute for knot or link \n"); - printf (" can be one of:\n"); - printf (" kh: Khovanov homology\n"); - printf (" gss: Szabo's geometric spectral sequence\n"); - printf (" lsss: Batson-Seed link splitting spectral sequence\n"); - printf (" component weights are 0, 1, ..., m\n"); - printf (" sq2: Lipshitz-Sarkar Steenrod square on Z/2 Kh\n"); - printf (" output suitable for Sage\n"); - printf (" leess: spectral sequence coming from Bar-Natan analogue of Lee's\n"); - printf (" deformation of Khovanov's complex (whew!)\n"); - printf (" s: Rasmussen's s-invariant coming from lee\n"); - printf ("output:\n"); - printf (" kh, gss, lsss, leess: .tex file\n"); - printf (" sq2: text in Sage format\n"); - printf (" s: text\n"); - printf ("options:\n"); - printf (" -r : compute reduced theory\n"); - printf (" -h : print this message\n"); - printf (" -o : write output to \n"); - printf (" (stdout is the default)\n"); - printf (" -f : ground field (if applicable)\n"); - printf (" (Z2 is the default)\n"); - printf (" -v : verbose: report progress as the computation proceeds\n"); - printf (" can be one of:\n"); - printf (" Z2, Z3, Q\n"); - printf (" can be one of:\n"); - printf (" - the unknot, e.g. U or unknot\n"); - printf (" - a torus knot, e.g. T(2,3)\n"); - printf (" - a Rolfsen table knot, e.g. 10_124\n"); - printf (" - a Hoste-Thistlethwaite-Weeks knot, e.g. 11a12 or 12n214\n"); - printf (" - a Morwen Thistlethwaite link, e.g. L8n9 or L13n8862\n"); - printf (" - a planar diagram, e.g.\n"); - printf (" PD[X[1, 4, 2, 5], X[3, 6, 4, 1], X[5, 2, 6, 3]] or\n"); - printf (" PD[[1, 4, 2, 5], [3, 6, 4, 1], [5, 2, 6, 3]]\n"); - printf (" - a Dowker-Thistlethwaite code, e.g.\n"); - printf (" DTCode[6,8,2,4],\n"); - printf (" DT[dadbcda] or\n"); - printf (" DT[{6, -8}, {-10, 12, -14, 2, -4}]\n"); - printf (" - a braid, e.g. BR[2, {-1, -1, -1}]\n"); - printf (" - disjoint union (juxtaposition), e.g. T(2,3) U\n"); + std::cout << "usage: %s [options...] \n" << program_name << "\n" + << " compute for knot or link \n" + << " can be one of:\n" + << " kh: Khovanov homology\n" + << " gss: Szabo's geometric spectral sequence\n" + << " lsss: Batson-Seed link splitting spectral sequence\n" + << " component weights are 0, 1, ..., m\n" + << " sq2: Lipshitz-Sarkar Steenrod square on Z/2 Kh\n" + << " output suitable for Sage\n" + << " leess: spectral sequence coming from Bar-Natan analogue of Lee's\n" + << " deformation of Khovanov's complex (whew!)\n" + << " s: Rasmussen's s-invariant coming from lee\n" + << " khp: computes Khovanov polynomial of a link\n" + << " jones: computes Jones polynomial of a link\n" + << " periodicity: uses periodicity criterion of Przytycki and\n" + << " the criterion in terms of Khovanov polynomial\n" + << "output:\n" + << " kh, gss, lsss, leess: .tex file\n" + << " sq2: text in Sage format\n" + << " s, khp, jones, periodicity: text\n" + << "options:\n" + << " -r : compute reduced theory\n" + << " -h : print this message\n" + << " -o : write output to \n" + << " (stdout is the default)\n" + << " -f : ground field (if applicable)\n" + << " (Z2 is the default)\n" + << " -v : verbose: report progress as the computation proceeds\n" + << " -p : period when verifying periodicity, can be equal to\n" + << " 5,7,11,13,17 or 19\n" + << " -t : type of periodicity test:\n" + << " - Przytycki - Przytycki's periodicity test\n" + << " - Kh - periodicity criterion in terms of Khovanov homology\n" + << " - all - uses both criteria and tests for all prime\n" + << " periods between 5 and 19\n" + << " can be one of:\n" + << " Z2, Z3, Q\n" + << " can be one of:\n" + << " - the unknot, e.g. U or unknot\n" + << " - a torus knot, e.g. T(2,3)\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; @@ -336,7 +347,7 @@ void check_periodicity(std::string out_file) { } auto result = std::find(primes_list.begin(), primes_list.end(), period); 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); } std::ofstream out(out_file, std::ios_base::app);