13 #ifndef eli_mutil_dm_combination_hpp
14 #define eli_mutil_dm_combination_hpp
20 #include "eli/code_eli.hpp"
34 template<
typename it__,
typename comp__>
39 if ( (itb==ite) || (itb==itk) || (ite==itk) || (
std::distance(itb, ite)==1) )
48 if ( comp(*it1, *it2) )
51 while (!comp(*it1, *itj))
54 std::iter_swap(it1, itj);
58 std::rotate(it1, itj, ite);
64 std::rotate(itk, it2, ite);
68 std::rotate(itb, itk, ite);
72 template <
typename it__>
75 return next_combination(itb, itk, ite, std::less<typename it__::value_type>());
Derived1__::Scalar distance(const Eigen::MatrixBase< Derived1__ > &p1, const Eigen::MatrixBase< Derived2__ > &p2)
Definition: distance.hpp:33
bool next_combination(const it__ itb, it__ itk, const it__ ite, comp__ comp)
Definition: combination.hpp:35