示例#1
0
        private void UpdateRange(AbstractFragment range, AbstractPatch patch)
        {
            var start = Math.Max(patch.StartPosition, range.StartPosition);
            var end   = Math.Min(patch.EndPosition, range.EndPosition);

            for (var position = start; position <= end; position++)
            {
                range.SetValue(position, this.updateFunc(patch, position));
            }
        }
示例#2
0
        private double[] GetForwardArray(AbstractFragment fragment)
        {
            /*
             |-------------------------------|+++++++++|
             *          extension                fragment
             */

            var expandSize = this.predictor.InputDataSize;
            var totalSize  = expandSize + fragment.Length;

            var samples = this.inputSource.GetRange(
                fragment.StartPosition - expandSize,
                totalSize);

            for (var index = expandSize; index < samples.Length; index++)
            {
                samples[index] = this.predictor.GetForward(
                    samples[(index - expandSize)..index]);