18#ifndef itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
19#define itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader_h
34template <
typename TDomainPartitioner,
typename TImageToImageMetric,
typename TCorrelationMetric>
51 using typename Superclass::DomainType;
52 using typename Superclass::AssociateType;
55 using typename Superclass::VirtualIndexType;
56 using typename Superclass::VirtualPointType;
57 using typename Superclass::FixedImagePointType;
58 using typename Superclass::FixedImagePixelType;
59 using typename Superclass::FixedImageGradientType;
60 using typename Superclass::MovingImagePointType;
61 using typename Superclass::MovingImagePixelType;
62 using typename Superclass::MovingImageGradientType;
63 using typename Superclass::MeasureType;
64 using typename Superclass::DerivativeType;
65 using typename Superclass::DerivativeValueType;
72 using typename Superclass::InternalComputationValueType;
73 using typename Superclass::NumberOfParametersType;
104 const VirtualPointType & virtualPoint,
112 const VirtualPointType & virtualPoint,
113 const FixedImagePointType & mappedFixedPoint,
114 const FixedImagePixelType & fixedImageValue,
115 const FixedImageGradientType & mappedFixedImageGradient,
116 const MovingImagePointType & mappedMovingPoint,
117 const MovingImagePixelType & movingImageValue,
118 const MovingImageGradientType & movingImageGradient,
119 MeasureType & metricValueReturn,
120 DerivativeType & localDerivativeReturn,
135 InternalComputationValueType
fm;
136 InternalComputationValueType
m2;
137 InternalComputationValueType
f2;
138 InternalComputationValueType
m;
139 InternalComputationValueType
f;
146 PaddedCorrelationMetricValueDerivativePerThreadStruct);
148 PaddedCorrelationMetricValueDerivativePerThreadStruct,
149 AlignedCorrelationMetricValueDerivativePerThreadStruct);
151 std::unique_ptr<AlignedCorrelationMetricValueDerivativePerThreadStruct[]>
156 TCorrelationMetric * m_CorrelationAssociate{};
161#ifndef ITK_MANUAL_INSTANTIATION
162# include "itkCorrelationImageToImageMetricv4GetValueAndDerivativeThreader.hxx"
Processes points for CorrelationImageToImageMetricv4 GetValueAndDerivative.
void BeforeThreadedExecution() override
std::unique_ptr< AlignedCorrelationMetricValueDerivativePerThreadStruct[]> m_CorrelationMetricValueDerivativePerThreadVariables
void AfterThreadedExecution() override
bool ProcessVirtualPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId) override
typename ImageToImageMetricv4Type::MovingTransformType MovingTransformType
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, CorrelationMetricValueDerivativePerThreadStruct, PaddedCorrelationMetricValueDerivativePerThreadStruct)
typename FixedTransformType::OutputPointType FixedOutputPointType
bool ProcessPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const FixedImagePointType &mappedFixedPoint, const FixedImagePixelType &fixedImageValue, const FixedImageGradientType &mappedFixedImageGradient, const MovingImagePointType &mappedMovingPoint, const MovingImagePixelType &movingImageValue, const MovingImageGradientType &movingImageGradient, MeasureType &metricValueReturn, DerivativeType &localDerivativeReturn, const ThreadIdType threadId) const override
typename ImageToImageMetricv4Type::FixedTransformType FixedTransformType
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedCorrelationMetricValueDerivativePerThreadStruct, AlignedCorrelationMetricValueDerivativePerThreadStruct)
CorrelationImageToImageMetricv4GetValueAndDerivativeThreader()
typename MovingTransformType::OutputPointType MovingOutputPointType
~CorrelationImageToImageMetricv4GetValueAndDerivativeThreader() override=default
typename Superclass::ImageToImageMetricv4Type ImageToImageMetricv4Type
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
InternalComputationValueType m
InternalComputationValueType f2
InternalComputationValueType fm
InternalComputationValueType m2
InternalComputationValueType f