# | 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 72 | Line 85 | void RadialDistrFunc::process() { | |
85 | ||
86 | DumpReader reader(info_, dumpFilename_); | |
87 | int nFrames = reader.getNFrames(); | |
88 | < | nProcessed_ = nFrames / step_ + 1; |
88 | > | nProcessed_ = nFrames / step_; |
89 | > | |
90 | for (int i = 0; i < nFrames; i += step_) { | |
91 | reader.readFrame(i); | |
92 | currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot(); | |
# | Line 101 | Line 115 | void RadialDistrFunc::process() { | |
115 | StuntDouble* sd2; | |
116 | int k; | |
117 | for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) { | |
118 | < | collectHistogram(sd1, sd2); |
118 | > | if (sd1 != sd2) { |
119 | > | collectHistogram(sd1, sd2); |
120 | > | } |
121 | } | |
122 | } | |
123 | ||
# | Line 114 | Line 130 | void RadialDistrFunc::process() { | |
130 | writeRdf(); | |
131 | } | |
132 | ||
133 | + | int RadialDistrFunc::getNRealPairs() { |
134 | + | if (evaluator1_.isDynamic() || evaluator2_.isDynamic()) { |
135 | + | //if one of the selection is dynamic, need to recompute it |
136 | + | |
137 | + | int nSelected1 = seleMan1_.getSelectionCount(); |
138 | + | int nSelected2 = seleMan2_.getSelectionCount(); |
139 | + | |
140 | + | BitSet bs = seleMan1_.getSelectionSet(); |
141 | + | bs &= seleMan2_.getSelectionSet(); |
142 | + | int nIntersect = bs.countBits(); |
143 | + | |
144 | + | nRealPairs_ = nSelected1 * nSelected2 - (nIntersect +1) * nIntersect/2; |
145 | + | } |
146 | + | |
147 | + | return nRealPairs_; |
148 | } | |
149 | + | |
150 | + | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |