This directory contains all of the source code related to ODL.
Briefly, the hierarchy of submodules is:
- set and operator contains the core abstract functionality of ODL needed to define sets, vector spaces and operators acting on these.
- space and discr contains the standard spaces such as Rn and the set of discretized functions on some domain.
- solvers defines equation solvers as well as various optimization algorithms.
- tomo, trafos, deform contains application specific operators like Fourier transforms, Wavelet transforms, deformations, ray transforms, etc.
This is a brief description of the content of each submodule, see the individual modules for a more detailed description.
- contrib Sub-package for immature and/or very specific code. Examples includes vendor specific geometries, bindings to less used libraries and very new solution methods.
- deform Functionality related to deformations. Defines the free function
linear_deform
which deforms a function according to a vector-field of displacements. Also defines the operatorsLinDeformFixedTempl
andLinDeformFixedDisp
. - diagnostics Automated tests for user defined operators and spaces.
SpaceTest
verifies that various properties of linear spaces work as expected, whileOperatorTest
does the same for operators. - discr Discretizations of function-spaces. The main abstract class is
Discretization
, whileDiscreteLp
is an abstract class defining discretized functions on some hypercube. In addition, the classesRectGrid
andRectPartition
are used to exactly define what discretization is used under the hood. Finally this submodule defines several utilities likeuniform_discr
anduniform_partition
which serve to create the most common special cases. - operator Operators between sets. Defines the class
Operator
which is the main abstract class used for any mapping between twoSet
's. Further defines several general classes of operators applicable to general spaces. - phantom Standardized test images. Functions for generating standardized test examples such as
shepp_logan
. - set Sets of objects. Defines the abstract class
Set
andLinearSpace
as well as some concrete implementations such asRealNumbers
. - solvers Solution of equations and optimization. Contains both general solvers for problems of the form
A(x) = b
whereA
is anOperator
as well as solvers of minimization problems. In addition, it defines the classFunctional
with several concrete implementations such asL2Norm
. - space Concrete vector spaces. Contains concrete implementations of
LinearSpace
, includingNumpyTensorSpace
andProductSpace
. - test Tests for the ODL package. This contains automated tests for all other ODL functionality. In general, users should not be calling anything from this submoduel.
- tomo Tomography. Defines the operator
RayTransform
as well asGeometry
along with subclasses and utilities. Also defines problem dependent direct reconstruction such asfbp_op
. - trafos Transformations between spaces. Defines
FourierTransform
andWaveletTransform
. - ufunc_ops Ufuncs as operators. Defines operators like the
sin
andabs
functions. - util Utilities. Functionality mainly intended to be used by other ODL functions such as linear algebra and visualization.