ImageLeftAction¶
-
template<typename Container, typename Mat>
struct ImageLeftAction<Mat, Container>¶ This struct is a specialisation of
ImageLeftActionfor boolean matrices and containers of bitsets.- Template Parameters:
Container – a container type where
IsBitSet<typename Container::value_type>istrue. For example,Containermight bedetail::StaticVector1<BitSet<N>, N>orstd::vector<BitSet<N>>for some value ofNwith \(0\leq N\leq 64\).Mat – a type such that
IsBMatistrue.
-
void operator()(Container &res, Container const &pt, Mat const &x) const¶
Given a row basis
ptand a boolean matrixx, this function computes the row basis of the space obtained by left multiplication of the rows inptby the matrixx, and modifiesresto contain the resulting row basis. This is equivalent to applyingImageRightActionto the transpose ofx.- Parameters:
res – container to store the result.
pt – the container on which to act.
x – the matrix which is acting.
- Returns:
(None).
- Complexity:
\(O(r ^ 2 c)\) where \(r\) is the number of rows in
ptand \(c\) is the number of columns inx.
-
template<size_t N, typename Mat>
struct ImageLeftAction<Mat, BitSet<N>>¶ This struct is a specialisation of
ImageLeftActionfor boolean matrices and bitsets.- Template Parameters:
N – a value that exceeds the number of rows in any instance of
Matpassed to the call operator.Mat – a type such that
IsBMatistrue.
-
void operator()(result_type &res, result_type const &pt, Mat const &x) const¶
Given a bitset
pt(representing a row of a boolean matrix) and a boolean matrixx, this function computes the row obtained by left multiplyingptby the matrixx, and modifiesresto contain the resulting bitset. This is equivalent to applyingImageRightActionto the transpose ofx.- Parameters:
res – bitset to contain the result.
pt – the bitset on which to act.
x – the matrix which is acting.
- Returns:
(None).
- Complexity:
\(O(r ^ 2)\) where \(r\) is the number of columns in
x.