docs: function buildLookupTable(timestamps, min, max, distribution) {
  	if (distribution === 'linear' || !timestamps.length) {
  		return [
  			{time: min, pos: 0},
  			{time: max, pos: 1}
  		];
  	}
  
  	var table = [];
  	var items = [min];
  	var i, ilen, prev, curr, next;
  
  	for (i = 0, ilen = timestamps.length; i < ilen; ++i) {
  		curr = timestamps[i];
  		if (curr > min && curr < max) {
  			items.push(curr);
  		}
  	}
  
  	items.push(max);
  
  	for (i = 0, ilen = items.length; i < ilen; ++i) {
  		next = items[i + 1];
  		prev = items[i - 1];
  		curr = items[i];
  
  		// only add points that breaks the scale linearity
  		if (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {
  			table.push({time: curr, pos: i / (ilen - 1)});
  		}
  	}
  
  	return table;
  }