GeoModel - GeoModelCore
ConstMinusFunction.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/ConstMinusFunction.h"
8 
9 namespace GeoGenfun {
10 FUNCTION_OBJECT_IMP(ConstMinusFunction)
11 
12 ConstMinusFunction::ConstMinusFunction(double constant, const AbsFunction *arg):
13  _constant(constant),
14  _arg(arg->clone())
15 {
16 }
17 
18 ConstMinusFunction::ConstMinusFunction(const ConstMinusFunction & right) :
19 AbsFunction(right),
20 _constant(right._constant),
21 _arg(right._arg->clone())
22 {}
23 
24 unsigned int ConstMinusFunction::dimensionality() const {
25  return _arg->dimensionality();
26 }
27 
28 ConstMinusFunction::~ConstMinusFunction()
29 {
30  delete _arg;
31 }
32 
33 
34 
35 double ConstMinusFunction::operator ()(double x) const
36 {
37  return _constant - (*_arg)(x);
38 }
39 
40 
41 double ConstMinusFunction::operator ()(const Argument & x) const
42 {
43  return _constant - (*_arg)(x);
44 }
45 
46 
47 Derivative ConstMinusFunction::partial(unsigned int index) const {
48  const Derivative & d=_arg->partial(index);
49  const AbsFunction & fPrime = -d;
50  return Derivative(& fPrime);
51 }
52 
53 
54 } // namespace GeoGenfun
Definition: Abs.h:15