rheolef  6.5
msg_local_optimize.h
Go to the documentation of this file.
1 #ifndef RHEO_MSG_LOCAL_OPTIMIZE_H
2 #define RHEO_MSG_LOCAL_OPTIMIZE_H
3 
4 # include "rheolef/msg_util.h"
5 namespace rheolef {
6 
49 template <
50  class InputIterator1,
51  class InputIterator2>
52 bool
54  InputIterator1 to_loc_idx, // n_local
55  InputIterator1 last_to_loc_idx,
56  InputIterator2 from_loc_idy) // n_local
57 {
58  typedef typename std::iterator_traits<InputIterator1>::value_type Size;
59  if (to_loc_idx == last_to_loc_idx) {
60  return false;
61  }
62  Size to_start = *to_loc_idx++;
63  Size from_start = *from_loc_idy++;
64  bool has_opt = true;
65  while (to_loc_idx != last_to_loc_idx && has_opt) {
66  to_start++;
67  from_start++;
68  if ((*to_loc_idx++) != to_start ||
69  (*from_loc_idy++) != from_start) {
70  has_opt = false;
71  }
72  }
73  return has_opt;
74 }
75 @endcode
76 } // namespace rheolef
77 #endif // RHEO_MSG_LOCAL_OPTIMIZE_H
78