ITK  5.3.0
Insight Toolkit
itkImageToImageMetricv4GetValueAndDerivativeThreader.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * https://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkImageToImageMetricv4GetValueAndDerivativeThreader_h
19 #define itkImageToImageMetricv4GetValueAndDerivativeThreader_h
20 
22 #include "itkNumericTraits.h"
25 
26 namespace itk
27 {
28 
43 template <typename TDomainPartitioner, typename TImageToImageMetricv4>
45 {};
46 
51 template <typename TImageToImageMetricv4>
53  ThreadedImageRegionPartitioner<TImageToImageMetricv4::VirtualImageDimension>,
54  TImageToImageMetricv4>
56  ThreadedImageRegionPartitioner<TImageToImageMetricv4::VirtualImageDimension>,
57  TImageToImageMetricv4>
58 {
59 public:
60  ITK_DISALLOW_COPY_AND_MOVE(ImageToImageMetricv4GetValueAndDerivativeThreader);
61 
66  TImageToImageMetricv4>;
69 
72 
74  using typename Superclass::DomainType;
75  using typename Superclass::AssociateType;
76 
78  using ImageToImageMetricv4Type = TImageToImageMetricv4;
79  using VirtualImageType = typename Superclass::VirtualImageType;
80  using typename Superclass::VirtualIndexType;
81  using typename Superclass::VirtualPointType;
82  using typename Superclass::FixedImagePointType;
83  using typename Superclass::FixedImagePixelType;
84  using typename Superclass::FixedImageGradientType;
85  using typename Superclass::MovingImagePointType;
86  using typename Superclass::MovingImagePixelType;
87  using typename Superclass::MovingImageGradientType;
88 
89  using typename Superclass::FixedTransformType;
90  using typename Superclass::FixedOutputPointType;
91  using typename Superclass::MovingTransformType;
92  using typename Superclass::MovingOutputPointType;
93 
94  using typename Superclass::MeasureType;
95  using typename Superclass::DerivativeType;
96  using typename Superclass::DerivativeValueType;
97  using typename Superclass::JacobianType;
98 
99  using typename Superclass::InternalComputationValueType;
100  using typename Superclass::NumberOfParametersType;
101  using typename Superclass::ImageDimensionType;
102 
103 protected:
106 
109  void
110  ThreadedExecution(const DomainType & imageSubRegion, const ThreadIdType threadId) override;
111 
117  {
118  return this->m_CachedNumberOfParameters;
119  }
120  inline NumberOfParametersType
122  {
123  return this->m_CachedNumberOfLocalParameters;
124  }
125 };
132 template <typename TImageToImageMetricv4>
133 class ITK_TEMPLATE_EXPORT
135  : public ImageToImageMetricv4GetValueAndDerivativeThreaderBase<ThreadedIndexedContainerPartitioner,
136  TImageToImageMetricv4>
137 {
138 public:
139  ITK_DISALLOW_COPY_AND_MOVE(ImageToImageMetricv4GetValueAndDerivativeThreader);
140 
143  using Superclass =
147 
150 
152  using typename Superclass::DomainType;
153  using typename Superclass::AssociateType;
154 
156  using ImageToImageMetricv4Type = typename Superclass::ImageToImageMetricv4Type;
157  using VirtualImageType = typename Superclass::VirtualImageType;
158  using typename Superclass::VirtualIndexType;
159  using typename Superclass::VirtualPointType;
160  using typename Superclass::FixedImagePointType;
161  using typename Superclass::FixedImagePixelType;
162  using typename Superclass::FixedImageGradientType;
163  using typename Superclass::MovingImagePointType;
164  using typename Superclass::MovingImagePixelType;
165  using typename Superclass::MovingImageGradientType;
166 
167  using typename Superclass::FixedTransformType;
168  using typename Superclass::FixedOutputPointType;
169  using typename Superclass::MovingTransformType;
170  using typename Superclass::MovingOutputPointType;
171 
172  using typename Superclass::MeasureType;
173  using typename Superclass::DerivativeType;
174  using typename Superclass::DerivativeValueType;
175  using typename Superclass::JacobianType;
176 
177  using typename Superclass::InternalComputationValueType;
178  using typename Superclass::NumberOfParametersType;
179 
180 protected:
183 
186  void
187  ThreadedExecution(const DomainType & indexSubRange, const ThreadIdType threadId) override;
188 
194  {
195  return this->m_CachedNumberOfParameters;
196  }
197  inline NumberOfParametersType
199  {
200  return this->m_CachedNumberOfLocalParameters;
201  }
202 };
205 } // end namespace itk
206 
207 #ifndef ITK_MANUAL_INSTANTIATION
208 # include "itkImageToImageMetricv4GetValueAndDerivativeThreader.hxx"
209 #endif
210 
211 #endif
itkThreadedIndexedContainerPartitioner.h
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, TImageToImageMetricv4 >::GetCachedNumberOfLocalParameters
NumberOfParametersType GetCachedNumberOfLocalParameters() const
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:198
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::ImageToImageMetricv4Type
TImageToImageMetricv4 ImageToImageMetricv4Type
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:78
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h:46
itk::ImageToImageMetricv4GetValueAndDerivativeThreader
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:44
itk::ThreadedImageRegionPartitioner
Class for partitioning of an ImageRegion.
Definition: itkThreadedImageRegionPartitioner.h:45
itk::ThreadedIndexedContainerPartitioner
Partitions an indexed container.
Definition: itkThreadedIndexedContainerPartitioner.h:45
itk::SmartPointer< Self >
itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h
itkThreadedImageRegionPartitioner.h
itk::ThreadIdType
unsigned int ThreadIdType
Definition: itkIntTypes.h:99
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, TImageToImageMetricv4 >::GetCachedNumberOfParameters
NumberOfParametersType GetCachedNumberOfParameters() const
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:193
itk::ImageToImageMetricv4GetValueAndDerivativeThreaderBase< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::NumberOfParametersType
typename ImageToImageMetricv4Type::NumberOfParametersType NumberOfParametersType
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.h:89
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, TImageToImageMetricv4 >::VirtualImageType
typename Superclass::VirtualImageType VirtualImageType
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:157
itk::DomainThreader< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::DomainType
typename DomainPartitionerType::DomainType DomainType
Definition: itkDomainThreader.h:78
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::VirtualImageType
typename Superclass::VirtualImageType VirtualImageType
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:79
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::GetCachedNumberOfParameters
NumberOfParametersType GetCachedNumberOfParameters() const
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:116
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itkNumericTraits.h
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedImageRegionPartitioner< TImageToImageMetricv4::VirtualImageDimension >, TImageToImageMetricv4 >::GetCachedNumberOfLocalParameters
NumberOfParametersType GetCachedNumberOfLocalParameters() const
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:121
itk::ImageToImageMetricv4GetValueAndDerivativeThreader< ThreadedIndexedContainerPartitioner, TImageToImageMetricv4 >::ImageToImageMetricv4Type
typename Superclass::ImageToImageMetricv4Type ImageToImageMetricv4Type
Definition: itkImageToImageMetricv4GetValueAndDerivativeThreader.h:156