I’m trying to implement ISTA and FISTA methods in Julia.
Theoretically, the efficiency of FISTA is superior to that of ISTA.
However in the computational results, I am getting that the complexity per iteration of ISTA is the same as that of FISTA. I don’t know if the problem is with Julia.
Please, could someone help me?

If you are looking for this kind of algorithm, you could try out the RegularizedLeastSquares package as this seems, what you are looking for.

It has a implementation of FISTA.

This seems like the wrong metric. Isn’t the point of FISTA that it is supposed to be faster converging than ISTA (that is, fewer iterations), while its cost per iteration is similar?

Note that there are several implementations of FISTA and similar algorithms in Julia, e.g. in SparseRegression.jl or LASSO.jl. A compact matrix-free Julia implementation of FISTA can also be found here. I would try one or more of these out in a benchmark comparison to your code, since people’s first Julia code is typically slow (until they digest the performance tips).


MLJLinearModels.jl has also an implementation of these methods.