CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

FunctionDifference.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 // $Id: FunctionDifference.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $
4 #include <assert.h>
5 
6 namespace Genfun {
7 FUNCTION_OBJECT_IMP(FunctionDifference)
8 
10  _arg1(arg1->clone()),
11  _arg2(arg2->clone())
12 {
13  if (arg1->dimensionality()!=arg2->dimensionality()) {
14  std::cout
15  << "Warning: dimension mismatch in function difference"
16  << std::endl;
17  assert(0);
18  }
19 }
20 
21 
23  _arg1(right._arg1->clone()),
24  _arg2(right._arg2->clone())
25 {
26 }
27 
28 
29 unsigned int FunctionDifference::dimensionality() const {
30  return _arg1->dimensionality();
31 }
32 
34 {
35  delete _arg1;
36  delete _arg2;
37 }
38 
39 
40 
41 double FunctionDifference::operator ()(double x) const
42 {
43  return (*_arg1)(x)-(*_arg2)(x);
44 }
45 
47 {
48  return (*_arg1)(x)-(*_arg2)(x);
49 }
50 
51 
52 Derivative FunctionDifference::partial(unsigned int index) const {
53  const AbsFunction & fPrime = _arg1->partial(index) - _arg2->partial(index);
54  return Derivative(&fPrime);
55 }
56 
57 
58 
59 } // namespace Genfun