public DataPoint Add(DataPoint point) { if (Time != point.Time) throw new InvalidOperationException("Cannot add datapoints with mismatched times"); return new DataPoint() { Time = Time, Value = Value + point.Value }; }
public DataPoint Subtract(DataPoint point) { return Add(point.Negate()); }
// Static Methods private static DataPoint Add(DataPoint point1, DataPoint point2) { return point1.Add(point2); }