Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

atlas::subquotient Namespace Reference


Classes

class  atlas::subquotient::Subspace< dim >
 Subspace of (Z/2Z)^d_rank. More...
class  atlas::subquotient::Subquotient< dim >
 Quotient of two subspaces of (Z/2Z)^d_rank. More...

Functions

template<size_t dim>
void subquotientMap (bitvector::BitMatrix< dim > &, const Subquotient< dim > &, const Subquotient< dim > &, const bitvector::BitMatrix< dim > &)


Function Documentation

template<size_t dim>
void atlas::subquotient::subquotientMap bitvector::BitMatrix< dim > &  msq,
const Subquotient< dim > &  source,
const Subquotient< dim > &  dest,
const bitvector::BitMatrix< dim > &  m
 

Synopsis: puts in |msq| the matrix of the map induced by |m| at the subquotient level.

Precondition: |m| has |source.rank()| columns and |dest.rank()| rows, in other words it defines a map at the level of the ambient $Z/2Z$-vector spaces. Moreover it maps |source.space()| to |dest.space()| and |source.subspace()| to |dest.subspace()|. [This is a strong condition, which it is the caller's responsibility to ensure. It is _not_ sufficient that |m| gives rise to a mathematically well-defined map between the subquotients; for instance while for any subspaces $A,B$ there is a canonical isomorphism between the subquotients $(A+B)/A$ and $B/(A B)$, the identity matrix might not produce such an isomorphism when applied from the former to the latter subquotient (although it would in the opposite direction). MvL]

The subquotient matrix will be expressed in terms of the canonical bases for the subquotients (which are made up of those elements of the basis of the larger subspace |space()| that are zero on the bits supporting of the smaller subspace |subspace()|.) Therefore its size will be |source.dimension()| columns and |dest.dimension()| rows.

Algorithm: take the image through |m| of the subquotient basis in |source|; then project onto the subquotient basis in dest. Note that this procedure inspects neither |source.subspace()| nor |dest.space()|.

Definition at line 194 of file subquotient_def.h.

References atlas::bitvector::BitMatrix< dim >::addColumn(), atlas::bitvector::BitMatrix< dim >::apply(), atlas::subquotient::Subquotient< dim >::dimension(), atlas::bitvector::BitMatrix< dim >::numColumns(), atlas::bitvector::BitMatrix< dim >::numRows(), atlas::subquotient::Subquotient< dim >::rank(), atlas::bitvector::BitMatrix< dim >::resize(), atlas::bitvector::BitVector< dim >::size(), atlas::latticetypes::SmallBitVector, atlas::subquotient::Subquotient< dim >::space(), atlas::subquotient::Subquotient< dim >::support(), atlas::bitset::BitSet< n >::test(), and atlas::subquotient::Subquotient< dim >::toBasis().


Generated on Wed Mar 26 16:53:05 2008 for atlas by  doxygen 1.3.9.1