I'm being exploring the Repa Module and I got myself into a big mess trying to figure out how to use the INLINE/NOINLINE pragma. In the paper “Guiding parallel Array Fusion with Indexed Types” it is said that: if the signature contains any D tags, or type class dictionaries, then you must INLINE it to get fast code, otherwise not. But looking in the provided example of matrix multiplication the transpose2P defined in the Repa-example package, do not contain a “D” in the signature but nevertheless use the INLINE pragma.
Besides in the Numeric Haskell: A repa Tutorial in section 1.8.5 it is said that : “... The moral of the story is to attach INLINE pragmas to all your client functiond that compute array values...”.
Could you please give some advices about how to use those pragmas?
Thanks in advance.
Felipe