Hi there. I started using ArrayFire a few days ago when I created a 2D simulation of particles using Rust. I originally programmed it in a sequential style, then converted it to iterators and parallelized it with Rayon. That provided a substantial speed-up but I still had the feeling that the CPU was the wrong tool for this task. I had a look around for GPU libraries in Rust and eventually settled on AF, because it seemed like the highest-level API for this type of work. After trying for a while to get my head around array programming, I had my sudden break-through and came up with the idea of using 2 N x N arrays, where each 2D coordinate between them represented a pair of points. In the end this sped my program up by around 2-3 times, certainly an improvement but not by as much as I had hoped. And my hypothesis that this would substantially improve my program's scalability turned out to be dead wrong! This prompted me to do a little bit more research about this specific problem and I found that it's called an N-body problem. I haven't found anything in AF documentation referencing this specific problem, but from what I gather my approach of simulating N² interactions each step is considered the "naive" approach, and operating on 2D matrices is not the preferred way to solve this problem. My next approach would have been to use gfor to go back to 1D vectors instead of 2D matrices, but gfor is not available in the Rust API so I cannot. Is there anything I could do to achieve the same effect (or would gfor just replicate my manual replication of values) or otherwise improve the performance of my program?