Metadata-Version: 2.0
Name: odl
Version: 0.2.2
Summary: Operator Discretization Library
Home-page: https://github.com/odlgroup/odl
Author: ODL development group
Author-email: odl@math.kth.se
License: GPLv3+
Keywords: development mathematics prototyping imaging tomography
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: MacOS :: MacOS X
Requires-Dist: future (>=0.14)
Requires-Dist: numpy (>=1.9)
Requires-Dist: scipy (>=0.14)
Provides-Extra: all
Requires-Dist: Pywavelets; extra == 'all'
Requires-Dist: matplotlib; extra == 'all'
Requires-Dist: pyfftw; extra == 'all'
Provides-Extra: fft
Requires-Dist: pyfftw; extra == 'fft'
Provides-Extra: show
Requires-Dist: matplotlib; extra == 'show'
Provides-Extra: testing
Requires-Dist: coverage (>=4.0); extra == 'testing'
Requires-Dist: coveralls; extra == 'testing'
Requires-Dist: pytest (>=2.8.0); extra == 'testing'
Requires-Dist: pytest-cov; extra == 'testing'
Requires-Dist: pytest-pep8; extra == 'testing'
Provides-Extra: wavelets
Requires-Dist: Pywavelets; extra == 'wavelets'

Operator Discretization Library (ODL) is a python library for fast prototyping focusing on (but not restricted to) inverse problems. ODL is being developed at [KTH, Royal Institute of Technology](https://www.kth.se/en/sci/institutioner/math).

The main intent of ODL is to enable mathematicians and applied scientists to use different numerical methods on real-world problems without having to implement all necessary parts from the bottom up.
This is reached by an `Operator` structure which encapsulates all application-specific parts, and a high-level formulation of solvers which usually expect an operator, data and additional parameters.
The main advantages of this approach is that

1. Different problems can be solved with the same method (e.g. TV regularization) by simply switching operator and data.
2. The same problem can be solved with different methods by simply calling into different solvers.
3. Solvers and application-specific code needs to be written only once, in one place, and can be tested individually.
4. Adding new applications or solution methods becomes a much easier task.



Features
--------

- Efficient and well-tested data containers based on
  [NumPy](https://github.com/numpy/numpy) (default) or CUDA (optional)
- Objects to represent mathematical notions like vector spaces and operators including
  properties as expected from mathematics (inner product, norm, operator composition, ...)
- Standardized tests to validate implementations against expected behavior of the
  corresponding mathematical object, e.g. if a user-defined norm satisfies
  `norm(x + y) <= norm(x) + norm(y)` for a number of input vectors `x` and `y`
- Convenience functionality for operators like arithmetic, composition, operator matrices etc.,
  which satisfy the known mathematical rules


