ITK  6.0.0
Insight Toolkit
itkWindowConvergenceMonitoringFunction.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 itkWindowConvergenceMonitoringFunction_h
19#define itkWindowConvergenceMonitoringFunction_h
20
22
23namespace itk
24{
25namespace Function
26{
38template <typename TScalar = double>
39class ITK_TEMPLATE_EXPORT WindowConvergenceMonitoringFunction : public ConvergenceMonitoringFunction<TScalar, TScalar>
40{
41public:
42 ITK_DISALLOW_COPY_AND_MOVE(WindowConvergenceMonitoringFunction);
43
48
50 itkNewMacro(Self);
51
53 itkOverrideGetNameOfClassMacro(WindowConvergenceMonitoringFunction);
54
55 using ScalarType = TScalar;
57
58 using typename Superclass::EnergyValueType;
59 using typename Superclass::EnergyValueContainerType;
60 using typename Superclass::EnergyValueContainerSizeType;
61 using EnergyValueIterator = typename EnergyValueContainerType::iterator;
62 using EnergyValueConstIterator = typename EnergyValueContainerType::const_iterator;
63
65 void
67
68 /* Clear energy values and set total energy to 0 */
69 void
71
73 itkSetMacro(WindowSize, EnergyValueContainerSizeType);
74 itkGetConstMacro(WindowSize, EnergyValueContainerSizeType);
79 GetConvergenceValue() const override;
80
81protected:
83
85
86 void
87 PrintSelf(std::ostream & os, Indent indent) const override;
88
89private:
91
92 RealType m_TotalEnergy{};
93};
94} // end namespace Function
95} // end namespace itk
96
97#ifndef ITK_MANUAL_INSTANTIATION
98# include "itkWindowConvergenceMonitoringFunction.hxx"
99#endif
100
101#endif
Abstract base class which monitors convergence during the course of optimization.
Class which monitors convergence during the course of optimization.
void AddEnergyValue(const EnergyValueType) override
void PrintSelf(std::ostream &os, Indent indent) const override
typename EnergyValueContainerType::const_iterator EnergyValueConstIterator
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Define additional traits for native types such as int or float.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....