Create generic operators in signalprocessing submodule performing Fredholm integrals of first and second kind as in https://en.wikipedia.org/wiki/Fredholm_integral_equation for 3 dimensional operators (note that when the kernel is 2d this is just MatrixMult 1st kind and Identity - MatrixMult 2nd kind).
Such operators have practically being made within MDC and Marchenko but having something more generic will allow to build MDC as a chain of FFT.H Fredholm1 FFT and Marchenko as a Fredholm2 with user defined kernel.
Main advantage: when focusing on speed up this will be limited to the actual integral computation, which is nothing more than a dense matrix-vector or matrix-matrix operation. We can use using anything available open-source for Machine Learning (as fast matrix-matrix is all a neural network needs to be fast). Options:
Create generic operators in
signalprocessing
submodule performing Fredholm integrals of first and second kind as in https://en.wikipedia.org/wiki/Fredholm_integral_equation for 3 dimensional operators (note that when the kernel is 2d this is justMatrixMult
1st kind andIdentity - MatrixMult
2nd kind).Such operators have practically being made within
MDC
andMarchenko
but having something more generic will allow to buildMDC
as a chain ofFFT.H Fredholm1 FFT
andMarchenko
as aFredholm2
with user defined kernel.Main advantage: when focusing on speed up this will be limited to the actual integral computation, which is nothing more than a dense matrix-vector or matrix-matrix operation. We can use using anything available open-source for Machine Learning (as fast matrix-matrix is all a neural network needs to be fast). Options: