-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
How to make rotationally invariant solves fast? #126
Comments
To understand properly, this discussion is entirely about how to do the solve of a diagonally banded block banded matrix? What's the current way things are solved? QR on the whole matrix? |
For general banded-block-banded matrix it just reduces to block-banded QR, that is, it treats the blocks as dense. This is because there is invariably fill-in. This is an At the moment diagonal-block-banded is handled the same way. Though using any of the proposals above it reduces to |
ok! And in option (1), each individual block would be copied to a banded matrix and then a QR factorization is applied? So there would be I guess te advantage of (1) is that it can be applied to any problem that induces a diagonal banded block banded matrix. Rather than constraining ourselves to the |
I suppose to answer this I'd need to have a better understanding of how Lacking this, I'd also lean towards (1). |
Exactly. The negative is you take banded matrices with simple rational formulae and nice memory sequential properties, rearrange as a |
Rotationally invariant operators are typically represented by
ModalInterlace
which combines matrices acting only on Fourier modes into a diagonal-block-banded matrix (that is, block banded matrix with diagonal blocks, i.e. subblockbandwidths are(0,0)
).At the moment we aren't taking advantage of this structure. There are two approaches:
BandedBlockBandedMatrix
by checking whether the subblockbandwidths are(0,0)
. The easiest way would be to copy to a banded matrix, do a QR, and then copy the data back.DiagonalBlockBandedMatrix
though this doesn't seem to have any obvious benefits over (1).ModalInterlace
. This has the benefit of being able to callqr
on each of the banded operators separately (and potentially taking advantage of@threads
). Though probably (1) could also be parallelised.@TSGut @ioannisPApapadopoulos any thoughts? Do you think this is important right now? It won't help with the variable coefficients problem but could be important for fractional DEs and time-stepping.
The text was updated successfully, but these errors were encountered: