1 #ifndef BARRY_POWERSET_BONES_HPP
2 #define BARRY_POWERSET_BONES_HPP 1
10 template <
typename Array_Type = BArray<>,
typename Data_Rule_Type =
bool>
14 void calc_backend_sparse(
size_t pos = 0u);
15 void calc_backend_dense(
size_t pos = 0u);
19 std::vector< Array_Type >
data;
40 rules(new
Rules<Array_Type,Data_Rule_Type>()),
N(N_),
M(M_) {};
48 void reset(
size_t N_,
size_t M_);
68 typename std::vector< Array_Type >::iterator
begin() {
return data.begin();};
69 typename std::vector< Array_Type >::iterator
end() {
return data.end();};
Powerset of a binary array.
std::vector< size_t > coordinates_free
std::vector< Array_Type > get_data() const
void add_rule(Rule< Array_Type, Data_Rule_Type > rule)
const std::vector< Array_Type > * get_data_ptr() const
std::size_t size() const noexcept
const Array_Type & operator[](const size_t &i) const
std::vector< Array_Type >::iterator begin()
std::vector< Array_Type >::iterator end()
PowerSet(size_t N_, size_t M_)
std::vector< size_t > coordinates_locked
std::vector< Array_Type > data
void reset(size_t N_, size_t M_)
Rules< Array_Type, Data_Rule_Type > * rules
Rule for determining if a cell should be included in a sequence.
Vector of objects of class Rule.
Data_Type &&counter_ noexcept
Data_Type Counter_fun_type< Array_Type, Data_Type > Hasher_fun_type< Array_Type, Data_Type > Data_Type data_
std::function< bool(const Array_Type &, size_t, size_t, Data_Type &)> Rule_fun_type