Yichao, Oscar, and I were unhappy with the current state of vectorization of operations involving complex numbers and other immutables so I decided to do something about it. I'm pleased to announce StructsOfArrays.jl <https://github.com/simonster/StructsOfArrays.jl>, which performs the Array of Structures -> Structure of Arrays memory layout optimization without requiring code changes. This alternative memory layout permits SIMD optimizations for immutables for which such optimizations would not otherwise be possible or profitable, either because of limitations of the Julia codegen and LLVM optimizer or because of the type of the operations performed. The benchmark in the README shows that StructsOfArrays can give non-negligible speedups for simple operations involving arrays of complex numbers.
Simon
