I would think all you would need to know is:
Minimum
Maximum
Average
NumberOfSamples
Then, on the next iteration:
If NewValue If NewValue>Maximum, set Maximum=NewValue
Average(new) = [Average(old)*NumberOfSamples+NewValue]/(NumberOfSamples+1)
Increment NumberOfSamples
r(new)=Maximum-Minimum
To decrease iteration errors, you could do this in batches of 1000 or 1000000. That is, every 1000 start a new average, then average all the averages.
Or am I missing something?
Les.Hammer@CompleteTest.com