ImageRightAction¶
-
template<typename Container, typename Mat>
struct ImageRightAction<Mat, Container>¶ This struct is a specialisation of
ImageRightActionfor 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 right multiplication of the rows inptby the matrixx, and modifiesresto contain the resulting row basis.- 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 ImageRightAction<Mat, BitSet<N>>¶ This struct is a specialisation of
ImageRightActionfor 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 right multiplyingptby the matrixx, and modifiesresto contain the resulting bitset.- 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 rows in
x.