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

GenericFunctions/FunctionConvolution.hh
Go to the documentation of this file.
1// -*- C++ -*-
2// $Id: FunctionConvolution.hh,v 1.2 2003/09/06 14:04:13 boudreau Exp $
3//------------------------------FunctionConvolution-------------------------//
4// //
5// FunctionConvolution: output of the Convolve[f,g] operation //
6// //
7// Petar Maksimovic, Joe Boudreau, November 1999 //
8// //
9// Warning! This is not a very good convolution algorithm! Does anybody //
10// out there really know how to perform a reasonable numerical convolution //
11// ? Wanna help the Generic Functions Project? //
12// //
13//--------------------------------------------------------------------------//
14
15#ifndef FunctionConvolution_h
16#define FunctionConvolution_h 1
18
19namespace Genfun {
20
25 class FunctionConvolution : public AbsFunction {
26
27 FUNCTION_OBJECT_DEF(FunctionConvolution)
28
29 public:
30
31 // Constructor
32 FunctionConvolution(const AbsFunction *arg1, const AbsFunction *arg2, double x0, double x1);
33
34 // Copy Constructor
36
37 // Destructor
39
40 // Retrieve function value
41 virtual double operator ()(double argument) const;
42 virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
43
44 private:
45
46 // It is illegal to assign a convolution
47 const FunctionConvolution & operator=(const FunctionConvolution &right);
48
49 // Input functions to convolution
50 const AbsFunction *_arg1;
51 const AbsFunction *_arg2;
52 double _x0;
53 double _x1;
54
55 };
56} // namespace Genfun
57#endif
#define FUNCTION_OBJECT_DEF(classname)
FunctionConvolution(const FunctionConvolution &right)
virtual double operator()(double argument) const
FunctionConvolution(const AbsFunction *arg1, const AbsFunction *arg2, double x0, double x1)