GeoModel - GeoModelCore
FunctionTimesParameter.cpp
1 //==========================================================================//
2 // Imported from the QAT library (qat.pitt.edu) by the copyright holder //
3 // Joe Boudreau. Software licensed under the terms and conditions of the //
4 // GNU Lesser Public License v3. //
5 //==========================================================================//
6 
7 #include "GeoGenericFunctions/FunctionTimesParameter.h"
8 #include "GeoGenericFunctions/Parameter.h"
9 namespace GeoGenfun {
10 FUNCTION_OBJECT_IMP(FunctionTimesParameter)
11 
12 FunctionTimesParameter::FunctionTimesParameter(const AbsParameter *parameter, const AbsFunction *function):
13  _function(function->clone()),
14  _parameter(parameter->clone())
15 {
16  if (parameter->parameter() && _parameter->parameter()) {
17  _parameter->parameter()->connectFrom(parameter->parameter());
18  }
19 }
20 
21 FunctionTimesParameter::FunctionTimesParameter(const FunctionTimesParameter & right) :
22  AbsFunction(right),
23  _function(right._function->clone()),
24  _parameter(right._parameter->clone())
25 {}
26 
27 unsigned int FunctionTimesParameter::dimensionality() const {
28  return _function->dimensionality();
29 }
30 
31 FunctionTimesParameter::~FunctionTimesParameter()
32 {
33  delete _function;
34  delete _parameter;
35 }
36 
37 
38 double FunctionTimesParameter::operator ()(double x) const
39 {
40  return _parameter->getValue() * (*_function)(x);
41 }
42 
43 
44 double FunctionTimesParameter::operator ()(const Argument & x) const
45 {
46  return _parameter->getValue() * (*_function)(x);
47 }
48 
49 
50 
51 
52 Derivative FunctionTimesParameter::partial(unsigned int index) const {
53  const Derivative & d=_function->partial(index);
54  const AbsFunction & fPrime = (*_parameter)*d;
55  return Derivative(&fPrime);
56 }
57 
58 } // namespace GeoGenfun
Definition: Abs.h:15