<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 2 Jul 2016, at 1:34 PM, William Yager <<a href="mailto:will.yager@gmail.com" class="">will.yager@gmail.com</a>> wrote:</div><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">My code to do this is as follows:</div><div class=""><br class=""></div><div class=""><a href="https://gist.github.com/wyager/8c468c9d18ad62aff8bc9738aa947ea4" class="">https://gist.github.com/wyager/8c468c9d18ad62aff8bc9738aa947ea4</a></div><div class=""><br class=""></div></div></div></blockquote><br class=""></div><div>1) Put INLINE pragmas on all the leaf functions, especially ‘kernel’. If the compiler does not inline these functions they won’t fuse. This is a key problem with the Repa approach to fusion.</div><div><br class=""></div><div>2) The ‘dimensional’ packages wraps a data type around all those values. I’m not convinced the simplifier will be able to undo the wrapping / unwrapping. You’ll need to inspect the core code to check.</div><div><br class=""></div><div>Ben.</div><div><br class=""></div></body></html>