Linearizes data by seeking points with relative difference greater than Linearizer.TruncateRatio and replacing them with points lying on line between the first and the last of such points. Strictly:
let delta(i) be function which assigns to an element at index i (data[i]), for 0 data.length, value of |(data[i] - data[i+1])/data[i]|. Then for each range (j,k) of data, such that delta(j) > Linearizer.TruncateRatio and delta(k) Linearizer.TruncateRatio, data[x] = ((data[k] - data[j])/(k - j)) * (x - k) + data[j]) for j .
@author Marcin Rzeźnicki