18#ifndef itkComputeDisplacementDistribution_h
19#define itkComputeDisplacementDistribution_h
27#include "itkMultiThreaderBase.h"
47template <
typename TFixedImage,
typename TTransform>
71 using Superclass::ParametersType;
72 using Superclass::DerivativeType;
85 itkSetConstObjectMacro(FixedImage, TFixedImage);
88 itkSetObjectMacro(Transform, TTransform);
96 itkSetMacro(NumberOfJacobianMeasurements, SizeValueType);
111 Compute(
const ParametersType & mu,
double & jacg,
double & maxJJ, std::string method);
124 m_Threader->SetNumberOfWorkUnits(numberOfThreads);
149 MultiThreaderBase::Pointer
m_Threader{ MultiThreaderBase::New() };
166 std::vector<ImageSampleType>
174 static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
198 itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, ComputePerThreadStruct, PaddedComputePerThreadStruct);
199 itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedComputePerThreadStruct, AlignedComputePerThreadStruct);
212#ifndef ITK_MANUAL_INSTANTIATION
213# include "itkComputeDisplacementDistribution.hxx"
typename TFixedImage::IndexType FixedImageIndexType
ScaledSingleValuedNonLinearOptimizer Superclass
typename TTransform::Pointer TransformPointer
typename TTransform::NumberOfParametersType NumberOfParametersType
TransformPointer m_Transform
FixedImageType::ConstPointer m_FixedImage
virtual void Compute(const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
typename FixedImageMaskType::Pointer FixedImageMaskPointer
ImageSample< TFixedImage > ImageSampleType
virtual void ComputeSingleThreaded(const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
itkOverrideGetNameOfClassMacro(ComputeDisplacementDistribution)
typename TTransform::JacobianType JacobianType
typename TTransform::ScalarType CoordinateRepresentationType
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, ComputePerThreadStruct, PaddedComputePerThreadStruct)
virtual void ThreadedCompute(ThreadIdType threadID)
FixedImageMaskConstPointer m_FixedImageMask
itkStaticConstMacro(FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
FixedImageRegionType m_FixedImageRegion
ComputeDisplacementDistribution()
virtual void ComputeUsingSearchDirection(const ParametersType &mu, double &jacg, double &maxJJ, std::string methods)
virtual void InitializeThreadingParameters()
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedComputePerThreadStruct, AlignedComputePerThreadStruct)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ComputeThreaderCallback(void *arg)
virtual void AfterThreadedCompute(double &jacg, double &maxJJ)
SizeValueType m_NumberOfParameters
void SetFixedImageRegion(const FixedImageRegionType ®ion)
typename TFixedImage::PixelType FixedImagePixelType
ScaledSingleValuedCostFunction::Pointer m_CostFunction
MultiThreaderBase::WorkUnitInfo ThreadInfoType
ITK_DISALLOW_COPY_AND_MOVE(ComputeDisplacementDistribution)
ImageMaskSpatialObject< Self::FixedImageDimension > FixedImageMaskType
~ComputeDisplacementDistribution() override=default
SizeValueType m_NumberOfJacobianMeasurements
MultiThreaderBase::Pointer m_Threader
std::vector< ImageSampleType > SampleFixedImageForJacobianTerms() const
void LaunchComputeThreaderCallback() const
SmartPointer< Self > Pointer
void SetNumberOfWorkUnits(ThreadIdType numberOfThreads)
DerivativeType m_ExactGradient
std::vector< AlignedComputePerThreadStruct > m_ComputePerThreadVariables
typename TFixedImage::PointType FixedImagePointType
TFixedImage FixedImageType
SmartPointer< const Self > ConstPointer
typename TFixedImage::RegionType FixedImageRegionType
typename JacobianType::ValueType JacobianValueType
std::vector< ImageSampleType > m_Samples
JacobianType TransformJacobianType
MultiThreaderParameterType m_ThreaderParameters
ComputeDisplacementDistribution Self
typename FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
virtual void BeforeThreadedCompute(const ParametersType &mu)
typename TTransform::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
A class that defines an image sample, which is the coordinates of a point and its value.
SmartPointer< Self > Pointer
ScaledSingleValuedNonLinearOptimizer()
NonLinearOptimizer::ScalesType ScalesType
double st_DisplacementSquared
SizeValueType st_NumberOfPixelsCounted