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