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
FunctionComposition
AbsFunction::operator ()
(
const
AbsFunction
&
function
)
const
{
30
return
FunctionComposition
(
this
, &
function
);
31
}
32
33
ParameterComposition
AbsFunction::operator()
(
const
AbsParameter
&p)
const
{
34
return
ParameterComposition
(
this
, &p);
35
}
36
37
Derivative
AbsFunction::partial
(
unsigned
int
index)
const
{
38
FunctionNumDeriv
fPrime(
this
,index);
39
return
Derivative
(&fPrime);
40
}
41
42
43
Derivative
AbsFunction::derivative
(
const
Variable
&v)
const
{
44
return
partial
(v.
index
());
45
}
46
47
Derivative
AbsFunction::prime
()
const
{
48
assert(
dimensionality
()==1);
49
return
partial
(0);
50
}
51
52
FunctionSum
operator +
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
53
return
FunctionSum
(&a,&b);
54
}
55
56
FunctionDifference
operator -
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
57
return
FunctionDifference
(&a,&b);
58
}
59
60
FunctionProduct
operator *
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
61
return
FunctionProduct
(&a,&b);
62
}
63
64
FunctionQuotient
operator /
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
65
return
FunctionQuotient
(&a,&b);
66
}
67
68
FunctionConvolution
convolve
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
,
double
x0,
double
x1) {
69
return
FunctionConvolution
(&a,&b, x0, x1);
70
}
71
72
FunctionNegation
operator -
(
const
AbsFunction
&
a
) {
73
return
FunctionNegation
(&a);
74
}
75
76
unsigned
int
AbsFunction::dimensionality
()
const
{
77
return
1;
78
}
79
80
FunctionDirectProduct
operator %
(
const
AbsFunction
&
a
,
const
AbsFunction
&
b
) {
81
return
FunctionDirectProduct
(&a,&b);
82
}
83
84
ConstTimesFunction
operator *
(
const
AbsFunction
&op2,
double
c) {
85
return
ConstTimesFunction
(c, &op2);
86
}
87
88
ConstPlusFunction
operator +
(
const
AbsFunction
&op2,
double
c) {
89
return
ConstPlusFunction
(c,&op2);
90
}
91
92
ConstPlusFunction
operator -
(
const
AbsFunction
&op2,
double
c) {
93
return
ConstPlusFunction
(-c, &op2);
94
}
95
96
ConstTimesFunction
operator /
(
const
AbsFunction
&op2,
double
c) {
97
return
ConstTimesFunction
(1/c,&op2);
98
}
99
100
101
ConstTimesFunction
operator *
(
double
c,
const
AbsFunction
&op2) {
102
return
ConstTimesFunction
(c,&op2);
103
}
104
105
ConstPlusFunction
operator +
(
double
c,
const
AbsFunction
&op2) {
106
return
ConstPlusFunction
(c,&op2);
107
}
108
109
ConstMinusFunction
operator -
(
double
c,
const
AbsFunction
&op2) {
110
return
ConstMinusFunction
(c,&op2);
111
}
112
113
ConstOverFunction
operator /
(
double
c,
const
AbsFunction
&op2) {
114
return
ConstOverFunction
(c,&op2);
115
}
116
117
118
FunctionTimesParameter
operator *
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
119
return
FunctionTimesParameter
(&p, &f);
120
}
121
122
FunctionPlusParameter
operator +
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
123
return
FunctionPlusParameter
(&p, &f);
124
}
125
126
FunctionPlusParameter
operator -
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
127
GENPARAMETER
MinusP = -p;
128
return
FunctionPlusParameter
(&MinusP, &f);
129
130
}
131
132
FunctionTimesParameter
operator /
(
const
AbsFunction
&
f
,
const
AbsParameter
& p) {
133
GENPARAMETER
oneOverP = 1.0/p;
134
return
FunctionTimesParameter
(&oneOverP, &f);
135
}
136
137
FunctionTimesParameter
operator *
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
138
return
FunctionTimesParameter
(&p, &f);
139
}
140
141
FunctionPlusParameter
operator +
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
142
return
FunctionPlusParameter
(&p, &f);
143
}
144
145
FunctionPlusParameter
operator -
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
146
GENFUNCTION
MinusF = -
f
;
147
return
FunctionPlusParameter
(&p, &MinusF);
148
}
149
150
FunctionTimesParameter
operator /
(
const
AbsParameter
& p,
const
AbsFunction
&
f
) {
151
GENFUNCTION
oneOverF = 1.0/
f
;
152
return
FunctionTimesParameter
(&p, &oneOverF);
153
}
154
}
// namespace Genfun
Generated on Sun Jun 17 2012 08:08:26 for CLHEP by
1.8.1.1