Open mehrhardt opened 5 years ago
This has been implemented by 53453fe18faf9b2dcae988ca8feabd567faf44b2. The code is not really documented nor well written. Moreover, there are several examples missing. Finally, the more code is needed to add regularization to it, for example from CCPi.
I guess we could add proximal
rather than prox
and it's a good idea to add out=y
.
I added the CIL optimisation and regularisation to SIRF SuperBuild https://github.com/CCPPETMR/Hackathon-SIRF-SuperBuild/pull/1
I guess we could add proximal rather than prox and it's a good idea to add out=y.
@paskino, yes, that would be a good idea! This way CIL is also more compatible to ODL which might turn out to be useful at some point.
@mehrhardt could you create an issue in SIRF (not hackathon) with where the out
syntax is needed? It could be initially done as a work-around (for compatibility), but for PET it should be easy.
Please also say what out
is supposed to do. should it check if sizes etc are as expected? What to do if they're not? Should it overwrite or add to existing data?
Possibly point us to the ODL doc, or we can get some ODL people involved.
See CCPPETMR/SIRF#194
This issue can be closed as 5efd25a49b41e7212a4e3f01bedb7cebc6c018e6 completes its implementation and simple example showing its usage. However, all code for SPDHG is far from tidied up and should be included at appropriate places in SIRF and/or CIL. I created an issue for this vais-ral/CCPi-Framework#154.
use A(x) <=> A.direct(x) use A.adjoint(x, out=y) <=> y = A.adjoint(x) use f.proximal(tau)(x) <=> f.prox(x, tau) f.convex_conj <=> f_cvx