odlgroup / odl

Operator Discretization Library https://odlgroup.github.io/odl/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

primal_dual_hybrid_gradient solver: why compute derivative ?

Zeqiang-Lai opened this issue · comments

I just could not make correspondence between the math and implementation of PDHG.

It seems that we do not need to compute gradient when update x

image

L.derivative(x).adjoint(y, out=primal_tmp)

The derivative of a linear operator is the operator itself, so this surely doesn't harm anything. On the other hand, the code in this form also works for a non-linear operator, e.g., $Lx = A x + a$ with $A$ being linear, where "works" means that the iteration has the correct fixed points.