ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkGPUDenseFiniteDifferenceImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkGPUDenseFiniteDifferenceImageFilter_h
19#define itkGPUDenseFiniteDifferenceImageFilter_h
20
23
24namespace itk
25{
27class ITKGPUFiniteDifference_EXPORT itkGPUKernelMacro(GPUDenseFiniteDifferenceImageFilterKernel);
28
52template <typename TInputImage,
53 typename TOutputImage,
55class ITK_TEMPLATE_EXPORT GPUDenseFiniteDifferenceImageFilter
56 : public GPUFiniteDifferenceImageFilter<TInputImage, TOutputImage, TParentImageFilter>
57{
58public:
59 ITK_DISALLOW_COPY_AND_MOVE(GPUDenseFiniteDifferenceImageFilter);
60
64 using CPUSuperclass = TParentImageFilter;
67
69 itkOverrideGetNameOfClassMacro(GPUDenseFiniteDifferenceImageFilter);
70
75
78 static constexpr unsigned int ImageDimension = GPUSuperclass::ImageDimension;
79
83
86
89
91 itkConceptMacro(OutputAdditiveOperatorsCheck, (Concept::AdditiveOperators<PixelType>));
93
95 itkGetOpenCLSourceFromKernelMacro(GPUDenseFiniteDifferenceImageFilterKernel);
96
97protected:
100 void
101 PrintSelf(std::ostream & os, Indent indent) const override;
102
105 void
106 ApplyUpdate(const TimeStepType & dt) override;
107
108 void
109 GPUApplyUpdate(const TimeStepType & dt) override;
110
115
119 void
121
126 {
127 return CPUSuperclass::GetUpdateBuffer();
128 }
129
132 void
134
135 /* GPU kernel handle for GPUApplyUpdate */
137};
138} // end namespace itk
139
140#ifndef ITK_MANUAL_INSTANTIATION
141# include "itkGPUDenseFiniteDifferenceImageFilter.hxx"
142#endif
143
144#endif
void GPUApplyUpdate(const TimeStepType &dt) override
void PrintSelf(std::ostream &os, Indent indent) const override
GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter > GPUSuperclass
typename GPUSuperclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
void ApplyUpdate(const TimeStepType &dt) override
~GPUDenseFiniteDifferenceImageFilter() override=default
itkGetOpenCLSourceFromKernelMacro(GPUDenseFiniteDifferenceImageFilterKernel)
TimeStepType GPUCalculateChange() override
typename GPUFiniteDifferenceFunction< TOutputImage >::DifferenceFunctionType FiniteDifferenceFunctionType
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITKGPUFiniteDifference_EXPORT itkGPUKernelMacro(GPUDenseFiniteDifferenceImageFilterKernel)