18 #ifndef itkJointHistogramMutualInformationGetValueAndDerivativeThreader_h
19 #define itkJointHistogramMutualInformationGetValueAndDerivativeThreader_h
35 template <
typename TDomainPartitioner,
typename TImageToImageMetric,
typename TJo
intHistogramMetric>
52 using typename Superclass::DomainType;
53 using typename Superclass::AssociateType;
55 using typename Superclass::VirtualPointType;
56 using typename Superclass::VirtualIndexType;
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;
66 using typename Superclass::JacobianType;
75 using JointPDFType =
typename JointHistogramMetricType::JointPDFType;
88 BeforeThreadedExecution()
override;
91 AfterThreadedExecution()
override;
94 ProcessPoint(
const VirtualIndexType & virtualIndex,
95 const VirtualPointType & virtualPoint,
96 const FixedImagePointType & mappedFixedPoint,
97 const FixedImagePixelType & fixedImageValue,
98 const FixedImageGradientType & mappedFixedImageGradient,
99 const MovingImagePointType & mappedMovingPoint,
100 const MovingImagePixelType & movingImageValue,
101 const MovingImageGradientType & movingImageGradient,
102 MeasureType & metricValueReturn,
103 DerivativeType & localDerivativeReturn,
123 itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT,
124 PaddedJointHistogramMIPerThreadStruct,
125 AlignedJointHistogramMIPerThreadStruct);
131 TJointHistogramMetric * m_JointAssociate{};
136 #ifndef ITK_MANUAL_INSTANTIATION
137 # include "itkJointHistogramMutualInformationGetValueAndDerivativeThreader.hxx"