Our great sponsors
-
SIGPROC.jl
Toolkit for working with astronomical radio transients in the SIGPROC Filterbank format in Julia
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I am trying to write an implementation of a basic algorithm in pulsar astronomy: dedispersion. What this essentially boils down to is adding the rows of a two-dimensional matrix together, but we shift each row by some value. The lower the row, the more the shift. Note that the shift is not circular, and it does not increase linearly. I am still new to Julia, and so I programmed it in a way that is looks more like C/C++ here. Is there a better way to do this? Like having a view into the 2D array that shifts as it goes down?
I’ve been working on this as well - check out my package https://github.com/kiranshila/RadioTransients.jl/blob/main/src/dispersion.jl
BTW, I am also thinking of factoring out the I/O for SIGPROC files into a whole other package, mostly for convenience. I might use your code for a bit of inspiration, along with some of my own (in Python, here). I will let you know when it is up on GitHub.
Have you checked out https://github.com/JuliaSIMD/LoopVectorization.jl ? It may be useful for your specific use case