The ChainCon Software (Release 0.03)
|
A Cartesian product of simplicial cells as a simplicial cell. More...
#include <prodcell.h>
Public Types | |
typedef CellT | CellType |
The type of the cells whose product is stored here. More... | |
typedef CellT::EmptyType | EmptyType |
The type of the empty cell existence decision class. More... | |
Public Member Functions | |
tProdCell () | |
The default constructor of an undefined product cell. More... | |
tProdCell (const CellT &c) | |
The constructor of a product cell from a simplicial cell. More... | |
tProdCell (const tProdCell< CellT > &s1, const tProdCell< CellT > &s2) | |
The constructor of a product of two product cells. More... | |
tProdCell (const tProdCell< CellT > &s) | |
The copy constructor. More... | |
tProdCell (const tProdCell< CellT > &s, int n) | |
The constructor of the n-th face of a cell (if n >= 0) or the k-th degeneracy operator (if n = -1 - k < 0). More... | |
tProdCell< CellT > & | operator= (const tProdCell< CellT > &s) |
The assignment operator. More... | |
~tProdCell () | |
The destructor. More... | |
bool | operator== (const tProdCell< CellT > &s) const |
Checks if the two cells are equal. More... | |
void | swap (tProdCell< CellT > &s) |
Swaps the data between two cells. More... | |
int | dim () const |
Returns the dimension of the cell. More... | |
int | degenerate () const |
Checks if the product cell is degenerate, that is, if its (i-1)st face equals ith face. More... | |
bool | defined () const |
Checks if the cell is defined. More... | |
bool | product () const |
Checks if the cell is really a product of two other cells. More... | |
const tProdCell & | getLeft () const |
Returns the left-hand side part of the product. More... | |
const tProdCell & | getRight () const |
Returns the right-hand side part of the product. More... | |
const CellT & | getCell () const |
Returns the actual cell in case this is not a product. More... | |
int | boundaryLength () const |
Returns the length of the boundary of the simplicial product, which equals the dimension of the cell + 1. More... | |
int | boundaryCoef (int n) const |
Returns the n-th coefficient in the boundary of the simplicial product, which is (-1)^n. More... | |
Private Attributes | |
int | dimension |
The dimension of the cell. More... | |
tProdCell< CellT > * | left |
A pointer to the left-hand side part of the product. More... | |
tProdCell< CellT > * | right |
A pointer to the right-hand side part of the product. More... | |
CellT * | cell |
A pointer to the actual cell if this is not a product. More... | |
A Cartesian product of simplicial cells as a simplicial cell.
Definition at line 48 of file prodcell.h.
The type of the cells whose product is stored here.
Definition at line 52 of file prodcell.h.
The type of the empty cell existence decision class.
Definition at line 55 of file prodcell.h.
The default constructor of an undefined product cell.
Definition at line 138 of file prodcell.h.
The constructor of a product cell from a simplicial cell.
Definition at line 145 of file prodcell.h.
|
inline |
The constructor of a product of two product cells.
Definition at line 152 of file prodcell.h.
References tProdCell< CellT >::dimension.
The copy constructor.
Definition at line 166 of file prodcell.h.
The constructor of the n-th face of a cell (if n >= 0) or the k-th degeneracy operator (if n = -1 - k < 0).
Definition at line 176 of file prodcell.h.
References tProdCell< CellT >::cell, tProdCell< CellT >::dim(), tProdCell< CellT >::dimension, and tProdCell< CellT >::left.
The destructor.
Definition at line 224 of file prodcell.h.
References tProdCell< CellT >::cell, tProdCell< CellT >::left, and tProdCell< CellT >::right.
|
inline |
Returns the n-th coefficient in the boundary of the simplicial product, which is (-1)^n.
Definition at line 331 of file prodcell.h.
|
inline |
Returns the length of the boundary of the simplicial product, which equals the dimension of the cell + 1.
Definition at line 325 of file prodcell.h.
References tProdCell< CellT >::dimension.
|
inline |
Checks if the cell is defined.
Definition at line 289 of file prodcell.h.
References tProdCell< CellT >::cell, and tProdCell< CellT >::left.
Referenced by hashkey1(), hashkey2(), and operator<<().
|
inline |
Checks if the product cell is degenerate, that is, if its (i-1)st face equals ith face.
Returns the first such number i > 0 if this is the case. Returns 0 if the cell is not degenerate. Note that this verification may be a bit time-consuming, because it involves creation of all these faces.
Definition at line 273 of file prodcell.h.
References tProdCell< CellT >::dimension, and tProdCell< CellT >::swap().
|
inline |
Returns the dimension of the cell.
Definition at line 267 of file prodcell.h.
References tProdCell< CellT >::dimension.
Referenced by tProdCell< CellT >::tProdCell().
|
inline |
Returns the actual cell in case this is not a product.
Definition at line 317 of file prodcell.h.
References tProdCell< CellT >::cell.
Referenced by hashkey1(), hashkey2(), and operator<<().
Returns the left-hand side part of the product.
Definition at line 301 of file prodcell.h.
References tProdCell< CellT >::left.
Referenced by hashkey1(), hashkey2(), and operator<<().
Returns the right-hand side part of the product.
Definition at line 309 of file prodcell.h.
References tProdCell< CellT >::right.
Referenced by hashkey1(), hashkey2(), and operator<<().
|
inline |
The assignment operator.
Definition at line 191 of file prodcell.h.
References tProdCell< CellT >::cell, tProdCell< CellT >::dimension, tProdCell< CellT >::left, and tProdCell< CellT >::right.
|
inline |
Checks if the two cells are equal.
Definition at line 237 of file prodcell.h.
References tProdCell< CellT >::cell, tProdCell< CellT >::dimension, tProdCell< CellT >::left, and tProdCell< CellT >::right.
|
inline |
Checks if the cell is really a product of two other cells.
Returns true if yes, or false otherwise.
Definition at line 295 of file prodcell.h.
References tProdCell< CellT >::left.
Referenced by hashkey1(), hashkey2(), and operator<<().
Swaps the data between two cells.
Definition at line 257 of file prodcell.h.
References tProdCell< CellT >::cell, tProdCell< CellT >::dimension, tProdCell< CellT >::left, and tProdCell< CellT >::right.
Referenced by tProdCell< CellT >::degenerate().
|
private |
A pointer to the actual cell if this is not a product.
Definition at line 131 of file prodcell.h.
Referenced by tProdCell< CellT >::defined(), tProdCell< CellT >::getCell(), tProdCell< CellT >::operator=(), tProdCell< CellT >::operator==(), tProdCell< CellT >::swap(), tProdCell< CellT >::tProdCell(), and tProdCell< CellT >::~tProdCell().
|
private |
The dimension of the cell.
Definition at line 122 of file prodcell.h.
Referenced by tProdCell< CellT >::boundaryLength(), tProdCell< CellT >::degenerate(), tProdCell< CellT >::dim(), tProdCell< CellT >::operator=(), tProdCell< CellT >::operator==(), tProdCell< CellT >::swap(), and tProdCell< CellT >::tProdCell().
A pointer to the left-hand side part of the product.
Definition at line 125 of file prodcell.h.
Referenced by tProdCell< CellT >::defined(), tProdCell< CellT >::getLeft(), tProdCell< CellT >::operator=(), tProdCell< CellT >::operator==(), tProdCell< CellT >::product(), tProdCell< CellT >::swap(), tProdCell< CellT >::tProdCell(), and tProdCell< CellT >::~tProdCell().
A pointer to the right-hand side part of the product.
Definition at line 128 of file prodcell.h.
Referenced by tProdCell< CellT >::getRight(), tProdCell< CellT >::operator=(), tProdCell< CellT >::operator==(), tProdCell< CellT >::swap(), and tProdCell< CellT >::~tProdCell().