29 #ifndef _CHAINCON_EZ_EML_H_    30 #define _CHAINCON_EZ_EML_H_    38 #include "chomp/system/config.h"    55 template <
class SimCellT, 
class ProdCellT>
    56 inline void EZ_EML (
const SimCellT &s1, 
const SimCellT &s2,
    62         std::vector<int> alpha (p);
    63         std::vector<int> beta (q);
    68                 bool moreAvailable = s. 
get (alpha, beta, sig);
    72                 for (
int i = 0; i < q; ++ i)
    74                         SimCellT cell1new (cell1, -1 - beta [i]);
    75                         cell1. swap (cell1new);
    78                 for (
int i = 0; i < p; ++ i)
    80                         SimCellT cell2new (cell2, -1 - alpha [i]);
    81                         cell2. swap (cell2new);
    85                 ProdCellT prod (cell1, cell2);
    86                 if (!prod. degenerate ())
    99 template <
class SimCellT, 
class ProdCellT, 
class CoefT>
   100 inline void EZ_EML (
const SimCellT &s1, 
const SimCellT &s2,
   108         std::vector<int> alpha (p);
   109         std::vector<int> beta (q);
   114                 bool moreAvailable = s. 
get (alpha, beta, sig);
   118                 for (
int i = 0; i < q; ++ i)
   120                         SimCellT cell1new (cell1, -1 - beta [i]);
   121                         cell1. swap (cell1new);
   124                 for (
int i = 0; i < p; ++ i)
   126                         SimCellT cell2new (cell2, -1 - alpha [i]);
   127                         cell2. swap (cell2new);
   136                 ProdCellT prod (cell1, cell2);
   137                 if (!prod. degenerate ())
   157 template <
class SimCellT, 
class ProdCellT>
   161         for (int_t n = 0; n < s. size (); ++ n)
   164                 EZ_EML (s. left (n), s. right (n), result);
   173 template <
class SimCellT, 
class ProdCellT, 
class CoefT>
   177         for (int_t n = 0; n < s. size (); ++ n)
   180                 EZ_EML (s. left (n), s. right (n), result);
   181                 result *= s. coef (n);
   189 #endif // _CHAINCON_EZ_EML_H_ 
An iterator of all the (p,q)-shuffles. 
 
A Cartesian product of simplicial cells of arbitrary type. 
 
A chain with coefficients in an arbitrary ring. 
 
A tensor of chains with coefficients in an arbitrary commutative ring. 
 
Combinatorial tensor of cells. 
 
A combinatorial tensor (for coefficients in Z_2). 
 
void EZ_EML(const SimCellT &s1, const SimCellT &s2, tCombChain< ProdCellT > &t)
Computes the Eilenberg-Mac Lane operator on a tensor product of two simplicial cells.