1 #ifndef _RHEO_MSG_RIGHT_PERMUTATION_APPLY_H
2 #define _RHEO_MSG_RIGHT_PERMUTATION_APPLY_H
53 class InputRandomIterator,
59 InputIterator last_perm,
60 const InputRandomIterator& x,
64 for (; perm != last_perm; y++, perm++) {
75 template<
class OutputIterator,
class InputRandomIterator,
class Size>
77 void operator() (OutputIterator rhs,
const InputRandomIterator& lhs, Size i) {
83 class InputRandomIterator,
89 InputIterator last_perm,
90 const InputRandomIterator& x,
93 typedef typename std::iterator_traits<InputIterator>::value_type
size_type;
99 template<
class OutputIterator,
class InputRandomIterator,
class Size>
100 struct msg_right_permutation_set_pair {
101 typedef typename std::iterator_traits<OutputIterator>::value_type
T;
102 void operator() (OutputIterator rhs,
const InputRandomIterator& lhs, Size i) {
103 *rhs = std::pair<Size,T>(i,lhs [i]);
110 #endif // _RHEO_MSG_RIGHT_PERMUTATION_APPLY_H