The ChainCon Software (Release 0.03)
Classes | Functions
ssquarescub.h File Reference

Computation of the Steenrod squares for cubical cells. More...

#include <istream>
#include <ostream>
#include <vector>
#include "chomp/system/config.h"
#include "chomp/struct/hashsets.h"
#include "chomp/struct/multitab.h"
#include "chaincon/chain.h"
#include "chaincon/tensor.h"
#include "chaincon/linmap.h"
#include "chaincon/pair.h"
#include "chaincon/shuffles.h"

Go to the source code of this file.

Classes

class  STuples
 An auxiliary class for iterating all the possible disjoint subsets A and B of integers in [0, ..., range - 1], both of the given length. More...
 

Functions

bool ssquare_sign (int x, const std::vector< int > &A, const std::vector< int > &B)
 Computes the sign that appears in the formula for the face. More...
 
template<class CubCellT >
CubCellT ssquare_face (const CubCellT &xCell, const std::vector< int > &A, const std::vector< int > &B, int range, bool right_hand_side)
 Computes a given face of a simplicial cell. More...
 
template<class CubCellT , class CoefT >
CoefT ssquare (int i, int j, const CubCellT &cCell, const tChain< CubCellT, CoefT > &xChain, const tLinMap< CubCellT, CubCellT, CoefT > &pi)
 Computes a single Steenrod square. More...
 
template<class CubCellT , class CoefT >
void ssquares (const std::vector< std::vector< CubCellT > > &cohomRepresentants, const tLinMap< CubCellT, CubCellT, CoefT > &pi, const tLinMap< CubCellT, CubCellT, CoefT > &incl, chomp::homology::hashedset< tPair< CubCellT, int > > &cellsSquares, chomp::homology::multitable< tChain< CubCellT, CoefT > > &squareValues)
 Computes the Steenrod squares, given a minimal model and cohomology representants. More...
 
template<class CubCellT , class CoefT >
void ssquares1 (const std::vector< std::vector< CubCellT > > &cohomRepresentants, const tLinMap< CubCellT, CubCellT, CoefT > &pi, const tLinMap< CubCellT, CubCellT, CoefT > &incl, chomp::homology::hashedset< tPair< CubCellT, int > > &cellsSquares, chomp::homology::multitable< tChain< CubCellT, CoefT > > &squareValues)
 Computes the Steenrod squares using the only procedure in this case. More...
 
template<class CubCellT , class CoefT >
void ssquares2 (const std::vector< std::vector< CubCellT > > &cohomRepresentants, const tLinMap< CubCellT, CubCellT, CoefT > &pi, const tLinMap< CubCellT, CubCellT, CoefT > &incl, chomp::homology::hashedset< tPair< CubCellT, int > > &cellsSquares, chomp::homology::multitable< tChain< CubCellT, CoefT > > &squareValues)
 Computes the Steenrod squares using the only procedure in this case. More...
 

Detailed Description

Computation of the Steenrod squares for cubical cells.

Definition in file ssquarescub.h.

Function Documentation

◆ ssquare()

template<class CubCellT , class CoefT >
CoefT ssquare ( int  i,
int  j,
const CubCellT &  cCell,
const tChain< CubCellT, CoefT > &  xChain,
const tLinMap< CubCellT, CubCellT, CoefT > &  pi 
)
inline

Computes a single Steenrod square.

Follows the formula provided by Marek Krcal.

Definition at line 208 of file ssquarescub.h.

References ssquare_face(), and ssquares().

Referenced by ssquares().

◆ ssquare_face()

template<class CubCellT >
CubCellT ssquare_face ( const CubCellT &  xCell,
const std::vector< int > &  A,
const std::vector< int > &  B,
int  range,
bool  right_hand_side 
)
inline

Computes a given face of a simplicial cell.

See the formula in the paper for details.

Definition at line 169 of file ssquarescub.h.

References ssquare_sign().

Referenced by ssquare().

◆ ssquare_sign()

bool ssquare_sign ( int  x,
const std::vector< int > &  A,
const std::vector< int > &  B 
)
inline

Computes the sign that appears in the formula for the face.

Note that the indices in the code count from 0, not from 1. Returns true if the sign is positive or false if it is negative.

Definition at line 150 of file ssquarescub.h.

Referenced by ssquare_face().

◆ ssquares()

template<class CubCellT , class CoefT >
void ssquares ( const std::vector< std::vector< CubCellT > > &  cohomRepresentants,
const tLinMap< CubCellT, CubCellT, CoefT > &  pi,
const tLinMap< CubCellT, CubCellT, CoefT > &  incl,
chomp::homology::hashedset< tPair< CubCellT, int > > &  cellsSquares,
chomp::homology::multitable< tChain< CubCellT, CoefT > > &  squareValues 
)
inline

Computes the Steenrod squares, given a minimal model and cohomology representants.

For cells of cubical type, using the direct formula provided by Marek Krcal.

Definition at line 328 of file ssquarescub.h.

References ssquare(), and ssquares1().

Referenced by ssquare(), ssquares1(), and ssquares2().

◆ ssquares1()

template<class CubCellT , class CoefT >
void ssquares1 ( const std::vector< std::vector< CubCellT > > &  cohomRepresentants,
const tLinMap< CubCellT, CubCellT, CoefT > &  pi,
const tLinMap< CubCellT, CubCellT, CoefT > &  incl,
chomp::homology::hashedset< tPair< CubCellT, int > > &  cellsSquares,
chomp::homology::multitable< tChain< CubCellT, CoefT > > &  squareValues 
)
inline

Computes the Steenrod squares using the only procedure in this case.

Definition at line 398 of file ssquarescub.h.

References ssquares(), and ssquares2().

Referenced by computeSteenrodSquares(), and ssquares().

◆ ssquares2()

template<class CubCellT , class CoefT >
void ssquares2 ( const std::vector< std::vector< CubCellT > > &  cohomRepresentants,
const tLinMap< CubCellT, CubCellT, CoefT > &  pi,
const tLinMap< CubCellT, CubCellT, CoefT > &  incl,
chomp::homology::hashedset< tPair< CubCellT, int > > &  cellsSquares,
chomp::homology::multitable< tChain< CubCellT, CoefT > > &  squareValues 
)
inline

Computes the Steenrod squares using the only procedure in this case.

Definition at line 411 of file ssquarescub.h.

References ssquares().

Referenced by computeSteenrodSquares(), and ssquares1().