Taking rolling functions seriously

Generally speaking, a to roll a function over windowed data is to apply that function to consecutive data subspans, where the length (for vector data) of each subspan is given by the window size.

The language has advanced and probably allows improved approaches to coding specific families of rolling functions, Julia contributors have published packages that, properly applied, should enhance the performance of functions used over windowed data.

As the author of RollingFunctions.jl, I am aware of recurring requests for optimizations and special performance enhancements. While a few of these suggestions are reasonable – particularly speeding the rolling sum – the better gains are to be found where my expertise is as yet not fully formed. And for that, your involvement here is most valued.

Using functions from VectorizedStatistics.jl seems appropriate … should they be defaults or available alternatives? What more generalized advantages follow from good ways of using Polyester.jl? There are likely opportunities to apply some of the community’s well-developed expertise in other aspects of vectorization and in applicative sub-apportionment.

And all I have overlooked, undernoticed, or know others know better …

7 Likes