@@ -47,18 +47,12 @@ void Connections::initialize(CellIdx numCells, Permanence connectedThreshold, bo
47
47
connectedSynapsesForPresynapticCell_.clear ();
48
48
potentialSegmentsForPresynapticCell_.clear ();
49
49
connectedSegmentsForPresynapticCell_.clear ();
50
- synapseOrdinals_.clear ();
51
50
eventHandlers_.clear ();
52
51
NTA_CHECK (connectedThreshold >= minPermanence);
53
52
NTA_CHECK (connectedThreshold <= maxPermanence);
54
53
connectedThreshold_ = connectedThreshold - htm::Epsilon;
55
54
iteration_ = 0 ;
56
55
57
- // Every time a segment or synapse is created, we assign it an ordinal and
58
- // increment the nextOrdinal. Ordinals are never recycled, so they can be used
59
- // to order segments or synapses by age.
60
- nextSynapseOrdinal_ = 0 ;
61
-
62
56
nextEventToken_ = 0 ;
63
57
64
58
timeseries_ = timeseries;
@@ -132,14 +126,13 @@ Synapse Connections::createSynapse(Segment segment,
132
126
<< synapses_.size () << " < " << (size_t )std::numeric_limits<Synapse>::max ();
133
127
synapse = static_cast <Synapse>(synapses_.size ());
134
128
synapses_.push_back (SynapseData ());
135
- synapseOrdinals_.push_back (0 );
136
129
}
137
130
138
131
// Fill in the new synapse's data
139
132
SynapseData &synapseData = synapses_[synapse];
140
133
synapseData.presynapticCell = presynapticCell;
141
134
synapseData.segment = segment;
142
- synapseOrdinals_[synapse] = nextSynapseOrdinal_++;
135
+ synapseData. id = nextSynapseOrdinal_++; // TODO move these to SynData constructor
143
136
// Start in disconnected state.
144
137
synapseData.permanence = connectedThreshold_ - 1 .0f ;
145
138
synapseData.presynapticMapIndex_ =
@@ -267,9 +260,8 @@ void Connections::destroySynapse(const Synapse synapse) {
267
260
const auto synapseOnSegment =
268
261
std::lower_bound (segmentData.synapses .cbegin (), segmentData.synapses .cend (),
269
262
synapse,
270
- [&](const Synapse a, const Synapse b) {
271
- if (synapseOrdinals_[a] == synapseOrdinals_[b]) return a < b;
272
- else return synapseOrdinals_[a] < synapseOrdinals_[b];
263
+ [&](const Synapse a, const Synapse b) -> bool {
264
+ return dataForSynapse (a).id < dataForSynapse (b).id ;
273
265
});
274
266
275
267
NTA_ASSERT (synapseOnSegment != segmentData.synapses .end ());
0 commit comments