いろいろなテクニック.Nucleo と DISCO-F746 用.
Dependencies: Array_Matrix mbed
FunctionObject.hpp
- Committer:
- MikamiUitOpen
- Date:
- 2017-10-15
- Revision:
- 0:bb939e0bc6e2
- Child:
- 1:bbb9f0c3e523
File content as of revision 0:bb939e0bc6e2:
class Func { public: virtual ~Func() {} virtual float operator()(float) = 0; }; float Integrate(Func &f, float a, float b) { const int N = 1000; float step = (b - a)/N; float s = 0.0f; while(a < b) { s += f(a)*step; a += step; } return s; } float aFunc1(float x) { return x; } float aFunc2(float x) { return x*x; } class DerivFunc: public Func { public: DerivFunc(float (*f)(float)) : f_(f) {} virtual float operator()(float d) { return f_(d); } private: float (*f_)(float); }; void MyFunctionObject() { DerivFunc fx1(aFunc1); float area = Integrate(fx1, 0.0, 1.0); printf("\r\nArea = %f\r\n", area); DerivFunc fx2(aFunc2); area = Integrate(fx2, 0.0, 1.0); printf("Area = %f\r\n", area); }