Statistical Summaries
Range Summary
Min, Max, Difference
A range summary tracks the smallest and largest active values before subtracting them.
Program
Play the program to summarize a longer or shorter prefix of the measurements.
range_summary.f90
program range_summary_demo
implicit none
integer :: measurements(5)
integer :: limit_count
integer :: i
integer :: low
integer :: high
integer :: spread
measurements = [8, 3, 9, 7, 10]
limit_count =
low = measurements(1)
high = measurements(1)
do i = 2, limit_count
if (measurements(i) < low) low = measurements(i)
if (measurements(i) > high) high = measurements(i)
end do
spread = high - low
print '(I0, 1X, I0, 1X, I0, 1X, I0)', limit_count, low, high, spread
end program range_summary_demo
program range_summary_demo
implicit none
integer :: measurements(5)
integer :: limit_count
integer :: i
integer :: low
integer :: high
integer :: spread
measurements = [8, 3, 9, 7, 10]
limit_count =
low = measurements(1)
high = measurements(1)
do i = 2, limit_count
if (measurements(i) < low) low = measurements(i)
if (measurements(i) > high) high = measurements(i)
end do
spread = high - low
print '(I0, 1X, I0, 1X, I0, 1X, I0)', limit_count, low, high, spread
end program range_summary_demo
program range_summary_demo
implicit none
integer :: measurements(5)
integer :: limit_count
integer :: i
integer :: low
integer :: high
integer :: spread
measurements = [8, 3, 9, 7, 10]
limit_count =
low = measurements(1)
high = measurements(1)
do i = 2, limit_count
if (measurements(i) < low) low = measurements(i)
if (measurements(i) > high) high = measurements(i)
end do
spread = high - low
print '(I0, 1X, I0, 1X, I0, 1X, I0)', limit_count, low, high, spread
end program range_summary_demo
initial extrema
Both `low` and `high` start from the first active observation.
conditional update
Each later value updates only the summary it beats.
spread
The range width is `high - low` after the scan finishes.