Allow streams to produce entire vectors as well as individual elements
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 7 Jan 2012 11:06:00 +0000 (11:06 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Sat, 7 Jan 2012 11:06:00 +0000 (11:06 +0000)
commitfd1815757858ceac2b9323b3c42a8007a0602197
tree3068386b63e4fb570fc4fd2f808f7cc1fa780cd4
parent41c94d2a901585f7b26e1c74dec754fc647c62db
Allow streams to produce entire vectors as well as individual elements

This is a signficant extension to the stream fusion mechanism. A Stream is now
parametrised with a vector type and offers two iteration modes: individual
elements and individual elements + vectors. This supports significantly more
efficient implementations of block operations. For instance, (++) will now use
memcpy where possible rather than iterating through the elements in a loop.

Comments are sorely lacking at the moment.
Data/Vector/Fusion/Stream.hs
Data/Vector/Fusion/Stream/Monadic.hs
Data/Vector/Generic.hs
Data/Vector/Generic/Base.hs
Data/Vector/Generic/Mutable.hs
Data/Vector/Generic/Mutable/Base.hs [new file with mode: 0644]
Data/Vector/Generic/New.hs
vector.cabal