18 #ifndef itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
19 #define itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
34 template <
typename TDomainPartitioner,
typename TImageToImageMetric,
typename TCorrelationMetric>
52 using typename Superclass::DomainType;
53 using typename Superclass::AssociateType;
56 using typename Superclass::VirtualIndexType;
57 using typename Superclass::VirtualPointType;
58 using typename Superclass::FixedImagePointType;
59 using typename Superclass::FixedImagePixelType;
60 using typename Superclass::FixedImageGradientType;
61 using typename Superclass::MovingImagePointType;
62 using typename Superclass::MovingImagePixelType;
63 using typename Superclass::MovingImageGradientType;
64 using typename Superclass::MeasureType;
65 using typename Superclass::DerivativeType;
66 using typename Superclass::DerivativeValueType;
73 using typename Superclass::InternalComputationValueType;
74 using typename Superclass::NumberOfParametersType;
86 BeforeThreadedExecution()
override;
96 AfterThreadedExecution()
override;
104 ProcessVirtualPoint(
const VirtualIndexType & virtualIndex,
105 const VirtualPointType & virtualPoint,
112 ProcessPoint(
const VirtualIndexType & virtualIndex,
113 const VirtualPointType & virtualPoint,
114 const FixedImagePointType & mappedFixedPoint,
115 const FixedImagePixelType & fixedImageValue,
116 const FixedImageGradientType & mappedFixedImageGradient,
117 const MovingImagePointType & mappedMovingPoint,
118 const MovingImagePixelType & movingImageValue,
119 const MovingImageGradientType & movingImageGradient,
120 MeasureType & metricValueReturn,
121 DerivativeType & localDerivativeReturn,
136 InternalComputationValueType
fm;
137 InternalComputationValueType
m2;
138 InternalComputationValueType
f2;
139 InternalComputationValueType
m;
140 InternalComputationValueType
f;
145 itkPadStruct(ITK_CACHE_LINE_ALIGNMENT,
147 PaddedCorrelationMetricValueDerivativePerThreadStruct);
148 itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT,
149 PaddedCorrelationMetricValueDerivativePerThreadStruct,
150 AlignedCorrelationMetricValueDerivativePerThreadStruct);
152 std::unique_ptr<AlignedCorrelationMetricValueDerivativePerThreadStruct[]>
157 TCorrelationMetric * m_CorrelationAssociate{};
162 #ifndef ITK_MANUAL_INSTANTIATION
163 # include "itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx"