class steenrod_square { // cube of resolutions (in steenrod_square, c will denote a cycle) const cube &cor; mod_map d; const chain_complex_simplifier &s; map > KGij; // sC, fC take generators as input, not hypercube vertices Z2 sC (unsigned x, unsigned y) const; Z2 fC (unsigned x, unsigned y) const; pair, // Gxy map // lxy > ladybug_matching (unsigned x, unsigned y) const; triple, // Gcx map, // bx map // sx > boundary_matching (grading cgr, linear_combination c, unsigned x) const; set > make_G2cx (grading cgr, linear_combination c, unsigned x) const; Z2 sq2_coeff (grading cgr, linear_combination c, unsigned x) const; public: steenrod_square (const cube &cor_, mod_map &d_, const chain_complex_simplifier &s_); ~steenrod_square () { } mod_map sq1 () const; mod_map sq2 () const; };