contains rudimentary statistical functions
normstat.h@0:63c55a3cd73c, 2013-02-25 (annotated)
- Committer:
- bclaus
- Date:
- Mon Feb 25 19:41:26 2013 +0000
- Revision:
- 0:63c55a3cd73c
initial commit of stats library;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bclaus | 0:63c55a3cd73c | 1 | |
bclaus | 0:63c55a3cd73c | 2 | |
bclaus | 0:63c55a3cd73c | 3 | #ifndef __NORMSTAT_H |
bclaus | 0:63c55a3cd73c | 4 | #define __NORMSTAT_H |
bclaus | 0:63c55a3cd73c | 5 | #include "mbed.h" |
bclaus | 0:63c55a3cd73c | 6 | #include <cstdlib> // for rand |
bclaus | 0:63c55a3cd73c | 7 | #include <cmath> // for atan, sqrt, log, cos |
bclaus | 0:63c55a3cd73c | 8 | #include <algorithm> // for generate_n |
bclaus | 0:63c55a3cd73c | 9 | |
bclaus | 0:63c55a3cd73c | 10 | double const pi = 4*std::atan(1.0); |
bclaus | 0:63c55a3cd73c | 11 | //double const pi = 3.141592653589793; |
bclaus | 0:63c55a3cd73c | 12 | |
bclaus | 0:63c55a3cd73c | 13 | |
bclaus | 0:63c55a3cd73c | 14 | // simple function for normal distribution |
bclaus | 0:63c55a3cd73c | 15 | double normpdf(double x, double m, double s); //returns f(x|m,s) |
bclaus | 0:63c55a3cd73c | 16 | |
bclaus | 0:63c55a3cd73c | 17 | |
bclaus | 0:63c55a3cd73c | 18 | //Generates a normally distributed random number |
bclaus | 0:63c55a3cd73c | 19 | //taken from http://rosettacode.org/wiki/Random_numbers#C.2B.2B |
bclaus | 0:63c55a3cd73c | 20 | //on 21/02/2013 |
bclaus | 0:63c55a3cd73c | 21 | //by Brian Claus |
bclaus | 0:63c55a3cd73c | 22 | class normrand |
bclaus | 0:63c55a3cd73c | 23 | { |
bclaus | 0:63c55a3cd73c | 24 | public: |
bclaus | 0:63c55a3cd73c | 25 | normrand(double m, double s); |
bclaus | 0:63c55a3cd73c | 26 | |
bclaus | 0:63c55a3cd73c | 27 | double draw(); // returns a single normally distributed number |
bclaus | 0:63c55a3cd73c | 28 | double draw(double m, double s); // returns a single normally distributed number |
bclaus | 0:63c55a3cd73c | 29 | |
bclaus | 0:63c55a3cd73c | 30 | private: |
bclaus | 0:63c55a3cd73c | 31 | double mu, sigma; |
bclaus | 0:63c55a3cd73c | 32 | }; |
bclaus | 0:63c55a3cd73c | 33 | #endif |