PyLops / pylops

PyLops – A Linear-Operator Library for Python
https://pylops.readthedocs.io
GNU Lesser General Public License v3.0
421 stars 101 forks source link

Fredholm1 and Fredholm2 operators #31

Closed mrava87 closed 2 years ago

mrava87 commented 5 years ago

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:

mrava87 commented 5 years ago

Fredholm1 implemented in https://github.com/equinor/pylops/commit/3ec9a0c05b6d778bd6710e8d9c365b7b84e27773#diff-942d36e0e4042489f435e8b8febc64c3

mrava87 commented 2 years ago

Fredholm2 does not make much sense to implement as it can be easily made by combining primitive operators: Identity+Fredholm1