GF2++
Loading...
Searching...
No Matches
BitStore.h

The base class for the vector-like types in the gf2 library.
See the BitStore page for more details. More...

Go to the source code of this file.

Classes

class  gf2::BitStore< Store >
 The base class for the vector-like types in the gf2 library: BitSet, BitVec, and BitSpan
The template parameter Store is a derived class — we use the CRTP idiom for compile time polymorphism. The Store subclass provides an implementation for a small number of required methods and in return, inherit the many methods provided by this base class. More...
struct  std::formatter< gf2::BitStore< Store > >
 Specialises std::formatter for our BitStore<word_type> type. More...

Namespaces

namespace  gf2
 The namespace for the gf2 library.

Functions

template<typename Lhs, typename Rhs>
constexpr bool gf2::operator== (const BitStore< Lhs > &lhs, const BitStore< Rhs > &rhs)
 Checks that any pair of bit-stores are equal in content.
template<typename Lhs, typename Rhs>
auto gf2::join (const BitStore< Lhs > &lhs, const BitStore< Rhs > &rhs)
 Returns a new bit-vector formed by joining two bit-stores lhs and rhs.
template<typename Lhs, typename Rhs>
requires store_words_match<Lhs, Rhs>
constexpr bool gf2::dot (const BitStore< Lhs > &lhs, const BitStore< Rhs > &rhs)
 Returns the dot product of lhs and rhs as a boolean value.
template<typename Lhs, typename Rhs>
requires store_words_match<Lhs, Rhs>
constexpr bool gf2::operator* (const BitStore< Lhs > &lhs, const BitStore< Rhs > &rhs)
 Operator * is used for the dot product of lhs and rhs as a boolean value.
template<typename Lhs, typename Rhs>
requires store_words_match<Lhs, Rhs>
auto gf2::convolve (const BitStore< Lhs > &lhs, const BitStore< Rhs > &rhs)
 Returns the convolution of this store with the given rhs store as a new bit-vector.

Detailed Description

The base class for the vector-like types in the gf2 library.
See the BitStore page for more details.