CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
GenericFunctions
src
AbsFunction.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id: AbsFunction.cc,v 1.4 2007/01/21 20:20:41 boudreau Exp $
3
#include "
CLHEP/GenericFunctions/AbsFunction.hh
"
4
#include "
CLHEP/GenericFunctions/ConstTimesFunction.hh
"
5
#include "
CLHEP/GenericFunctions/ConstOverFunction.hh
"
6
#include "
CLHEP/GenericFunctions/ConstPlusFunction.hh
"
7
#include "
CLHEP/GenericFunctions/ConstMinusFunction.hh
"
8
#include "
CLHEP/GenericFunctions/FunctionSum.hh
"
9
#include "
CLHEP/GenericFunctions/FunctionDifference.hh
"
10
#include "
CLHEP/GenericFunctions/FunctionProduct.hh
"
11
#include "
CLHEP/GenericFunctions/FunctionQuotient.hh
"
12
#include "
CLHEP/GenericFunctions/FunctionConvolution.hh
"
13
#include "
CLHEP/GenericFunctions/FunctionNegation.hh
"
14
#include "
CLHEP/GenericFunctions/FunctionDirectProduct.hh
"
15
#include "
CLHEP/GenericFunctions/FixedConstant.hh
"
16
#include "
CLHEP/GenericFunctions/FloatingConstant.hh
"
17
#include "
CLHEP/GenericFunctions/FunctionNumDeriv.hh
"
18
#include "
CLHEP/GenericFunctions/Variable.hh
"
19
#include "
CLHEP/GenericFunctions/FunctionNoop.hh
"
20
#include "
CLHEP/GenericFunctions/ParameterComposition.hh
"
21
#include <assert.h>
22
namespace
Genfun {
23
AbsFunction::AbsFunction
() {
24
}
25
26
AbsFunction::~AbsFunction
() {
27
}
28
29
AbsFunction::AbsFunction
(
const
AbsFunction
&) {
30
}
31
32
FunctionComposition
AbsFunction::operator ()
(
const
AbsFunction
&
function
)
const
{
33
return
FunctionComposition
(
this
, &
function
);
34
}
35
36
ParameterComposition
AbsFunction::operator()
(
const
AbsParameter
&p)
const
{
37
return
ParameterComposition
(
this
, &p);
38
}
39
40
Derivative
AbsFunction::partial
(
unsigned
int
index)
const
{
41
FunctionNumDeriv
fPrime(
this
,index);
42
return
Derivative
(&fPrime);
43
}
44
45
46
Derivative
AbsFunction::derivative
(
const
Variable
&v)
const
{
47
return
partial
(v.
index
());
48
}
49
50
Derivative
AbsFunction::prime
()
const
{
51
assert(
dimensionality
()==1);
52
return
partial
(0);
53
}
54
55
FunctionSum
operator +
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
56
return
FunctionSum
(&a,&b);
57
}
58
59
FunctionDifference
operator -
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
60
return
FunctionDifference
(&a,&b);
61
}
62
63
FunctionProduct
operator *
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
64
return
FunctionProduct
(&a,&b);
65
}
66
67
FunctionQuotient
operator /
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
68
return
FunctionQuotient
(&a,&b);
69
}
70
71
FunctionConvolution
convolve
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
,
double
x0,
double
x1) {
72
return
FunctionConvolution
(&a,&b, x0, x1);
73
}
74
75
FunctionNegation
operator -
(
const
AbsFunction
&
a
) {
76
return
FunctionNegation
(&a);
77
}
78
79
unsigned
int
AbsFunction::dimensionality
()
const
{
80
return
1;
81
}
82
83
FunctionDirectProduct
operator %
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
84
return
FunctionDirectProduct
(&a,&b);
85
}
86
87
ConstTimesFunction
operator *
(
const
AbsFunction
&op2,
double
c) {
88
return
ConstTimesFunction
(c, &op2);
89
}
90
91
ConstPlusFunction
operator +
(
const
AbsFunction
&op2,
double
c) {
92
return
ConstPlusFunction
(c,&op2);
93
}
94
95
ConstPlusFunction
operator -
(
const
AbsFunction
&op2,
double
c) {
96
return
ConstPlusFunction
(-c, &op2);
97
}
98
99
ConstTimesFunction
operator /
(
const
AbsFunction
&op2,
double
c) {
100
return
ConstTimesFunction
(1/c,&op2);
101
}
102
103
104
ConstTimesFunction
operator *
(
double
c,
const
AbsFunction
&op2) {
105
return
ConstTimesFunction
(c,&op2);
106
}
107
108
ConstPlusFunction
operator +
(
double
c,
const
AbsFunction
&op2) {
109
return
ConstPlusFunction
(c,&op2);
110
}
111
112
ConstMinusFunction
operator -
(
double
c,
const
AbsFunction
&op2) {
113
return
ConstMinusFunction
(c,&op2);
114
}
115
116
ConstOverFunction
operator /
(
double
c,
const
AbsFunction
&op2) {
117
return
ConstOverFunction
(c,&op2);
118
}
119
120
121
FunctionTimesParameter
operator *
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
122
return
FunctionTimesParameter
(&p, &f);
123
}
124
125
FunctionPlusParameter
operator +
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
126
return
FunctionPlusParameter
(&p, &f);
127
}
128
129
FunctionPlusParameter
operator -
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
130
GENPARAMETER
MinusP = -p;
131
return
FunctionPlusParameter
(&MinusP, &f);
132
133
}
134
135
FunctionTimesParameter
operator /
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
136
GENPARAMETER
oneOverP = 1.0/p;
137
return
FunctionTimesParameter
(&oneOverP, &f);
138
}
139
140
FunctionTimesParameter
operator *
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
141
return
FunctionTimesParameter
(&p, &f);
142
}
143
144
FunctionPlusParameter
operator +
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
145
return
FunctionPlusParameter
(&p, &f);
146
}
147
148
FunctionPlusParameter
operator -
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
149
GENFUNCTION
MinusF = -
f
;
150
return
FunctionPlusParameter
(&p, &MinusF);
151
}
152
153
FunctionTimesParameter
operator /
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
154
GENFUNCTION
oneOverF = 1.0/
f
;
155
return
FunctionTimesParameter
(&p, &oneOverF);
156
}
157
}
// namespace Genfun
Generated on Mon May 6 2013 04:04:10 for CLHEP by
1.8.1.2