Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Optimizers
FiniteDifferenceGradientDescent
elxFiniteDifferenceGradientDescent.h
Go to the documentation of this file.
1
/*======================================================================
2
3
This file is part of the elastix software.
4
5
Copyright (c) University Medical Center Utrecht. All rights reserved.
6
See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7
details.
8
9
This software is distributed WITHOUT ANY WARRANTY; without even
10
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11
PURPOSE. See the above copyright notices for more information.
12
13
======================================================================*/
14
15
#ifndef __elxFiniteDifferenceGradientDescent_h
16
#define __elxFiniteDifferenceGradientDescent_h
17
18
#include "
itkFiniteDifferenceGradientDescentOptimizer.h
"
19
#include "
elxIncludes.h
"
20
21
namespace
elastix
22
{
23
using namespace
itk;
24
77
template
<
class
TElastix>
78
class
FiniteDifferenceGradientDescent
:
79
public
80
itk::FiniteDifferenceGradientDescentOptimizer
,
81
public
82
OptimizerBase
<TElastix>
83
{
84
public
:
85
87
typedef
FiniteDifferenceGradientDescent
Self
;
88
typedef
FiniteDifferenceGradientDescentOptimizer
Superclass1
;
89
typedef
OptimizerBase<TElastix>
Superclass2
;
90
typedef
SmartPointer<Self>
Pointer
;
91
typedef
SmartPointer<const Self>
ConstPointer
;
92
94
itkNewMacro(
Self
);
95
97
itkTypeMacro(
FiniteDifferenceGradientDescent
,
FiniteDifferenceGradientDescentOptimizer
);
98
103
elxClassNameMacro
(
"FiniteDifferenceGradientDescent"
);
104
106
typedef
Superclass1::CostFunctionType
CostFunctionType
;
107
typedef
Superclass1::CostFunctionPointer
CostFunctionPointer
;
108
typedef
Superclass1::StopConditionType
StopConditionType
;
109
111
typedef
typename
Superclass2::ElastixType
ElastixType
;
112
typedef
typename
Superclass2::ElastixPointer
ElastixPointer
;
113
typedef
typename
Superclass2::ConfigurationType
ConfigurationType
;
114
typedef
typename
Superclass2::ConfigurationPointer
ConfigurationPointer
;
115
typedef
typename
Superclass2::RegistrationType
RegistrationType
;
116
typedef
typename
Superclass2::RegistrationPointer
RegistrationPointer
;
117
typedef
typename
Superclass2::ITKBaseType
ITKBaseType
;
118
120
typedef
typename
Superclass1::ParametersType
ParametersType
;
121
123
virtual
void
BeforeRegistration(
void
);
124
virtual
void
BeforeEachResolution(
void
);
125
virtual
void
AfterEachResolution(
void
);
126
virtual
void
AfterEachIteration(
void
);
127
virtual
void
AfterRegistration(
void
);
128
131
virtual
void
StartOptimization(
void
);
132
133
protected
:
134
135
FiniteDifferenceGradientDescent
();
136
virtual
~FiniteDifferenceGradientDescent
() {};
137
138
bool
m_ShowMetricValues;
139
140
private
:
141
142
FiniteDifferenceGradientDescent
(
const
Self& );
// purposely not implemented
143
void
operator=(
const
Self& );
// purposely not implemented
144
145
};
// end class FiniteDifferenceGradientDescent
146
147
148
}
// end namespace elastix
149
150
#ifndef ITK_MANUAL_INSTANTIATION
151
#include "elxFiniteDifferenceGradientDescent.hxx"
152
#endif
153
154
#endif // end #ifndef __elxFiniteDifferenceGradientDescent_h
155
Generated on 27-06-2013 for elastix by
1.8.3.1