@@ -47,7 +47,6 @@ void Connections::initialize(CellIdx numCells, Permanence connectedThreshold, bo
47
47
connectedSynapsesForPresynapticCell_.clear ();
48
48
potentialSegmentsForPresynapticCell_.clear ();
49
49
connectedSegmentsForPresynapticCell_.clear ();
50
- segmentOrdinals_.clear ();
51
50
eventHandlers_.clear ();
52
51
NTA_CHECK (connectedThreshold >= minPermanence);
53
52
NTA_CHECK (connectedThreshold <= maxPermanence);
@@ -99,13 +98,11 @@ Segment Connections::createSegment(const CellIdx cell,
99
98
NTA_CHECK (segments_.size () < std::numeric_limits<Segment>::max ()) << " Add segment failed: Range of Segment (data-type) insufficinet size."
100
99
<< (size_t )segments_.size () << " < " << (size_t )std::numeric_limits<Segment>::max ();
101
100
segment = static_cast <Segment>(segments_.size ());
102
- const SegmentData& segmentData = SegmentData (cell, iteration_);
101
+ const SegmentData& segmentData = SegmentData (cell, iteration_, nextSegmentOrdinal_++ );
103
102
segments_.push_back (segmentData);
104
- segmentOrdinals_.push_back (0 );
105
103
}
106
104
107
105
CellData &cellData = cells_[cell];
108
- segmentOrdinals_[segment] = nextSegmentOrdinal_++;
109
106
cellData.segments .push_back (segment); // assign the new segment to its mother-cell
110
107
111
108
for (auto h : eventHandlers_) {
@@ -213,7 +210,7 @@ void Connections::destroySegment(const Segment segment) {
213
210
std::lower_bound (cellData.segments .cbegin (), cellData.segments .cend (),
214
211
segment,
215
212
[&](const Segment a, const Segment b) {
216
- return segmentOrdinals_[a] < segmentOrdinals_[b] ;
213
+ return dataForSegment (a). id < dataForSegment (b). id ;
217
214
});
218
215
219
216
NTA_ASSERT (segmentOnCell != cellData.segments .end ());
@@ -356,7 +353,7 @@ bool Connections::compareSegments(const Segment a, const Segment b) const {
356
353
// default sort by cell
357
354
if (aData.cell == bData.cell )
358
355
// fallback to ordinals:
359
- return segmentOrdinals_[a] < segmentOrdinals_[b] ;
356
+ return aData. id < bData. id ;
360
357
else return aData.cell < bData.cell ;
361
358
}
362
359
0 commit comments