CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
GenericFunctions
src
FunctionConvolution.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id: FunctionConvolution.cc,v 1.3 2003/09/06 14:04:14 boudreau Exp $
3
#include "
CLHEP/GenericFunctions/FunctionConvolution.hh
"
4
#include <assert.h>
5
6
namespace
Genfun
{
7
FUNCTION_OBJECT_IMP
(FunctionConvolution)
8
9
FunctionConvolution
::
FunctionConvolution
(const
AbsFunction
*arg1, const
AbsFunction
*arg2,
double
x0,
double
x1):_arg1(arg1->clone()),_arg2(arg2->clone()),_x0(x0), _x1(x1)
10
{
11
if
((arg1->dimensionality()!=1) || arg2->dimensionality()!=1) {
12
std::cout
13
<<
"Warning: dimension mismatch in function convolution"
14
<< std::endl;
15
assert(0);
16
}
17
}
18
19
FunctionConvolution::FunctionConvolution
(
const
FunctionConvolution
& right):
20
AbsFunction
(right),
21
_arg1(right._arg1->clone()),
22
_arg2(right._arg2->clone()),
23
_x0(right._x0),
24
_x1(right._x1)
25
{}
26
27
FunctionConvolution::~FunctionConvolution
()
28
{
29
delete
_arg1;
30
delete
_arg2;
31
}
32
33
34
35
double
FunctionConvolution::operator ()
(
double
argument)
const
36
{
37
const
double
NDIVISIONS=200.0;
38
double
dx = (_x1-_x0)/NDIVISIONS;
39
double
result=0.0;
40
for
(
double
x=_x0; x<_x1; x+=dx) {
41
result += (*_arg1)(argument-x)*(*_arg2)(x);
42
}
43
result/=NDIVISIONS;
44
return
result;
45
}
46
47
}
// namespace Genfun
FUNCTION_OBJECT_IMP
#define FUNCTION_OBJECT_IMP(classname)
Definition
CLHEP/GenericFunctions/AbsFunction.hh:156
FunctionConvolution.hh
Genfun::AbsFunction
Definition
GenericFunctions/AbsFunction.hh:48
Genfun::FunctionConvolution
Definition
GenericFunctions/FunctionConvolution.hh:25
Genfun::FunctionConvolution::operator()
virtual double operator()(double argument) const
Definition
FunctionConvolution.cc:35
Genfun::FunctionConvolution::~FunctionConvolution
virtual ~FunctionConvolution()
Definition
FunctionConvolution.cc:27
Genfun::FunctionConvolution::FunctionConvolution
FunctionConvolution(const AbsFunction *arg1, const AbsFunction *arg2, double x0, double x1)
Definition
FunctionConvolution.cc:9
Genfun
Definition
CLHEP/GenericFunctions/Abs.hh:14
Generated by
1.12.0