operator.rst 1.61 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
Operators
=========
Operators perform some operation on a given field. In practice an operator can 
take the form of an explicit matrix (e.g. stored in a Numpy array) or it may be 
implicitly defined as a function (e.g. an FFT operation would not be encoded in
a matrix, but performed using an FFT routine). NIFTY includes a framework for 
handling arbitrary operators, and basic methods for manipulating these 
operators. Common functions like taking traces and extracting diagonals are 
provided.

In order to have a blueprint for operators capable of handling fields, any 
application of operators is split into a general and a concrete part. The 
general part comprises the correct involvement of normalizations and 
transformations, necessary for any operator type, while the concrete part is 
unique for each operator subclass. In analogy to the field class, any operator 
instance has a set of properties that specify its domain and target as well as 
some additional flags.

Operator classes
----------------
NIFTY provides a base class for defining operators, as well as several pre-implemented operator types that are very often needed for signal inference
algorithms.

.. toctree:: 
    :maxdepth: 1

    diagonal_operator
    fft_operator
    composed_operator
    response_operator
    smoothing_operator
    projection_operator
    propagator_operator
    endomorphic_operator
    invertible_operator_mixin
    transformations

.. currentmodule:: nifty

The ``LinearOperator`` class -- The base Operator Object
--------------------------------------------------------

.. autoclass:: LinearOperator
    :show-inheritance:
    :members: