Go to the documentation of this file.
37 unsigned int j)
const=0;
61 unsigned int j)
const;
71 mutable double retVal;
72 mutable unsigned int nFunctionCalls;
90 unsigned int j)
const;
100 mutable double retVal;
101 mutable unsigned int nFunctionCalls;
113 void polint(std::vector<double>::iterator xArray, std::vector<double>::iterator yArray,
double x,
double & y,
double & deltay)
const;
172 c->
polint(h.begin()+
j-c->
K,
s.begin()+
j-c->
K,0.0,ss, dss);
173 if (fabs(dss) <= c->
EPS*fabs(ss)) {
179 h[
j+1]=h[
j]/xMult/xMult;
182 throw std::runtime_error(
"DefiniteIntegral: too many steps. No convergence");
187 double dif = fabs(
x-xArray[1]),dift;
188 std::vector<double> c(
K+1),d(
K+1);
190 for (
unsigned int i=1;
i<=
K;
i++) {
191 dift=fabs(
x-xArray[
i]);
199 for (
unsigned int m=1;m<
K;m++) {
200 for (
unsigned int i=1;
i<=
K-m;
i++) {
201 double ho = xArray[
i]-
x;
202 double hp= xArray[
i+m]-
x;
203 double w=c[
i+1]-d[
i];
207 <<
"Error in polynomial extrapolation"
213 deltay = 2*ns < (
K-m) ? c[ns+1]: d[ns--];
226 retVal = 0.5*(
b-
a)*(
function(
a)+
function(
b));
230 for (it=1,
j=1;
j<
n-1;
j++) it <<=1;
232 double del = (
b-
a)/tnm;
235 for (sum=0.0,
j=1;
j<=it;
j++,
x+=del) {
239 retVal = 0.5*(retVal+(
b-
a)*sum/tnm);
248 retVal = (
b-
a)*(
function((
a+
b)/2.0));
252 for (it=1,
j=1;
j<
n-1;
j++) it *=3;
254 double del = (
b-
a)/(3.0*tnm);
255 double ddel = del+del;
258 for (
j=1;
j<=it;
j++) {
265 retVal = (retVal+(
b-
a)*sum/tnm)/3.0;
XtMidpointQuadratureRule()
DefiniteIntegral(double a, double b, Type=CLOSED)
void setEpsilon(double eps)
void polint(std::vector< double >::iterator xArray, std::vector< double >::iterator yArray, double x, double &y, double &deltay) const
virtual double integrate(const AbsFunction &function, double a, double b, unsigned int j) const
void setMaxIter(unsigned int maxIter)
virtual unsigned int numFunctionCalls() const =0
DefiniteIntegral & operator=(const DefiniteIntegral &)
virtual unsigned int stepMultiplier() const
virtual double operator[](const AbsFunction &function) const
TrapezoidQuadratureRule()
virtual unsigned int numFunctionCalls() const
Signatures of Hep3Vector::rotate For equivalent ZOOM axis There is no harm in leaving this axis CLHEP has implemented a first forming an identity then rotating that by axis and I leave the CLHEP code alone people are of course free to use the ZOOM originated method with signature which I believe will be faster Return types for rotateZ CLHEP and PhysicsVectors each have these three and they are identical except that the ZOOM version returns a reference to while in CLHEP they return void Having methods that alter an object return a reference to that object is convenient for certain chained and costs nothing I don t wish to potentially break ZOOM user code for no good so I have made these CLHEP method conform to this convention There are a couple of other CLHEP rotate and which use the void return type
~TrapezoidQuadratureRule()
~XtMidpointQuadratureRule()
virtual unsigned int stepMultiplier() const
virtual unsigned int stepMultiplier() const =0
Methods applicble to containers of as in std::list< LorentzVector > s
virtual unsigned int numFunctionCalls() const
virtual double integrate(const AbsFunction &function, double a, double b, unsigned int j) const
void setMinOrder(unsigned int order)
any side effects of that construction would occur twice The semantics of throw x
virtual double integrate(const AbsFunction &function, double a, double b, unsigned int j) const =0
unsigned int nFunctionCalls
virtual ~QuadratureRule()
DefiniteIntegral::Type type
unsigned int numFunctionCalls() const