From 226bbf64dc35916f4f025487e3042374651d0b02 Mon Sep 17 00:00:00 2001 From: Cotton Seed Date: Wed, 6 Jun 2012 13:21:18 -0400 Subject: [PATCH] Removed dead max computation from cube_impl.h. Added support for sage dumping of modules/maps. --- cube_impl.h | 6 --- main.cpp | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 124 insertions(+), 7 deletions(-) diff --git a/cube_impl.h b/cube_impl.h index 0784035..02521eb 100644 --- a/cube_impl.h +++ b/cube_impl.h @@ -410,8 +410,6 @@ cube::cube (knot_diagram &kd_, bool markedp_only_) // printf ("smoothings:\n"); - unsigned max = 0; - smoothing s (kd); for (unsigned i = 0; i < n_resolutions; i ++) { @@ -451,8 +449,6 @@ cube::cube (knot_diagram &kd_, bool markedp_only_) && ending_circles.card () == 1) { unsigned k = unsigned_bitcount (crossings); - if (k > max) - max = k; #if 0 s.show_self (kd, state); @@ -473,8 +469,6 @@ cube::cube (knot_diagram &kd_, bool markedp_only_) #endif } - printf ("max = %d\n", max); - // printf ("(cube) n_generators = %d\n", n_generators); khC = new base_module > (khC_generators (*this)); } diff --git a/main.cpp b/main.cpp index 4796b4c..effe9e8 100644 --- a/main.cpp +++ b/main.cpp @@ -372,9 +372,132 @@ show_st (map > hq_gens, + ptr > H) +{ + printf ("%s_hom={", prefix.c_str ()); + bool first = 1; + for (map >::const_iter i = hq_gens; i; i ++) + { + if (first) + first = 0; + else + printf (", "); + printf ("(%d, %d): %d", i.key ().h, i.key ().q, i.val ().size ()); + } + printf ("}\n"); +} + +void +sage_show (std::string prefix, + map > hq_gens, + std::string name, + grading delta, + mod_map f) +{ + printf ("%s_%s={", prefix.c_str (), name.c_str ()); + + bool first = 1; + for (map >::const_iter i = hq_gens; i; i ++) + { + grading from_hq = i.key (); + basedvector from_gens = i.val (); + + grading to_hq = from_hq + delta; + if (hq_gens % to_hq) + { + basedvector to_gens = hq_gens(to_hq); + + if (first) + first = 0; + else + printf (", "); + printf ("(%d, %d): [", from_hq.h, from_hq.q); + bool first2 = 1; + for (unsigned j = 1; j <= from_gens.size (); j ++) + { + unsigned gj = from_gens[j]; + + if (first2) + first2 = 0; + else + printf (", "); + printf ("("); + for (unsigned k = 1; k <= to_gens.size (); k ++) + { + unsigned gk = to_gens[k]; + + if (k > 1) + printf (", "); + if (f[gj](gk) == 1) + printf ("1"); + else + { + assert (f[gj](gk) == 0); + printf ("0"); + } + } + printf (")"); + } + printf ("]"); + } + } + printf ("}\n"); +} + +void +sage_show_khsq (std::string prefix, + ptr > H, + mod_map sq1, + mod_map sq2) +{ + unsigned n = H->dim (); + + map > hq_gens; + for (unsigned i = 1; i <= H->dim (); i ++) + hq_gens[H->generator_grading (i)].append (i); + + unsigned t = 0; + for (map >::const_iter i = hq_gens; i; i ++) + t += i.val ().size (); + assert (t == n); + + sage_show (prefix, hq_gens, H); + sage_show (prefix, hq_gens, "sq1", grading (1, 0), sq1); + sage_show (prefix, hq_gens, "sq2", grading (2, 0), sq2); + newline (); +} + +void +test_sage_show () +{ + knot_diagram kd (mt_link (11, 0, 449)); + show (kd); newline (); + + planar_diagram pd (kd); + pd.display_knottheory (); + + cube c (kd); + mod_map d = c.compute_d (1, 0, 0, 0, 0); + + chain_complex_simplifier s (c.khC, d, 1); + + steenrod_square sq (c, d, s); + mod_map sq1 = sq.sq1 (); + mod_map sq2 = sq.sq2 (); + + // display ("sq2:\n", sq2); + + sage_show_khsq ("L11n449", sq1.domain (), sq1, sq2); +} + int main () { + test_sage_show (); + #if 0 knot_diagram kd (mt_link (10, 0, 9)); cube c (kd); @@ -459,7 +582,7 @@ main () } #endif -#if 1 +#if 0 hwidth_knots = basedvector (10); for (unsigned i = 1; i <= hwidth_knots.size (); i ++) hwidth_knots[i] = 0;