Both the TotalVariation function and FGP_TV from the CCPi regularisation toolkit solve the dual TV problem using the FISTA algorithm. In both cases, it is hardcoded and no acceleration is used. Since there is no FISTA algorithm in the CCPi regtlk, we cannot do something. However, the proximal method of the TotalVariation should set up the FISTA algorithm and get some acceleration by additional arguments in the FISTA signature.
To set up the FISTA algorithm for the dual of TV, we need a DivergenceOperator which basically has the same code as the GradientOperator where the direct is now adjoint and adjoint is direct for the DivergenceOperator. Maybe is better if we create a property in the LinearOperator class and can get this as .adjoint_operator, see also #754.
We also need the convex conjugate as a Function class. But in this case only the convex conjugate of L2NormSquared is also an L2NormSquared class (1/4*L2NormSquared).
Both the
TotalVariation
function andFGP_TV
from the CCPi regularisation toolkit solve the dual TV problem using the FISTA algorithm. In both cases, it is hardcoded and no acceleration is used. Since there is no FISTA algorithm in the CCPi regtlk, we cannot do something. However, theproximal
method of theTotalVariation
should set up the FISTA algorithm and get some acceleration by additional arguments in the FISTA signature.To set up the FISTA algorithm for the dual of TV, we need a
DivergenceOperator
which basically has the same code as the GradientOperator where thedirect
is nowadjoint
andadjoint
isdirect
for theDivergenceOperator
. Maybe is better if we create a property in theLinearOperator
class and can get this as.adjoint_operator
, see also #754.We also need the convex conjugate as a
Function
class. But in this case only the convex conjugate ofL2NormSquared
is also anL2NormSquared
class (1/4*L2NormSquared).