Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
parameterlist
src
Teuchos_StandardFunctionObjects.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Teuchos: Common Tools Package
4
//
5
// Copyright 2004 NTESS and the Teuchos contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef Teuchos_STANDARD_FUNCTION_OBJECTS_H
11
#define Teuchos_STANDARD_FUNCTION_OBJECTS_H
12
16
17
#include "
Teuchos_FunctionObject.hpp
"
18
19
20
namespace
Teuchos
{
21
26
template
<
class
OperandType>
27
class
SimpleFunctionObject
:
public
FunctionObject
28
{
29
public
:
30
32
33
38
SimpleFunctionObject
():
39
FunctionObject
(){}
40
47
SimpleFunctionObject
(OperandType modifyingOperand):
48
FunctionObject
(),
49
_modifyingOperand(modifyingOperand){}
50
52
60
virtual
OperandType
runFunction
(OperandType arguement)
const
=0;
61
63
64
68
inline
OperandType
getModifiyingOperand
()
const
{
69
return
_modifyingOperand;
70
}
71
78
inline
OperandType
setModifyingOperand
(OperandType newOperand){
79
_modifyingOperand = newOperand;
80
}
81
83
84
private
:
86
87
91
OperandType _modifyingOperand;
92
94
};
95
104
template
<
class
OperandType>
105
class
SubtractionFunction
:
106
public
SimpleFunctionObject
<OperandType>
107
{
108
public
:
110
111
115
SubtractionFunction
():
SimpleFunctionObject
<OperandType>(){}
116
123
SubtractionFunction
(OperandType amountToSubtract):
124
SimpleFunctionObject
<OperandType>(amountToSubtract){}
125
127
129
130
132
OperandType
runFunction
(OperandType arguement)
const
{
133
return
134
arguement
135
-
136
SimpleFunctionObject<OperandType>::getModifiyingOperand
();
137
}
138
140
142
143
145
std::string
getTypeAttributeValue
()
const
{
146
return
147
"SubtractionFunction("
148
+
TypeNameTraits<OperandType>::name
()
149
+
")"
;
150
}
151
153
};
154
163
template
<
class
OperandType>
164
class
AdditionFunction
:
165
public
SimpleFunctionObject
<OperandType>
166
{
167
public
:
169
170
174
AdditionFunction
():
SimpleFunctionObject
<OperandType>(){}
175
182
AdditionFunction
(OperandType amountToAdd):
183
SimpleFunctionObject
<OperandType>(amountToAdd){}
184
186
188
189
191
OperandType
runFunction
(OperandType arguement)
const
{
192
return
193
arguement
194
+
195
SimpleFunctionObject<OperandType>::getModifiyingOperand
();
196
}
197
199
201
202
204
std::string
getTypeAttributeValue
()
const
{
205
return
206
"AdditionFunction("
207
+
TypeNameTraits<OperandType>::name
()
208
+
")"
;
209
}
210
212
};
213
222
template
<
class
OperandType>
223
class
MultiplicationFunction
:
224
public
SimpleFunctionObject
<OperandType>
225
{
226
public
:
228
229
234
MultiplicationFunction
():
SimpleFunctionObject
<OperandType>(){}
235
243
MultiplicationFunction
(OperandType amountToMultiplyBy):
244
SimpleFunctionObject
<OperandType>(amountToMultiplyBy){}
245
247
249
250
252
OperandType
runFunction
(OperandType arguement)
const
{
253
return
254
arguement
255
*
256
SimpleFunctionObject<OperandType>::getModifiyingOperand
();
257
}
258
260
262
263
265
std::string
getTypeAttributeValue
()
const
{
266
return
"MultiplicationFunction("
+
267
TypeNameTraits<OperandType>::name
()
268
+
")"
;
269
}
270
272
};
273
282
template
<
class
OperandType>
283
class
DivisionFunction
:
284
public
SimpleFunctionObject
<OperandType>
285
{
286
public
:
287
289
290
295
DivisionFunction
():
SimpleFunctionObject
<OperandType>(){}
296
304
DivisionFunction
(OperandType amountToDivideBy):
305
SimpleFunctionObject
<OperandType>(amountToDivideBy){}
306
308
310
311
313
OperandType
runFunction
(OperandType arguement)
const
{
314
return
315
arguement
316
/
317
SimpleFunctionObject<OperandType>::getModifiyingOperand
();
318
}
319
321
323
324
326
std::string
getTypeAttributeValue
()
const
{
327
return
328
"DivisionFunction("
329
+
TypeNameTraits<OperandType>::name
()
330
+
")"
;
331
}
332
334
335
};
336
337
}
// namespace Teuchos
338
339
340
#endif
Teuchos_FunctionObject.hpp
An object representation of a function.
Teuchos::AdditionFunction::AdditionFunction
AdditionFunction(OperandType amountToAdd)
Constructs a AdditionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:182
Teuchos::AdditionFunction::runFunction
OperandType runFunction(OperandType arguement) const
Definition
Teuchos_StandardFunctionObjects.hpp:191
Teuchos::AdditionFunction::AdditionFunction
AdditionFunction()
Constructs a AdditionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:174
Teuchos::AdditionFunction::getTypeAttributeValue
std::string getTypeAttributeValue() const
Definition
Teuchos_StandardFunctionObjects.hpp:204
Teuchos::DivisionFunction::DivisionFunction
DivisionFunction(OperandType amountToDivideBy)
Constructs a DivisionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:304
Teuchos::DivisionFunction::runFunction
OperandType runFunction(OperandType arguement) const
Definition
Teuchos_StandardFunctionObjects.hpp:313
Teuchos::DivisionFunction::DivisionFunction
DivisionFunction()
Constructs a DivisionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:295
Teuchos::DivisionFunction::getTypeAttributeValue
std::string getTypeAttributeValue() const
Definition
Teuchos_StandardFunctionObjects.hpp:326
Teuchos::FunctionObject
A function object represents an arbitrary function.
Definition
Teuchos_FunctionObject.hpp:27
Teuchos::MultiplicationFunction::MultiplicationFunction
MultiplicationFunction(OperandType amountToMultiplyBy)
Constructs a MultiplicationFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:243
Teuchos::MultiplicationFunction::runFunction
OperandType runFunction(OperandType arguement) const
Definition
Teuchos_StandardFunctionObjects.hpp:252
Teuchos::MultiplicationFunction::getTypeAttributeValue
std::string getTypeAttributeValue() const
Definition
Teuchos_StandardFunctionObjects.hpp:265
Teuchos::MultiplicationFunction::MultiplicationFunction
MultiplicationFunction()
Constructs a MultiplicationFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:234
Teuchos::SimpleFunctionObject::runFunction
virtual OperandType runFunction(OperandType arguement) const =0
Teuchos::SimpleFunctionObject::SimpleFunctionObject
SimpleFunctionObject()
Constructs a SimpleFunctionObject.
Definition
Teuchos_StandardFunctionObjects.hpp:38
Teuchos::SimpleFunctionObject::getModifiyingOperand
OperandType getModifiyingOperand() const
Returns the modifying operand.
Definition
Teuchos_StandardFunctionObjects.hpp:68
Teuchos::SimpleFunctionObject::setModifyingOperand
OperandType setModifyingOperand(OperandType newOperand)
Sets the modifyingOperand.
Definition
Teuchos_StandardFunctionObjects.hpp:78
Teuchos::SimpleFunctionObject::SimpleFunctionObject
SimpleFunctionObject(OperandType modifyingOperand)
Constructs a SimpleFunctionObject.
Definition
Teuchos_StandardFunctionObjects.hpp:47
Teuchos::SubtractionFunction::getTypeAttributeValue
std::string getTypeAttributeValue() const
Definition
Teuchos_StandardFunctionObjects.hpp:145
Teuchos::SubtractionFunction::SubtractionFunction
SubtractionFunction()
Constructs a SubtractionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:115
Teuchos::SubtractionFunction::SubtractionFunction
SubtractionFunction(OperandType amountToSubtract)
Constructs a SubtractionFunction.
Definition
Teuchos_StandardFunctionObjects.hpp:123
Teuchos::SubtractionFunction::runFunction
OperandType runFunction(OperandType arguement) const
Definition
Teuchos_StandardFunctionObjects.hpp:132
Teuchos::TypeNameTraits::name
static std::string name()
Definition
Teuchos_TypeNameTraits.hpp:56
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Generated by
1.17.0