STIR  6.2.0
ArrayFilter1DUsingConvolution.h
Go to the documentation of this file.
1 //
2 //
13 /*
14  Copyright (C) 2000- 2010, Hammersmith Imanet Ltd
15  This file is part of STIR.
16 
17  SPDX-License-Identifier: Apache-2.0
18 
19  See STIR/LICENSE.txt for details
20 */
21 
22 #ifndef __stir_ArrayFilter1DUsingConvolution_H__
23 #define __stir_ArrayFilter1DUsingConvolution_H__
24 
27 
28 START_NAMESPACE_STIR
29 
30 template <typename elemT>
32 
76 template <typename elemT>
78 {
79 public:
82 
84 
88  const BoundaryConditions::BC bc = BoundaryConditions::zero);
90 
93  bool is_trivial() const override;
94 
95  Succeeded get_influencing_indices(IndexRange<1>& influencing_indices, const IndexRange<1>& output_indices) const override;
96 
97  Succeeded get_influenced_indices(IndexRange<1>& influenced_indices, const IndexRange<1>& input_indices) const override;
98 
99 private:
100  VectorWithOffset<elemT> filter_coefficients;
101  BoundaryConditions::BC _bc;
102  void do_it(Array<1, elemT>& out_array, const Array<1, elemT>& in_array) const override;
103 };
104 
105 END_NAMESPACE_STIR
106 
107 #endif // ArrayFilter1DUsingConvolution
This class implements convolution of a 1D array with an arbitrary (i.e. potentially non-symmetric) ke...
Definition: ArrayFilter1DUsingConvolution.h:77
A templated class for vectors, but with indices starting not from 0.
Definition: ArrayFilter1DUsingConvolution.h:31
Declaration of class stir::BoundaryConditions.
A convenience class for children of ArrayFunctionObject. It implements the in-place operator() in ter...
Definition: ArrayFunctionObject_2ArgumentImplementation.h:41
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.
The 1-dimensional (partial) specialisation of Array.
Definition: Array.h:339
The (simple) 1 dimensional specialisation of IndexRange.
Definition: IndexRange.h:131
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43