
To Ilhan, Ralf, Stefan, others... Ilhan really wants arls() to give the user some feedback about the solution. I didn't understand his/your point at first but I eventually realized that I can and should return the artifacts I compute about the problem. And I really like the result. Ilhan was right. (There are no changes whatsoever to algorithms.) Also, Ilhan objected to the name, autosol, feeling that it implies too much. I had already changed all the routine names to arlsxxx, for "automatically regularized least squares". I guess I should have changed the file name, too, and am doing that too. I hope that doesn't foul up your review process. So I just uploaded arls() and its test_arls() with these changes" * each solver now returns: * the tradition numerical rank of A ( I checked other current solvers in scipy to be sure I was doing this in the same exact way) * the "usable rank" which involves both A and b, and is the crucial artifact needed to do autoregularization * the estimate of the right-hand-side RMS error, sigma. Some people will be surprised to see that this is possible. * the resulting Tikhonov regularization parameter, lambda * The in-code comments have been updated * The test_arls() code has been updated to use one function per test, as best as I understand how to do it at this point Unfortunately I don't know how to delete the old autosol.py and test_autosol.py. Maybe one of you code managers have to do that? Thanks for your interest and tolerance of my areas of ignorance. By the way, I am not seeking to REPLACE any current scipy solvers. Arls should only be an additional feature for a long time. But I think it will be a significant asset for scipy. I have mostly publicized these codes strictly via my web site in the past, as C++ has no central code repository like python. Rondall Jones

On Thu, Oct 15, 2020 at 8:39 PM rondall jones <rejones7@msn.com> wrote:
To Ilhan, Ralf, Stefan, others...
Ilhan really wants arls() to give the user some feedback about the solution. I didn't understand his/your point at first but I eventually realized that I can and should return the artifacts I compute about the problem. And I really like the result. Ilhan was right. (There are no changes whatsoever to algorithms.)
Also, Ilhan objected to the name, autosol, feeling that it implies too much. I had already changed all the routine names to arlsxxx, for "automatically regularized least squares". I guess I should have changed the file name, too, and am doing that too. I hope that doesn't foul up your review process.
That does seem like a better name. And no worries, renames are perfectly fine and won't interfere with PR review.
So I just uploaded arls() and its test_arls() with these changes"
- each solver now returns: - the tradition numerical rank of A ( I checked other current solvers in scipy to be sure I was doing this in the same exact way) - the "usable rank" which involves both A and b, and is the crucial artifact needed to do autoregularization - the estimate of the right-hand-side RMS error, sigma. Some people will be surprised to see that this is possible. - the resulting Tikhonov regularization parameter, lambda - The in-code comments have been updated - The test_arls() code has been updated to use one function per test, as best as I understand how to do it at this point
Unfortunately I don't know how to delete the old autosol.py and test_autosol.py. Maybe one of you code managers have to do that?
On your local branch you do `git rm autosol.py` and then commit the result and push it to your fork. Unless you mean you are only using the GitHub UI for adding code. That won't work for reasonably complex code changes, it really is only meant for tiny fixes like doc updates. It's well worth taking the time to learn Git (I know it's a pain to start with).
Thanks for your interest and tolerance of my areas of ignorance. By the way, I am not seeking to REPLACE any current scipy solvers. Arls should only be an additional feature for a long time.
Yes, understood. If you had removed existing functionality, you'd have heard howls of protest quickly:) But I think it will be a significant asset for scipy.
I have mostly publicized these codes strictly via my web site in the past, as C++ has no central code repository like python.
I suggest to keep the rest of this conversation on GitHub, no need to keep the mailing list subscribers up to date. The habit is simply to make them aware once and take a decision on adding functionality yes/no on the list; anything else is easier on GitHub. Cheers. Ralf

There is another existing procedure not in scipy AFAIK but in literature that is referred to as ARLS. Google search for ‘Alternating recursive least squares’ Will Show the initialism used in various places. Perhaps a different name to avoid potential user confusion? One proposal is ‘auto_reg_ls’ but there might be objections to that too. Naming is difficult. Sincerely, -Lucas Roberts
On Oct 16, 2020, at 11:08 AM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
On Thu, Oct 15, 2020 at 8:39 PM rondall jones <rejones7@msn.com> wrote: To Ilhan, Ralf, Stefan, others...
Ilhan really wants arls() to give the user some feedback about the solution. I didn't understand his/your point at first but I eventually realized that I can and should return the artifacts I compute about the problem. And I really like the result. Ilhan was right. (There are no changes whatsoever to algorithms.)
Also, Ilhan objected to the name, autosol, feeling that it implies too much. I had already changed all the routine names to arlsxxx, for "automatically regularized least squares". I guess I should have changed the file name, too, and am doing that too. I hope that doesn't foul up your review process.
That does seem like a better name. And no worries, renames are perfectly fine and won't interfere with PR review.
So I just uploaded arls() and its test_arls() with these changes" each solver now returns: the tradition numerical rank of A ( I checked other current solvers in scipy to be sure I was doing this in the same exact way) the "usable rank" which involves both A and b, and is the crucial artifact needed to do autoregularization the estimate of the right-hand-side RMS error, sigma. Some people will be surprised to see that this is possible. the resulting Tikhonov regularization parameter, lambda The in-code comments have been updated The test_arls() code has been updated to use one function per test, as best as I understand how to do it at this point Unfortunately I don't know how to delete the old autosol.py and test_autosol.py. Maybe one of you code managers have to do that?
On your local branch you do `git rm autosol.py` and then commit the result and push it to your fork.
Unless you mean you are only using the GitHub UI for adding code. That won't work for reasonably complex code changes, it really is only meant for tiny fixes like doc updates. It's well worth taking the time to learn Git (I know it's a pain to start with).
Thanks for your interest and tolerance of my areas of ignorance. By the way, I am not seeking to REPLACE any current scipy solvers. Arls should only be an additional feature for a long time.
Yes, understood. If you had removed existing functionality, you'd have heard howls of protest quickly:)
But I think it will be a significant asset for scipy. I have mostly publicized these codes strictly via my web site in the past, as C++ has no central code repository like python.
I suggest to keep the rest of this conversation on GitHub, no need to keep the mailing list subscribers up to date. The habit is simply to make them aware once and take a decision on adding functionality yes/no on the list; anything else is easier on GitHub.
Cheers. Ralf
_______________________________________________ SciPy-Dev mailing list SciPy-Dev@python.org https://mail.python.org/mailman/listinfo/scipy-dev
participants (3)
-
Ralf Gommers
-
rlucas7@vt.edu
-
rondall jones