LinearOperator and new solver

Dear Scipy-dev community, I would like to bring forward two proposals related to your scipy.sparse.linalg.LinearOperator class and linear solvers in general: LinearOperator: I am the main developer and maintainer of the PyLops library that has been recently open-sourced (git repo: https://github.com/Statoil/pylops, doc: https://pylops.readthedocs.io/en/latest/index.html). As you will see I heavily rely on your LinearOperator class and build on top of it creating various basic linear operators and more specific ones for signal processing and geoscience applications of inverse problems. When I started working on this I was surprised to find very little information and examples online on how to use your LinearOperator and the possibility to subclass it was only mentioned in one line of your documentation and nowhere else online to my knowledge. I wonder if you would consider pointing to PyLops in your documentation to facilitate users i) to know how to get started with LinearOperator, ii) avoid rebuilding the wheel if what they are after can be done or is done already in PyLops. I find your class fantastic and saved me lots of time but I feel is one of those things that few people realize exist and understand how to use it ;) Solvers: I would like to know if you would be interested to add a new solver to your suite of linear solvers. Specifically the solver is called SPGL1 and it is a very popular solver in the mathematical community for sparsity-promoting linear optimization. It was developed at UBC (University of British Columbia) https://www.cs.ubc.ca/~mpf/spgl1/ and has a Matlab open-source code. I have been thinking about porting it to python for a while and recently another python user started a git repo called https://github.com/drrelyea/SPGL1_python_port. However this is something I would more naturally see as part of scipy instead of an indipendent library. I am willing to contact the author of this repo and help him out directly to finish the porting and make it to (or close to) scipy standards... so far the code and repo is not ready to be included in professional code like scipy in my opinion. But I would like to hear what you think, if you would consider adding this to scipy once in good shape or if you think this is not in the scope of scipy library :) Looking forward to hearing from you, Best wishes MR

Dear Scipy-dev community,
I would like to bring forward two proposals related to your scipy.sparse.linalg.LinearOperator class and linear solvers in general:
- LinearOperator: I am the main developer and maintainer of the PyLops library that has been recently open-sourced (git repo: https://github.com/Statoil/pylops, doc: https://pylops.readthedocs.io/en/latest/index.html) <https://pylops.readthedocs.io/en/latest/index.html>. As you will see I heavily rely on your LinearOperator class and build on top of it creating various basic linear operators and more specific ones for signal processing and geoscience applications of inverse problems. When I started working on this I was surprised to find very little information and examples online on how to use your LinearOperator and the possibility to subclass it was only mentioned in one line of your documentation and nowhere else online to my knowledge. I wonder if you would consider pointing to PyLops in your documentation to facilitate users i) to know how to get started with LinearOperator, ii) avoid rebuilding the wheel if what they are after can be done or is done already in PyLops. I find your class fantastic and saved me lots of time but I feel is one of those things that few people realize exist and understand how to use it ;)
That sounds like a good idea to me. A link from the See Also part of the LinearOperator seems appropriate to me. I don't see a good place in the tutorial section of our docs to put a link, because LinearOperator isn't really mentioned there. If you'd like to write a short section in, e.g.,
On Wed, Dec 12, 2018 at 11:24 AM Matteo Ravasi <matteoravasi@gmail.com> wrote: the ARPACK tutorial and add a link there too, that would be great.
- Solvers: I would like to know if you would be interested to add a new solver to your suite of linear solvers. Specifically the solver is called SPGL1 and it is a very popular solver in the mathematical community for sparsity-promoting linear optimization. It was developed at UBC (University of British Columbia) https://www.cs.ubc.ca/~mpf/spgl1/ and has a Matlab open-source code.
That code is GPL licensed, so we cannot accept any code derived from it.
If the original author wouldn't mind relicensing or giving explicit permission for the Python port to be BSD or MIT licensed, then we can consider it. Cheers, Ralf
- I have been thinking about porting it to python for a while and recently another python user started a git repo called https://github.com/drrelyea/SPGL1_python_port. However this is something I would more naturally see as part of scipy instead of an indipendent library. I am willing to contact the author of this repo and help him out directly to finish the porting and make it to (or close to) scipy standards... so far the code and repo is not ready to be included in professional code like scipy in my opinion. But I would like to hear what you think, if you would consider adding this to scipy once in good shape or if you think this is not in the scope of scipy library :)
Looking forward to hearing from you,
Best wishes
MR _______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev

Thanks a lot for your feedback. Will have a go and add a link to PyLops in documentation. Is the ‘See Also’ the most appropriate place or maybe in the ‘Notes’? Generally I see that See Also has proper links to other routines in the module (or other modules) but I don’t think you want to make pylops a dependency of scipy so I’m not sure the link would work fine? And I will also try out eigs on one of my operator a add a small section in the ARPARK tutorial :) To the solver, I see the point but since you would consider it, I will get in touch with the authors and see how they feel about changing license :) Thank you! iMR
On 13 Dec 2018, at 01:50, Ralf Gommers <ralf.gommers@gmail.com> wrote:
On Wed, Dec 12, 2018 at 11:24 AM Matteo Ravasi <matteoravasi@gmail.com> wrote: Dear Scipy-dev community, I would like to bring forward two proposals related to your scipy.sparse.linalg.LinearOperator class and linear solvers in general:
LinearOperator: I am the main developer and maintainer of the PyLops library that has been recently open-sourced (git repo: https://github.com/Statoil/pylops, doc: https://pylops.readthedocs.io/en/latest/index.html). As you will see I heavily rely on your LinearOperator class and build on top of it creating various basic linear operators and more specific ones for signal processing and geoscience applications of inverse problems. When I started working on this I was surprised to find very little information and examples online on how to use your LinearOperator and the possibility to subclass it was only mentioned in one line of your documentation and nowhere else online to my knowledge. I wonder if you would consider pointing to PyLops in your documentation to facilitate users i) to know how to get started with LinearOperator, ii) avoid rebuilding the wheel if what they are after can be done or is done already in PyLops. I find your class fantastic and saved me lots of time but I feel is one of those things that few people realize exist and understand how to use it ;) That sounds like a good idea to me. A link from the See Also part of the LinearOperator seems appropriate to me. I don't see a good place in the tutorial section of our docs to put a link, because LinearOperator isn't really mentioned there. If you'd like to write a short section in, e.g., the ARPACK tutorial and add a link there too, that would be great.
Solvers: I would like to know if you would be interested to add a new solver to your suite of linear solvers. Specifically the solver is called SPGL1 and it is a very popular solver in the mathematical community for sparsity-promoting linear optimization. It was developed at UBC (University of British Columbia) https://www.cs.ubc.ca/~mpf/spgl1/ and has a Matlab open-source code. That code is GPL licensed, so we cannot accept any code derived from it. If the original author wouldn't mind relicensing or giving explicit permission for the Python port to be BSD or MIT licensed, then we can consider it.
Cheers, Ralf
I have been thinking about porting it to python for a while and recently another python user started a git repo called https://github.com/drrelyea/SPGL1_python_port. However this is something I would more naturally see as part of scipy instead of an indipendent library. I am willing to contact the author of this repo and help him out directly to finish the porting and make it to (or close to) scipy standards... so far the code and repo is not ready to be included in professional code like scipy in my opinion. But I would like to hear what you think, if you would consider adding this to scipy once in good shape or if you think this is not in the scope of scipy library :)
Looking forward to hearing from you, Best wishes MR _______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev

On Wed, Dec 12, 2018 at 10:34 PM Matteo Ravasi <matteoravasi@gmail.com> wrote:
Thanks a lot for your feedback. Will have a go and add a link to PyLops in documentation. Is the ‘See Also’ the most appropriate place or maybe in the ‘Notes’? Generally I see that See Also has proper links to other routines in the module (or other modules) but I don’t think you want to make pylops a dependency of scipy so I’m not sure the link would work fine?
Ah yes. It may be possible to add full reST links, but I'm not sure. And I indeed wouldn't want to talk to PyLops via intersphinx. So Notes sounds good. And I will also try out eigs on one of my operator a add a small section in
the ARPARK tutorial :)
Great!
To the solver, I see the point but since you would consider it, I will get in touch with the authors and see how they feel about changing
license :)
Cool, let us know what the outcome is. Cheers, Ralf
Thank you! iMR
On 13 Dec 2018, at 01:50, Ralf Gommers <ralf.gommers@gmail.com> wrote:
On Wed, Dec 12, 2018 at 11:24 AM Matteo Ravasi <matteoravasi@gmail.com> wrote:
Dear Scipy-dev community,
I would like to bring forward two proposals related to your scipy.sparse.linalg.LinearOperator class and linear solvers in general:
- LinearOperator: I am the main developer and maintainer of the PyLops library that has been recently open-sourced (git repo: https://github.com/Statoil/pylops, doc: https://pylops.readthedocs.io/en/latest/index.html) <https://pylops.readthedocs.io/en/latest/index.html>. As you will see I heavily rely on your LinearOperator class and build on top of it creating various basic linear operators and more specific ones for signal processing and geoscience applications of inverse problems. When I started working on this I was surprised to find very little information and examples online on how to use your LinearOperator and the possibility to subclass it was only mentioned in one line of your documentation and nowhere else online to my knowledge. I wonder if you would consider pointing to PyLops in your documentation to facilitate users i) to know how to get started with LinearOperator, ii) avoid rebuilding the wheel if what they are after can be done or is done already in PyLops. I find your class fantastic and saved me lots of time but I feel is one of those things that few people realize exist and understand how to use it ;)
That sounds like a good idea to me. A link from the See Also part of the LinearOperator seems appropriate to me. I don't see a good place in the tutorial section of our docs to put a link, because LinearOperator isn't really mentioned there. If you'd like to write a short section in, e.g., the ARPACK tutorial and add a link there too, that would be great.
- Solvers: I would like to know if you would be interested to add a new solver to your suite of linear solvers. Specifically the solver is called SPGL1 and it is a very popular solver in the mathematical community for sparsity-promoting linear optimization. It was developed at UBC (University of British Columbia) https://www.cs.ubc.ca/~mpf/spgl1/ and has a Matlab open-source code.
That code is GPL licensed, so we cannot accept any code derived from it.
If the original author wouldn't mind relicensing or giving explicit permission for the Python port to be BSD or MIT licensed, then we can consider it.
Cheers, Ralf
- I have been thinking about porting it to python for a while and recently another python user started a git repo called https://github.com/drrelyea/SPGL1_python_port. However this is something I would more naturally see as part of scipy instead of an indipendent library. I am willing to contact the author of this repo and help him out directly to finish the porting and make it to (or close to) scipy standards... so far the code and repo is not ready to be included in professional code like scipy in my opinion. But I would like to hear what you think, if you would consider adding this to scipy once in good shape or if you think this is not in the scope of scipy library :)
Looking forward to hearing from you,
Best wishes
MR _______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
_______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
_______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
participants (2)
-
Matteo Ravasi
-
Ralf Gommers