KrisLibrary  1.0.0
quadrature.h
Go to the documentation of this file.
1 #ifndef MATH_QUADRATURE_H
2 #define MATH_QUADRATURE_H
3 
4 #include "function.h"
5 
11 namespace Math {
14 
15 typedef Real (*QuadratureFunction) (RealFunction&, Real, Real);
16 
18 namespace Quadrature {
19 
21 Real Quadrature(RealFunction& f,const Real* c,const Real* x,int k);
22 void Quadrature(VectorFunction& f,const Real* c,const Real* x,int k,Vector& res);
23 
24 
27 Real trapezoidal(RealFunction& f, Real a, Real b);
28 Real trapezoidal(Real f0, Real f1);
29 
32 Real simpsons(RealFunction& f, Real a, Real b);
33 Real simpsons(Real f0, Real f1, Real f2);
34 
37 Real simpsons_3_8(RealFunction& f, Real a, Real b);
38 Real simpsons_3_8(Real f0, Real f1, Real f2, Real f3);
39 
42 Real NC4(RealFunction& f, Real a, Real b);
43 Real NC4(Real f0, Real f1, Real f2, Real f3, Real f4);
44 
50 extern const Real cGaussian2[1],xGaussian2[1];
51 extern const Real cGaussian3[2],xGaussian3[2];
52 extern const Real cGaussian4[2],xGaussian4[2];
53 extern const Real cGaussian5[3],xGaussian5[3];
54 extern const Real cGaussian6[3],xGaussian6[3];
55 extern const Real cGaussian7[4],xGaussian7[4];
56 extern const Real cGaussian8[4],xGaussian8[4];
57 extern const Real cGaussian10[5],xGaussian10[5];
58 
62 extern const Real cGaussian2_x_unit[2],xGaussian2_x_unit[2];
63 extern const Real cGaussian3_x_unit[3],xGaussian3_x_unit[3];
65 extern const Real cGaussian2_x2_unit[2],xGaussian2_x2_unit[2];
66 extern const Real cGaussian3_x2_unit[3],xGaussian3_x2_unit[3];
68 extern const Real cGaussian2_x1x_unit[2],xGaussian2_x1x_unit[2];
69 extern const Real cGaussian3_x1x_unit[3],xGaussian3_x1x_unit[3];
70 
72 Real Gaussian(RealFunction& f,int k);
73 Real Gaussian(RealFunction& f,Real a,Real b,int k);
74 
77 Real compositeTrapezoidal(RealFunction& f, Real a, Real b, int n);
78 
82 Real compositeSimpsons(RealFunction& f, Real a, Real b, int n);
83 
85 Real composite(QuadratureFunction q, RealFunction& f, Real a, Real b, int n);
86 
88 Real trapezoidal2D(RealFunction2& f, Real a, Real b, Real c, Real d);
89 
92 Real simpsons2D(RealFunction2& f, Real a, Real b, Real c, Real d);
93 
96 Real simpsons2D(RealFunction2& f, Real a, Real b, RealFunction& c, RealFunction& d);
97 
98 } //namespace Quadrature
100 } //namespace Math
101 
102 #endif
Real simpsons(RealFunction &f, Real a, Real b)
Definition: quadrature.cpp:38
Abstract base classes for function interfaces.
Real compositeTrapezoidal(RealFunction &f, Real a, Real b, int n)
Definition: quadrature.cpp:175
Real composite(QuadratureFunction q, RealFunction &f, Real a, Real b, int n)
composite integration for an arbitrary quadrature function
Definition: quadrature.cpp:209
Real trapezoidal2D(RealFunction2 &f, Real a, Real b, Real c, Real d)
integral[a,b]x[c,d] f dA = 1/4(b-a)(c-d) (f(a,c) + f(b,c) + f(a,d) + f(b,d)) + O(h^2) ...
Definition: quadrature.cpp:218
Real simpsons2D(RealFunction2 &f, Real a, Real b, Real c, Real d)
Definition: quadrature.cpp:224
Real NC4(RealFunction &f, Real a, Real b)
Definition: quadrature.cpp:63
Real Quadrature(RealFunction &f, const Real *c, const Real *x, int k)
General purpose summation routine, returns sum[i=0..k-1]ci*f(xi)
Definition: quadrature.cpp:9
Real trapezoidal(RealFunction &f, Real a, Real b)
Definition: quadrature.cpp:27
const Real cGaussian2[1]
Definition: quadrature.cpp:77
const Real cGaussian2_x_unit[2]
Definition: quadrature.cpp:94
Real simpsons_3_8(RealFunction &f, Real a, Real b)
Definition: quadrature.cpp:50
const Real cGaussian2_x2_unit[2]
f*x^2 on [0,1]
Definition: quadrature.cpp:100
const Real cGaussian2_x1x_unit[2]
f*x(x-1) on [0,1]
Definition: quadrature.cpp:106
Real Gaussian(RealFunction &f, int k)
Gaussian quadrature rule with k points on [-1,1], [a,b] respectively.
Definition: quadrature.cpp:119
Real compositeSimpsons(RealFunction &f, Real a, Real b, int n)
Definition: quadrature.cpp:192
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12