/// <summary>
/// Add the contents of another histogram to this one, while correcting the incoming data for coordinated omission.
/// </summary>
/// <param name="fromHistogram">The other histogram. highestTrackableValue and largestValueWithSingleUnitResolution must match.</param>
/// <param name="expectedIntervalBetweenValueSamples">If <paramref name="expectedIntervalBetweenValueSamples"/> is larger than 0, add auto-generated value records as appropriate if value is larger than <paramref name="expectedIntervalBetweenValueSamples"/></param>
/// <remarks>
/// To compensate for the loss of sampled values when a recorded value is larger than the expected interval between value samples, the values added will include an auto-generated additional series of decreasingly-smaller(down to the expectedIntervalBetweenValueSamples) value records for each count found in the current histogram that is larger than the expectedIntervalBetweenValueSamples.
///
/// Note: This is a post-recording correction method, as opposed to the at-recording correction method provided by {@link #recordValueWithExpectedInterval(long, long) recordValueWithExpectedInterval}.
/// The two methods are mutually exclusive, and only one of the two should be be used on a given data set to correct for the same coordinated omission issue.
/// See notes in the description of the Histogram calls for an illustration of why this corrective behavior is important.
/// </remarks>
/// <exception cref="System.IndexOutOfRangeException">if values exceed highestTrackableValue.</exception>
public void AddWhileCorrectingForCoordinatedOmission(HistogramBase fromHistogram, long expectedIntervalBetweenValueSamples)
{
foreach (var v in fromHistogram.RecordedValues())
{
RecordValueWithCountAndExpectedInterval(
v.ValueIteratedTo,
v.CountAtValueIteratedTo,
expectedIntervalBetweenValueSamples);
}
}