11#ifndef PERMUTAHEDRAL_REPRESENTATION_ORDERED_SET_PARTITION_ITERATOR_H_ 
   12#define PERMUTAHEDRAL_REPRESENTATION_ORDERED_SET_PARTITION_ITERATOR_H_ 
   17#include <gudhi/Permutahedral_representation/Permutation_iterator.h> 
   18#include <gudhi/Permutahedral_representation/Set_partition_iterator.h> 
   20#include <boost/range/iterator_range.hpp> 
   24namespace coxeter_triangulation {
 
   39  const std::vector<uint> operator[](
const uint& i)
 const { 
return (*s_it_)[(*p_it_)[i]]; }
 
   41  std::size_t size()
 const { 
return s_it_->size(); }
 
   48    : 
public boost::iterator_facade<Ordered_set_partition_iterator, Ordered_set_partition const,
 
   49                                    boost::forward_traversal_tag> {
 
   53  friend class boost::iterator_core_access;
 
   57  value_t const& dereference()
 const { 
return value_; }
 
   60    if (++value_.p_it_ == p_end_) {
 
   61      if (++value_.s_it_ == s_end_) {
 
   65        value_.p_it_.reinitialize();
 
   78    value_.p_it_.reinitialize();
 
   79    value_.s_it_.reinitialize();
 
Class that allows the user to generate set partitions of a set {0,...,n-1} in k parts.
Definition: Ordered_set_partition_iterator.h:49
Class that allows the user to generate permutations. Based on the optimization of the Heap's algorith...
Definition: Permutation_iterator.h:29
Class that allows the user to generate set partitions of a set {0,...,n-1} in k parts.
Definition: Set_partition_iterator.h:29
Class that represents an ordered set partition of a set {0,...,n-1} in k parts as a pair of an unorde...
Definition: Ordered_set_partition_iterator.h:32