You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-8Lines changed: 15 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,14 +11,21 @@ A Julia package for non-smooth optimization algorithms.
11
11
This package provides algorithms for the minimization of objective functions
12
12
that include non-smooth terms, such as constraints or non-differentiable penalties.
13
13
Implemented algorithms include:
14
-
* (Fast) Proximal gradient methods
15
-
* Douglas-Rachford splitting
16
-
* Three-term splitting
17
-
* Primal-dual splitting algorithms
18
-
* Newton-type methods
19
-
20
-
This package works well in combination with [ProximalOperators](https://github.com/JuliaFirstOrder/ProximalOperators.jl) (>= 0.15),
21
-
which contains a wide range of functions that can be used to express cost terms.
14
+
- (Fast) Proximal gradient methods
15
+
- Douglas-Rachford splitting
16
+
- Three-term splitting
17
+
- Primal-dual splitting algorithms
18
+
- Newton-type methods
19
+
20
+
Check out [this section](https://juliafirstorder.github.io/ProximalAlgorithms.jl/stable/guide/implemented_algorithms/) for an overview of the available algorithms.
21
+
22
+
Algorithms rely on:
23
+
-[AbstractDifferentiation.jl](https://github.com/JuliaDiff/AbstractDifferentiation.jl) for automatic differentiation
24
+
(but you can easily bring your own gradients)
25
+
- the [ProximalCore API](https://github.com/JuliaFirstOrder/ProximalCore.jl) for proximal mappings, projections, etc,
26
+
to handle non-differentiable terms
27
+
(see for example [ProximalOperators](https://github.com/JuliaFirstOrder/ProximalOperators.jl)
Copy file name to clipboardExpand all lines: docs/src/guide/getting_started.jl
+9-4Lines changed: 9 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@
20
20
# The literature on proximal operators and algorithms is vast: for an overview, one can refer to [Parikh2014](@cite), [Beck2017](@cite).
21
21
#
22
22
# To evaluate these first-order primitives, in ProximalAlgorithms:
23
-
# * ``\nabla f_i`` falls back to using automatic differentiation (as provided by [Zygote](https://github.com/FluxML/Zygote.jl)).
23
+
# * ``\nabla f_i`` falls back to using automatic differentiation (as provided by [AbstractDifferentiation](https://github.com/JuliaDiff/AbstractDifferentiation.jl) and all of its backends).
24
24
# * ``\operatorname{prox}_{f_i}`` relies on the intereface of [ProximalOperators](https://github.com/JuliaFirstOrder/ProximalOperators.jl) (>= 0.15).
25
25
# Both of the above can be implemented for custom function types, as [documented here](@ref custom_terms).
26
26
#
@@ -51,11 +51,14 @@
51
51
# which we will solve using the fast proximal gradient method (also known as fast forward-backward splitting):
Copy file name to clipboardExpand all lines: docs/src/index.md
+13-16Lines changed: 13 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,16 +5,21 @@ A Julia package for non-smooth optimization algorithms. [Link to GitHub reposito
5
5
This package provides algorithms for the minimization of objective functions
6
6
that include non-smooth terms, such as constraints or non-differentiable penalties.
7
7
Implemented algorithms include:
8
-
* (Fast) Proximal gradient methods
9
-
* Douglas-Rachford splitting
10
-
* Three-term splitting
11
-
* Primal-dual splitting algorithms
12
-
* Newton-type methods
8
+
- (Fast) Proximal gradient methods
9
+
- Douglas-Rachford splitting
10
+
- Three-term splitting
11
+
- Primal-dual splitting algorithms
12
+
- Newton-type methods
13
13
14
14
Check out [this section](@ref problems_algorithms) for an overview of the available algorithms.
15
15
16
-
This package works well in combination with [ProximalOperators](https://github.com/JuliaFirstOrder/ProximalOperators.jl) (>= 0.15),
17
-
which contains a wide range of functions that can be used to express cost terms.
16
+
Algorithms rely on:
17
+
-[AbstractDifferentiation.jl](https://github.com/JuliaDiff/AbstractDifferentiation.jl) for automatic differentiation
18
+
(but you can easily bring your own gradients)
19
+
- the [ProximalCore API](https://github.com/JuliaFirstOrder/ProximalCore.jl) for proximal mappings, projections, etc,
20
+
to handle non-differentiable terms
21
+
(see for example [ProximalOperators](https://github.com/JuliaFirstOrder/ProximalOperators.jl)
22
+
for an extensive collection of functions).
18
23
19
24
!!! note
20
25
@@ -23,20 +28,11 @@ which contains a wide range of functions that can be used to express cost terms.
23
28
24
29
## Installation
25
30
26
-
Install the latest stable release with
27
-
28
31
```julia
29
32
julia> ]
30
33
pkg> add ProximalAlgorithms
31
34
```
32
35
33
-
To install the development version instead (`master` branch), do
34
-
35
-
```julia
36
-
julia> ]
37
-
pkg> add ProximalAlgorithms#master
38
-
```
39
-
40
36
## Citing
41
37
42
38
If you use any of the algorithms from ProximalAlgorithms in your research, you are kindly asked to cite the relevant bibliography.
@@ -45,3 +41,4 @@ Please check [this section of the manual](@ref problems_algorithms) for algorith
45
41
## Contributing
46
42
47
43
Contributions are welcome in the form of [issue notifications](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl/issues) or [pull requests](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl/pulls). When contributing new algorithms, we highly recommend looking at already implemented ones to get inspiration on how to structure the code.
0 commit comments