@Override public FloatTimeSeries getAbsolute() { final FloatTimeSeries result = new FloatTreeTimeSeries(); result.setInterpolationMode(getInterpolationMode()); if (getValues().isEmpty()) { return result; } if (getInterpolationMode() == InterpolationMode.LINEAR) { return getAbsoluteLinear(result); } for (SampledValue value : getValues()) { final float x = value.getValue().getFloatValue(); if (x >= 0) { result.addValue(value); } else { result.addValue(new SampledValue(new FloatValue(-x), value.getTimestamp(), value.getQuality())); } } return result; }