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 > &) |
|
||||||||||||||||||||||||
|
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(). |
1.3.9.1