15 #ifndef __stir_SeparableLowPassArrayFilter2__H__ 16 #define __stir_SeparableLowPassArrayFilter2__H__ 43 template <
int num_dimensions,
typename elemT>
49 bool is_trivial()
const;
56 template <
int num_dim,
typename elemT>
61 template <
int num_dim,
typename elemT>
64 : all_1d_array_filters(array_filters)
66 assert(all_1d_array_filters.get_length() == num_dim);
69 template <
int num_dimensions,
typename elemT>
81 template <
int num_dim,
typename elemT>
86 iter != all_1d_array_filters.end();
90 if (!(*iter)->is_trivial())
98 template <
int num_dimensions,
typename elemT>
103 SeparableLowPassArrayFilter2();
111 template <
int num_dimensions,
typename elemT>
112 SeparableLowPassArrayFilter2<num_dimensions, elemT>::SeparableLowPassArrayFilter2()
114 for (
int i = 1; i <= num_dimensions; i++)
120 template <
int num_dimensions,
typename elemT>
121 SeparableLowPassArrayFilter2<num_dimensions, elemT>::SeparableLowPassArrayFilter2(
123 : filter_coefficients(filter_coefficients_v)
125 assert(num_dimensions == 3);
127 std::cerr <<
"Printing filter coefficients" << endl;
129 std::cerr << i <<
" " << filter_coefficients_v[i] <<
" " << endl;
A class for operations on n-dimensional Arrays.
Definition: ArrayFunctionObject.h:38
This class implements convolution of a 1D array with an arbitrary (i.e. potentially non-symmetric) ke...
Definition: ArrayFilter1DUsingConvolution.h:77
Declaration of class stir::Succeeded.
Declaration of class stir::ArrayFilter1DUsingConvolution.
A templated class for vectors, but with indices starting not from 0.
Definition: ArrayFilter1DUsingConvolution.h:31
A convenience class for children of ArrayFunctionObject. It implements the in-place operator() in ter...
Definition: ArrayFunctionObject_2ArgumentImplementation.h:41
int get_min_index() const
get value of first valid index
Definition: VectorWithOffset.inl:116
This class implements an n -dimensional ArrayFunctionObject whose operation is separable.
Definition: SeparableLowPassArrayFilter2.h:44
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.
This include file provides some additional functionality for stir::Array objects. ...
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
defines the Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
iterator begin()
use to initialise an iterator to the first element of the vector
Definition: VectorWithOffset.inl:182
defines the stir::VectorWithOffset class
This class defines multi-dimensional (numeric) arrays.
Definition: Array.h:73
int get_max_index() const
get value of last valid index
Definition: VectorWithOffset.inl:123
void apply_array_functions_on_each_index(Array< num_dim, elemT > &out_array, const Array< num_dim, elemT > &in_array, FunctionObjectPtrIter start, FunctionObjectPtrIter stop)
Apply a sequence of 1d array-function objects on every dimension of the input array, store in output array.
Definition: ArrayFunction.inl:220