18#ifndef itkImageToImageMetricv4GetValueAndDerivativeThreaderBase_h
19#define itkImageToImageMetricv4GetValueAndDerivativeThreaderBase_h
45template <
typename TDomainPartitioner,
typename TImageToImageMetricv4>
61 using typename Superclass::DomainType;
62 using typename Superclass::AssociateType;
82 using MeasureType =
typename ImageToImageMetricv4Type::MeasureType;
85 using JacobianType =
typename ImageToImageMetricv4Type::JacobianType;
197 PaddedGetValueAndDerivativePerThreadStruct);
199 PaddedGetValueAndDerivativePerThreadStruct,
200 AlignedGetValueAndDerivativePerThreadStruct);
212#ifndef ITK_MANUAL_INSTANTIATION
213# include "itkImageToImageMetricv4GetValueAndDerivativeThreaderBase.hxx"
Perform more precise accumulation of floating point numbers.
Multi-threaded processing on a domain by processing sub-domains per thread.
Provides threading for ImageToImageMetricv4::GetValueAndDerivative.
void AfterThreadedExecution() override
~ImageToImageMetricv4GetValueAndDerivativeThreaderBase() override=default
virtual bool ProcessVirtualPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const ThreadIdType threadId)
typename ImageToImageMetricv4Type::MovingImagePixelType MovingImagePixelType
typename ImageToImageMetricv4Type::FixedImagePointType FixedImagePointType
typename ImageToImageMetricv4Type::VirtualIndexType VirtualIndexType
typename ImageToImageMetricv4Type::NumberOfParametersType NumberOfParametersType
typename ImageToImageMetricv4Type::DerivativeType DerivativeType
virtual bool ProcessPoint(const VirtualIndexType &virtualIndex, const VirtualPointType &virtualPoint, const FixedImagePointType &mappedFixedPoint, const FixedImagePixelType &mappedFixedPixelValue, const FixedImageGradientType &mappedFixedImageGradient, const MovingImagePointType &mappedMovingPoint, const MovingImagePixelType &mappedMovingPixelValue, const MovingImageGradientType &mappedMovingImageGradient, MeasureType &metricValueReturn, DerivativeType &localDerivativeReturn, const ThreadIdType threadId) const =0
typename ImageToImageMetricv4Type::ImageDimensionType ImageDimensionType
typename ImageToImageMetricv4Type::FixedImageIndexType FixedImageIndexType
TImageToImageMetricv4 ImageToImageMetricv4Type
typename MovingTransformType::OutputPointType MovingOutputPointType
typename ImageToImageMetricv4Type::VirtualPointType VirtualPointType
typename ImageToImageMetricv4Type::MeasureType MeasureType
typename ImageToImageMetricv4Type::VirtualImageType VirtualImageType
typename ImageToImageMetricv4Type::JacobianType JacobianType
typename ImageToImageMetricv4Type::MovingTransformType MovingTransformType
ImageToImageMetricv4GetValueAndDerivativeThreaderBase()
typename ImageToImageMetricv4Type::MovingImageGradientType MovingImageGradientType
void BeforeThreadedExecution() override
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, GetValueAndDerivativePerThreadStruct, PaddedGetValueAndDerivativePerThreadStruct)
typename ImageToImageMetricv4Type::InternalComputationValueType InternalComputationValueType
typename ImageToImageMetricv4Type::DerivativeValueType DerivativeValueType
typename ImageToImageMetricv4Type::FixedImagePixelType FixedImagePixelType
std::unique_ptr< AlignedGetValueAndDerivativePerThreadStruct[]> m_GetValueAndDerivativePerThreadVariables
virtual void StorePointDerivativeResult(const VirtualIndexType &virtualIndex, const ThreadIdType threadId)
typename ImageToImageMetricv4Type::FixedImageGradientType FixedImageGradientType
typename FixedTransformType::OutputPointType FixedOutputPointType
typename ImageToImageMetricv4Type::FixedTransformType FixedTransformType
virtual bool GetComputeDerivative() const
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedGetValueAndDerivativePerThreadStruct, AlignedGetValueAndDerivativePerThreadStruct)
typename ImageToImageMetricv4Type::MovingImagePointType MovingImagePointType
std::vector< CompensatedDerivativeValueType > CompensatedDerivativeType
Light weight base class for most itk classes.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
unsigned long SizeValueType
JacobianType MovingTransformJacobian
SizeValueType NumberOfValidPoints
DerivativeType LocalDerivatives
DerivativeType Derivatives
JacobianType MovingTransformJacobianPositional
CompensatedDerivativeType CompensatedDerivatives
InternalComputationValueType Measure