Proximal algorithms for nonsmooth optimization in Julia
106 Stars
Updated Last
1 Year Ago
Started In
October 2017


Build status

A Julia package for non-smooth optimization algorithms.

This package provides algorithms for the minimization of objective functions that include non-smooth terms, such as constraints or non-differentiable penalties. Implemented algorithms include:

  • (Fast) Proximal gradient methods
  • Douglas-Rachford splitting
  • Three-term splitting
  • Primal-dual splitting algorithms
  • Newton-type methods

This package works well in combination with ProximalOperators (>= 0.15), which contains a wide range of functions that can be used to express cost terms.


Stable version (latest release)

Development version (master branch)


If you use any of the algorithms from ProximalAlgorithms in your research, you are kindly asked to cite the relevant bibliography. Please check this section of the manual for algorithm-specific references.


Contributions are welcome in the form of issues notification or pull requests. We recommend looking at already implemented algorithms to get inspiration on how to structure new ones.