From 0151cdf3fa2ef5af1bd5c81231abbcda26acbabf Mon Sep 17 00:00:00 2001
From: Markus Blatt <mblatt@dune-project.org>
Date: Wed, 18 May 2011 12:33:31 +0000
Subject: [PATCH] Make comparison correct for ParellelLocalIndex.

[[Imported from SVN: r6444]]
---
 dune/common/parallel/indexset.hh    | 10 ++++++++--
 dune/common/parallel/plocalindex.hh | 19 +++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/dune/common/parallel/indexset.hh b/dune/common/parallel/indexset.hh
index 661bd7318..164a6fbea 100644
--- a/dune/common/parallel/indexset.hh
+++ b/dune/common/parallel/indexset.hh
@@ -1109,9 +1109,15 @@ namespace Dune
     typedef typename ParallelIndexSet<TG,TL,N>::const_iterator Iter;
     typedef typename ParallelIndexSet<TG1,TL1,N1>::const_iterator Iter1;
     Iter iter=idxset.begin();
-    for(Iter1 iter1=idxset1.begin(); iter1 != idxset1.end(); ++iter, ++iter1)
-      if(*iter1!=*iter)
+    for(Iter1 iter1=idxset1.begin(); iter1 != idxset1.end(); ++iter, ++iter1) {
+      if(iter1->global()!=iter->global())
         return false;
+      typedef typename ParallelIndexSet<TG,TL,N>::LocalIndex PI;
+      const PI& pi=iter->local(), pi1=iter1->local();
+
+      if(pi!=pi1)
+        return false;
+    }
     return true;
   }
 
diff --git a/dune/common/parallel/plocalindex.hh b/dune/common/parallel/plocalindex.hh
index 57b526852..d80e6e7e6 100644
--- a/dune/common/parallel/plocalindex.hh
+++ b/dune/common/parallel/plocalindex.hh
@@ -168,6 +168,25 @@ namespace Dune
 
   };
 
+  template<typename T>
+  bool operator==(const ParallelLocalIndex<T>& p1,
+                  const ParallelLocalIndex<T>& p2)
+  {
+    if(p1.local()!=p2.local())
+      return false;
+    if(p1.attribute()!=p2.attribute())
+      return false;
+    if(p1.isPublic()!=p2.isPublic())
+      return false;
+    return true;
+  }
+  template<typename T>
+  bool operator!=(const ParallelLocalIndex<T>& p1,
+                  const ParallelLocalIndex<T>& p2)
+  {
+    return !(p1==p2);
+  }
+
 
   template<typename T>
   struct LocalIndexComparator<ParallelLocalIndex<T> >
-- 
GitLab