comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Strange behavior of /cumulative keyword in total()
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Strange behavior of /cumulative keyword in total() [message #63285] Tue, 04 November 2008 08:23 Go to previous message
jameskuyper is currently offline  jameskuyper
Messages: 79
Registered: October 2007
Member
Chris wrote:
> Can anybody explain this?
>
> arr = fltarr( 500000) + .1
> cumul = total(array, /cumulative)
>
> print, (cumul - shift(cumul, 1)) [1 : 10]
> print, (cumul - shift(cumul,1)) [499990:499999]
>
>> 0.100000 0.100000 0.100000 0.100000 0.100000 0.100000
> 0.100000 0.100000 0.100000 0.100000
>
>
>> 0.101562 0.101562 0.101562 0.101562 0.101562 0.101562
> 0.101562 0.101562 0.101562 0.101562
>
> Plotting cumul - shift(cumul,1) is even weirder. I can understand the
> net error of cumul growing over time, as floating point precision
> errors accumulate. However, shouldn't the error between any two
> entries in a cumulative sum not accumulate over the array?

The difference between any two entries in the array should be 0.1,
plus a roundoff error that should be proportional to the value of
cumul. Try this:

diff = cumul[1:*]-cumul[0:499998]-0.1
nonzero = where(diff ne 0.0)
plot, cumul[nonzero], abs(diff[nonzero]), psym=3, /xlog, /ylog

I was also going to say that the roundoff error should be random, but
that doesn't look very random to me.
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: specialized color tables
Next Topic: segment vector with missing data

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 15:10:35 PDT 2025

Total time taken to generate the page: 0.24051 seconds