Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add as_cvx_operator and example #494

Merged
merged 5 commits into from
Aug 17, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions doc/source/guide/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,20 @@ Glossary

proximal
Given a closed proper convex function :math:`f`, the proximal operator is defined by

.. math::

\text{prox}_f(v) = \arg\min_x f(x) + (1/2)||x - v||_2^2


proximal is also occationally used instead of ProxImaL, then refering to the proximal
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

occasionally ("s", not "t")

modelling language for the solution of convex optimization problems.

proximal factory
A proximal factory associated with a function :math:`f` is a `callable`,
A proximal factory associated with a function :math:`f` is a `callable`,
which returns the proximal of the scaled function :math:`\sigma f` when called with a
scalar :math:`\sigma`. This is used due to the fact that optimization methods often use
scalar :math:`\sigma`. This is used due to the fact that optimization methods often use
:math:`\text{prox}_{\sigma f}` for varying :math:`\sigma`.

range
Set of elements to which an operator maps, i.e. in which the result of
an operator evaluation lies.
Expand Down
4 changes: 2 additions & 2 deletions doc/source/guide/in_depth/proximal_lang_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Norms in ODL are scaled according to the underlying function space. Hence a sequ
>>> 1 / np.sqrt(3) # exact result
0.577350269189

this is not the case in proximal, where the norm depends on the number of discretization points. Hence a scaling that is correct for a problem in ODL needs not be correct in proximal. This also changes the definition of things like the operator norm.
this is not the case in ProxImaL, where the norm depends on the number of discretization points. Hence a scaling that is correct for a problem in ODL needs not be correct in proximal. This also changes the definition of things like the operator norm.

This also has the added effect of changing the definition of derived features, like the spectral norm of operators.

Expand All @@ -49,4 +49,4 @@ ODL can represent some complicated spaces, like :math:`\mathbb{R}^3 \times \math

>>> space = odl.ProductSpace(odl.rn(3), odl.cn(2))

This can then be used in solvers and other structures.
This can then be used in solvers and other structures. ProxImaL currently lacks an equivalent structure.
6 changes: 3 additions & 3 deletions odl/operator/oputils.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,8 @@ def rmatvec(v):
def as_proximal_lang_operator(op, norm_bound=None):
"""Wrap ``op`` as a ``proximal.BlackBox``.

This is intended to be used with the `proximal language solvers.
<https://github.com/comp-imaging/ProxImaL>`_
This is intended to be used with the `ProxImaL language solvers.
<https://github.com/comp-imaging/proximal>`_

Parameters
----------
Expand All @@ -283,7 +283,7 @@ def as_proximal_lang_operator(op, norm_bound=None):
``shape``, and elements in these need to implement ``asarray``.
norm_bound : float, optional
An upper bound on the spectral norm of the operator. Note that this is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An

the norm as defined by proximal, and hence use the unweighted spaces.
the norm as defined by ProxImaL, and hence use the unweighted spaces.

Returns
-------
Expand Down