summaryrefslogtreecommitdiff
path: root/src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h')
-rw-r--r--src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h56
1 files changed, 22 insertions, 34 deletions
diff --git a/src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h b/src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h
index d6f9f121..866079fa 100644
--- a/src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h
+++ b/src/Coxeter_triangulation/include/gudhi/Permutahedral_representation/Ordered_set_partition_iterator.h
@@ -35,52 +35,40 @@ struct Ordered_set_partition {
// Ordered_set_partition(const Set_partition_iterator& s_it, const Permutation_iterator& p_it)
// : s_it_(s_it), p_it_(p_it) {}
-
- const std::vector<uint> operator[](const uint& i) const {
- return (*s_it_)[(*p_it_)[i]];
- }
-
- std::size_t size() const {
- return s_it_->size();
- }
-
+
+ const std::vector<uint> operator[](const uint& i) const { return (*s_it_)[(*p_it_)[i]]; }
+
+ std::size_t size() const { return s_it_->size(); }
};
/** \brief Class that allows the user to generate set partitions of a set {0,...,n-1} in k parts.
- *
-*/
-class Ordered_set_partition_iterator : public boost::iterator_facade< Ordered_set_partition_iterator,
- Ordered_set_partition const,
- boost::forward_traversal_tag> {
+ *
+ */
+class Ordered_set_partition_iterator
+ : public boost::iterator_facade<Ordered_set_partition_iterator, Ordered_set_partition const,
+ boost::forward_traversal_tag> {
using value_t = Ordered_set_partition;
-
+
private:
friend class boost::iterator_core_access;
- bool equal(Ordered_set_partition_iterator const& other) const {
- return (is_end_ && other.is_end_);
- }
+ bool equal(Ordered_set_partition_iterator const& other) const { return (is_end_ && other.is_end_); }
- value_t const& dereference() const {
- return value_;
- }
+ value_t const& dereference() const { return value_; }
void increment() {
if (++value_.p_it_ == p_end_) {
if (++value_.s_it_ == s_end_) {
is_end_ = true;
return;
- }
- else
+ } else
value_.p_it_.reinitialize();
}
}
-
+
public:
Ordered_set_partition_iterator(const uint& n, const uint& k)
- :
- value_({Set_partition_iterator(n,k), Permutation_iterator(k)}),
- is_end_(n == 0) {}
+ : value_({Set_partition_iterator(n, k), Permutation_iterator(k)}), is_end_(n == 0) {}
// Used for the creating an end iterator
Ordered_set_partition_iterator() : is_end_(true) {}
@@ -90,16 +78,16 @@ class Ordered_set_partition_iterator : public boost::iterator_facade< Ordered_se
value_.p_it_.reinitialize();
value_.s_it_.reinitialize();
}
-
+
private:
- Set_partition_iterator s_end_; // Set partition iterator and the corresponding end iterator
- Permutation_iterator p_end_; // Permutation iterator and the corresponding end iterator
- value_t value_; // the dereference value
- bool is_end_; // is true when the current permutation is the final one
+ Set_partition_iterator s_end_; // Set partition iterator and the corresponding end iterator
+ Permutation_iterator p_end_; // Permutation iterator and the corresponding end iterator
+ value_t value_; // the dereference value
+ bool is_end_; // is true when the current permutation is the final one
};
-} // namespace coxeter_triangulation
+} // namespace coxeter_triangulation
-} // namespace Gudhi
+} // namespace Gudhi
#endif