16 #ifndef dealii__synchronous_iterator_h 17 #define dealii__synchronous_iterator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/std_cxx11/tuple.h> 27 DEAL_II_NAMESPACE_OPEN
50 template <
typename Iterators>
83 template <
typename Iterators>
92 template <
typename Iterators>
97 iterators (i.iterators)
102 template <
typename Iterators>
112 template <
typename Iterators>
130 template <
typename Iterators>
133 operator< (const SynchronousIterators<Iterators> &a,
136 return std_cxx11::get<0>(*a) < std_cxx11::get<0>(*b);
148 template <
typename Iterators>
154 Assert (std::distance (std_cxx11::get<0>(*b),
155 std_cxx11::get<0>(*a)) >= 0,
157 return std::distance (std_cxx11::get<0>(*b),
158 std_cxx11::get<0>(*a));
167 template <
typename I1,
typename I2>
170 const unsigned int n)
172 std::advance (std_cxx11::get<0>(t), n);
173 std::advance (std_cxx11::get<1>(t), n);
181 template <
typename I1,
typename I2,
typename I3>
184 const unsigned int n)
186 std::advance (std_cxx11::get<0>(t), n);
187 std::advance (std_cxx11::get<1>(t), n);
188 std::advance (std_cxx11::get<2>(t), n);
196 template <
typename I1,
typename I2,
197 typename I3,
typename I4>
199 void advance (std_cxx11::tuple<I1,I2,I3, I4> &t,
200 const unsigned int n)
202 std::advance (std_cxx11::get<0>(t), n);
203 std::advance (std_cxx11::get<1>(t), n);
204 std::advance (std_cxx11::get<2>(t), n);
205 std::advance (std_cxx11::get<3>(t), n);
215 template <
typename I1,
typename I2>
219 ++std_cxx11::get<0>(t);
220 ++std_cxx11::get<1>(t);
228 template <
typename I1,
typename I2,
typename I3>
232 ++std_cxx11::get<0>(t);
233 ++std_cxx11::get<1>(t);
234 ++std_cxx11::get<2>(t);
242 template <
typename I1,
typename I2,
243 typename I3,
typename I4>
247 ++std_cxx11::get<0>(t);
248 ++std_cxx11::get<1>(t);
249 ++std_cxx11::get<2>(t);
250 ++std_cxx11::get<3>(t);
260 template <
typename Iterators>
276 template <
typename Iterators>
292 template <
typename Iterators>
298 return (std_cxx11::get<0>(*a) !=
299 std_cxx11::get<0>(*b));
302 DEAL_II_NAMESPACE_CLOSE
Tensor< rank, dim, typename ProductType< Number, OtherNumber >::type > operator+(const SymmetricTensor< rank, dim, Number > &left, const Tensor< rank, dim, OtherNumber > &right)
void advance_by_one(std_cxx11::tuple< I1, I2, I3 > &t)
#define Assert(cond, exc)
Tensor< rank, dim, typename ProductType< Number, OtherNumber >::type > operator-(const SymmetricTensor< rank, dim, Number > &left, const Tensor< rank, dim, OtherNumber > &right)
SynchronousIterators(const Iterators &i)
void advance(std_cxx11::tuple< I1, I2, I3, I4 > &t, const unsigned int n)
void advance(std_cxx11::tuple< I1, I2, I3 > &t, const unsigned int n)
void advance_by_one(std_cxx11::tuple< I1, I2 > &t)
SynchronousIterators< Iterators > operator++(SynchronousIterators< Iterators > &a)
void advance(std_cxx11::tuple< I1, I2 > &t, const unsigned int n)
bool operator!=(const AlignedVector< T > &lhs, const AlignedVector< T > &rhs)
const Iterators & operator*() const
void advance_by_one(std_cxx11::tuple< I1, I2, I3, I4 > &t)
static ::ExceptionBase & ExcInternalError()