astro-informatics / purify

Next-generation radio interferometric imaging.
https://astro-informatics.github.io/purify
GNU General Public License v2.0
16 stars 11 forks source link

Primal Dual testcase in algo_factory test does not converge to desired accuracy #317

Closed tkoskela closed 6 days ago

tkoskela commented 1 year ago

The test for the primal dual algorithm in sopt

https://github.com/astro-informatics/sopt/blob/ae4c48e397b99d6b27b727744da292cb3f1817ce/cpp/tests/primal_dual.cc#L19

is checking that the algorithm converges on a random vector of size 5. As far as we understand it, this checks that the algorithm does not crash, but does not really test the convergence behaviour on a real image. The test in purify

https://github.com/astro-informatics/purify/blob/5833dbd35f214212aa17c368984bcae180cf5dee/cpp/tests/algo_factory.cc#L76

is testing the algorithm against a 128x128 image. The purify test is failing in #315, the solution goes to zero and if x is 0 then Lx is also 0 and the solution can never get a non-zero value. We don't currently understand whether this is a problem with the algorithm, or the implementation.

This is a low priority to fix, we can merge #315 and #302 while the test is failing. This should be further investigated in the medium term. It would probably make most sense to fix this together with with https://github.com/astro-informatics/sopt/issues/356

We know that the test was passing at the beginning of our github actions history but the log files are gone. That would however indicate that the algorithm is not fundamentally broken, but rather we have accidentally changed something.

TODO list:

tkoskela commented 6 days ago

We've abandoned the primal dual algorithm and the test has been set to xfail.