
Could you try IOUArray for completeness too? (An IOUArray is the unboxed version of IOArray, it can be found in Data.Array.IO).
It fits in as the fastest:
IOUnboxedMutArray 0.48u 0.04s 0:00.58 89.6%
NormalArray 1.65u 0.20s 0:01.89 97.8% NormalArrayReplace 2.40u 0.08s 0:02.56 96.8% UnboxedArray 0.80u 0.04s 0:00.87 96.5% UnboxedArrayReplace 1.83u 0.07s 0:01.99 95.4% IOMutArray 0.60u 0.03s 0:01.09 57.7%
Hello.
I have recently coded in Haskell a little program which evaluates
a function given as a series of matrix products. Matrices and vectors
are represented as type X. Surprisingly, compiled with 'ghc -O2'
(vers 5.02.2) the program runs faster with X=Array than with X=UArray Double.
I was quite puzzled by this result, I suppose that maybe the laziness
helps to avoid memory allocation or something. Is that possible?
I am not posting the program here, because: a) it is somewhat long,
and b) I am a Haskell beginner. However, if somebody wants to play
with it, I will try to reduce and polish my code and to post it here.
Jan
--
-------------------------------------------------------------------------
Jan Kybic