1 #ifndef _RHEOLEF_POINT_UTIL_H
2 #define _RHEOLEF_POINT_UTIL_H
6 #include "rheolef/distributor.h"
7 #include "rheolef/point.h"
12 struct id_pt_t : std::pair<size_t,point_basic<T> > {
13 typedef std::pair<size_t,point_basic<T> >
base;
16 template<
class Archive>
17 void serialize (Archive& ar,
const unsigned int version) {
24 #ifdef _RHEOLEF_HAVE_MPI
29 struct is_mpi_datatype<rheolef::id_pt_t<double> > : mpl::true_ { };
32 #endif // _RHEOLEF_HAVE_MPI
37 struct id_pt_minimum :
public std::binary_function<id_pt_t<T>, id_pt_t<T>, id_pt_t<T> > {
40 size_t id =
std::min(a.first, b.first);
52 struct pt2_t : std::pair<point_basic<T>,point_basic<T> > {
56 template<
class Archive>
57 void serialize (Archive& ar,
const unsigned int version) {
64 #ifdef _RHEOLEF_HAVE_MPI
69 struct is_mpi_datatype<rheolef::pt2_t<double> > : mpl::true_ { };
72 #endif // _RHEOLEF_HAVE_MPI
77 struct pt2_minimum :
public std::binary_function<pt2_t<T>, pt2_t<T>, pt2_t<T> > {
93 #endif // _RHEOLEF_POINT_UTIL_H