|
Boost : |
From: Matthias Troyer (troyer_at_[hidden])
Date: 2007-08-09 18:35:46
On 8 Aug 2007, at 22:26, Eric Niebler wrote:
>
> Matthias Troyer wrote:
>> On 7 Aug 2007, at 12:06, Eric Niebler wrote:
>>
>>> I'm sorry you ran into trouble with floating-point offsets. To be
>>> honest, they were added to the time_series library as a bit of an
>>> after-thought, and they are admittedly not a seamless addition. With
>>> integral offsets, runs are in fact half-open. Floating-point runs
>>> are
>>> not -- it's not clear what that would mean. (E.g., a delta series D
>>> has
>>> a 42 at [3.14,3.14) -- that's a zero-width half open range! What
>>> should
>>> D[3.14] return?) Some of the algorithms won't work with floating-
>>> point
>>> offsets. If you feel this part of the library needs more thought,
>>> that's
>>> a fair assessment. I'm certain that had you used integral offsets
>>> your
>>> experience would have been less frustrating.
>>>
>>> I think with better docs and more strict type checking, integral and
>>> floating point offsets can both be supported without confusion.
>>
>> Don't confuse the sparse/dense time series with piecewise constant
>> functions. A delta series D has 42 at 3.14, not at any interval
>> [3.14,3.14) - intervals should be used only for the piecewise
>> constant functions.
>
>
> Ah, but the library is built on top of lower-level abstractions that
> assume intervals. An interval (a run) is how algorithms on time series
> are expressed. This design was chosen because it makes it possible to
> write generic algorithms for lots of different types of series, and it
> works very well for integral offsets. The question is whether the
> abstractions upon which time series is built are compatible with a
> sparse series with floating point offsets and if so, what
> convention can
> be used so that the algorithms naturally give the correct results both
> with points and with runs. The way the library currently handles
> floating point offsets is /almost/ right, but not quite.
How do you express the delta series as a run then? length 1?
Matthias
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk