Doo.Machine.HTM.HTMCell.GetSegmentActiveSynapses C# (CSharp) Method

GetSegmentActiveSynapses() public method

public GetSegmentActiveSynapses ( int t, HTMSegment segment = null, bool newSynapses = false ) : SegmentUpdate
t int
segment HTMSegment
newSynapses bool
return SegmentUpdate
        public SegmentUpdate GetSegmentActiveSynapses(int t, HTMSegment segment = null, bool newSynapses = false)
        {
            SegmentUpdate segmentUpdate = new SegmentUpdate();
            segmentUpdate.ActiveSynapses = new List<HTMSynapse>();
            segmentUpdate.NewSynapses = new List<HTMCell>();
            segmentUpdate.AddNewSynapses = newSynapses;
            segmentUpdate.Segment = segment;

            if (segmentUpdate.Segment != null)
                segmentUpdate.ActiveSynapses = segment.GetActiveSynapses(t, false, false);

            if (!newSynapses)
                return segmentUpdate;

            int newSynapseCount = Math.Max(0, _newSynapseCount - segmentUpdate.ActiveSynapses.Count);

            //List<HTMCell> learningCells = GetRandomActiveCells(t);
            List<HTMCell> learningCells = GetRandomLearningCells(t);

            newSynapseCount = Math.Min(newSynapseCount, learningCells.Count);

            // Truncate the array of learning cells. To do : get a random sample of the array.
            for (int i = 0 ; i < newSynapseCount; i++)
                segmentUpdate.NewSynapses.Add(learningCells[i]);

            return segmentUpdate;
        }