On Feb 20, 2008 12:59 PM, Chad Scherrer <[EMAIL PROTECTED]> wrote:
> On Feb 20, 2008 10:57 AM, Antoine Latter <[EMAIL PROTECTED]> wrote:
> > For anyone looking into it - the StorableVector fusion would have to
> > be quite different from the current ByteString fusion framework.
> > Maybe it would be enough to lay down a Stream fusion framework for
> > StorableVectors.
>
> I must be missing something. Why would it have to be so different?
>

>From what I saw of Data.ByteString.Fusion, it relies on the assumption
that the elements of the output array are of the same size and
alignment as the elements of all of the arrays in the fused
intermediate steps.  That way, all of the intermediate stages can
mutate the output array in place.

This works because all of the fusable bytestring functions have types
along the lines of:

map :: (Word8 -> Word8) -> ByteString -> ByteString

With StorableVector, it'd be nice to support the fusion of:

map :: (a -> b) -> Vector a -> Vector b

All of this just comes from me reading the code, so I could be
miss-interpreting something.

The NDP papers probably have something interesting to say about this,
but I haven't taken the time to try and understand/simplify what they
do.

-Antoine
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to