ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/staticProps/RadialDistrFunc.cpp
(Generate patch)

Comparing trunk/OOPSE-4/src/applications/staticProps/RadialDistrFunc.cpp (file contents):
Revision 2002 by tim, Sun Feb 13 06:57:48 2005 UTC vs.
Revision 2031 by tim, Tue Feb 15 17:11:35 2005 UTC

# Line 60 | Line 60 | RadialDistrFunc::        RadialDistrFunc(SimInfo* info
60              seleMan2_.setSelectionSet(evaluator2_.evaluate());
61      }
62  
63 +    if (!evaluator1_.isDynamic() && !evaluator2_.isDynamic()) {
64 +        //if all selections are static,  we can precompute the number of real pairs    
65 +
66 +        int nSelected1 = seleMan1_->getSelectionCount();
67 +        int nSelected2 = seleMan2_->getSelectionCount();
68 +
69 +        BitSet bs = seleMan1_.getSelectionSet();
70 +        bs &= seleMan2_.getSelectionSet();
71 +        int nIntersect = bs.countBits();
72 +
73 +        nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2;
74 +    }
75 +    
76   }
77  
78   void RadialDistrFunc::process() {
# Line 101 | Line 114 | void RadialDistrFunc::process() {
114              StuntDouble* sd2;
115              int k;
116              for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) {
117 <                collectHistogram(sd1, sd2);
117 >                if (sd1 != sd2) {
118 >                    collectHistogram(sd1, sd2);
119 >                }
120              }            
121          }
122  
# Line 114 | Line 129 | void RadialDistrFunc::process() {
129      writeRdf();
130   }
131  
132 + int RadialDistrFunc::getNRealPairs() {
133 +    if (evaluator1_.isDynamic() || evaluator2_.isDynamic()) {
134 +        //if one of the selection is static,  need to recompute it    
135 +
136 +        int nSelected1 = seleMan1_->getSelectionCount();
137 +        int nSelected2 = seleMan2_->getSelectionCount();
138 +
139 +        BitSet bs = seleMan1_.getSelectionSet();
140 +        bs &= seleMan2_.getSelectionSet();
141 +        int nIntersect = bs.countBits();
142 +
143 +        nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2;
144 +    }
145 +
146 +    return nRealPairs_
147   }
148 +
149 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines