Rho

This page contains details of the specialisations of the adapters<Adapters> Rho and RhoValue for boolean matrices.

template<typename Mat>
struct RhoValue<Mat>

Specialization of the adapter RhoValue for instances of BMat<N>. Note that the type chosen here limits the Konieczny algorithm to boolean matrices of dimension at most 64 (or 32 on 32-bit systems).

Template Parameters

Mat – a type such that IsBMat is true.

static constexpr size_t N = BitSet<1>::max_size()

Variable representing the maximum capacity of the container for lambda values.

using type = detail::StaticVector1<BitSet<N>, N>

For BMat<N> objects, type is StaticVector1<BitSet<N>, N>, where N is the maximum width of BitSet on the system. This represents a row space basis of a BMat<N>.

template<typename Container, typename Mat>
struct Rho<Mat, Container>
Template Parameters
  • Container – a container type for holding the return value of the call operator, can be one of StaticVector1<BitSet<N>, N>; std::vector<BitSet<N>>; StaticVector1<std::bitset<N>, N>; or std::vector<std::bitset<N>> for some value of N.

  • Mat – a type such that IsBMat is true.

void operator()(Container &res, Mat const &x) const

Modifies res to contain the row space basis of x.

Parameters
  • res – the container to hold the result

  • x – the matrix

Returns

(None).

Complexity

\(O(r ^ 2 c)\) where \(r\) is the number of rows in x and \(c\) is the number of columns in x.