STIR  6.2.0
Public Member Functions | List of all members
stir::ArrayFunctionObject< num_dimensions, elemT > Class Template Referenceabstract

A class for operations on n-dimensional Arrays. More...

#include "stir/ArrayFunctionObject.h"

Inheritance diagram for stir::ArrayFunctionObject< num_dimensions, elemT >:
Inheritance graph
[legend]

Public Member Functions

virtual void operator() (Array< num_dimensions, elemT > &array) const =0
 in-place modification More...
 
virtual void operator() (Array< num_dimensions, elemT > &out_array, const Array< num_dimensions, elemT > &in_array) const =0
 result stored in another array More...
 
virtual bool is_trivial () const =0
 Should return true when the operations won't modify the object at all. More...
 
virtual Succeeded get_influencing_indices (IndexRange< num_dimensions > &influencing_indices, const IndexRange< num_dimensions > &output_indices) const
 sets the range of indices that influences the result in a set of coordinates output_indices More...
 
virtual Succeeded get_influenced_indices (IndexRange< num_dimensions > &influenced_indices, const IndexRange< num_dimensions > &input_indices) const
 sets the range of indices that gets influenced by a set of coordinate input_indices More...
 

Detailed Description

template<int num_dimensions, typename elemT>
class stir::ArrayFunctionObject< num_dimensions, elemT >

A class for operations on n-dimensional Arrays.

Member Function Documentation

◆ operator()() [1/2]

template<int num_dimensions, typename elemT>
virtual void stir::ArrayFunctionObject< num_dimensions, elemT >::operator() ( Array< num_dimensions, elemT > &  array) const
pure virtual

◆ operator()() [2/2]

template<int num_dimensions, typename elemT>
virtual void stir::ArrayFunctionObject< num_dimensions, elemT >::operator() ( Array< num_dimensions, elemT > &  out_array,
const Array< num_dimensions, elemT > &  in_array 
) const
pure virtual

◆ is_trivial()

template<int num_dimensions, typename elemT>
virtual bool stir::ArrayFunctionObject< num_dimensions, elemT >::is_trivial ( ) const
pure virtual

◆ get_influencing_indices()

template<int num_dimensions, typename elemT>
virtual Succeeded stir::ArrayFunctionObject< num_dimensions, elemT >::get_influencing_indices ( IndexRange< num_dimensions > &  influencing_indices,
const IndexRange< num_dimensions > &  output_indices 
) const
inlinevirtual

sets the range of indices that influences the result in a set of coordinates output_indices

For linear filters, these are the indices such that the support of their PSF overlaps with output_indices.

Returns
Succeeded::yes if this is a meaningful concept for the current object. Presumably, Succeeded::no would be returned if the whole array is always going to affect the output_indices (independent of the size of the input array) or of it is too difficult for the derived class to return a sensible index range.

◆ get_influenced_indices()

template<int num_dimensions, typename elemT>
virtual Succeeded stir::ArrayFunctionObject< num_dimensions, elemT >::get_influenced_indices ( IndexRange< num_dimensions > &  influenced_indices,
const IndexRange< num_dimensions > &  input_indices 
) const
inlinevirtual

sets the range of indices that gets influenced by a set of coordinate input_indices

For linear filters, this is the union of the supports of the PSF for all output_indices.

Returns
Succeeded::yes if this is a meaningful concept for the current object. Presumably, Succeeded::no would be returned if the whole array is always going to be affected by the input_indices (independent of the size of the output array) or of it is too difficult for the derived class to return a sensible index range.

The documentation for this class was generated from the following file: