Ryo Od
/
FloatingPointTest
floating point test
main.cpp@0:1d7e5ce49ede, 2017-06-01 (annotated)
- Committer:
- ryood
- Date:
- Thu Jun 01 18:53:16 2017 +0000
- Revision:
- 0:1d7e5ce49ede
- Child:
- 1:48013e8906f5
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ryood | 0:1d7e5ce49ede | 1 | #include "mbed.h" |
ryood | 0:1d7e5ce49ede | 2 | |
ryood | 0:1d7e5ce49ede | 3 | #define LOOP_N (10000) |
ryood | 0:1d7e5ce49ede | 4 | |
ryood | 0:1d7e5ce49ede | 5 | float buffer[LOOP_N]; |
ryood | 0:1d7e5ce49ede | 6 | |
ryood | 0:1d7e5ce49ede | 7 | int main() |
ryood | 0:1d7e5ce49ede | 8 | { |
ryood | 0:1d7e5ce49ede | 9 | Timer t; |
ryood | 0:1d7e5ce49ede | 10 | printf("\r\nFloating Point Test\r\n"); |
ryood | 0:1d7e5ce49ede | 11 | printf("op\ttotal\t1-p\r\n"); |
ryood | 0:1d7e5ce49ede | 12 | printf("-------------------------------\r\n"); |
ryood | 0:1d7e5ce49ede | 13 | |
ryood | 0:1d7e5ce49ede | 14 | // div |
ryood | 0:1d7e5ce49ede | 15 | t.start(); |
ryood | 0:1d7e5ce49ede | 16 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 17 | buffer[i] = (float)i / LOOP_N; |
ryood | 0:1d7e5ce49ede | 18 | } |
ryood | 0:1d7e5ce49ede | 19 | t.stop(); |
ryood | 0:1d7e5ce49ede | 20 | int elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 21 | printf("div\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 22 | |
ryood | 0:1d7e5ce49ede | 23 | // sinf |
ryood | 0:1d7e5ce49ede | 24 | t.reset(); |
ryood | 0:1d7e5ce49ede | 25 | t.start(); |
ryood | 0:1d7e5ce49ede | 26 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 27 | buffer[i] = sinf((float)i / LOOP_N); |
ryood | 0:1d7e5ce49ede | 28 | } |
ryood | 0:1d7e5ce49ede | 29 | t.stop(); |
ryood | 0:1d7e5ce49ede | 30 | elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 31 | printf("sinf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 32 | |
ryood | 0:1d7e5ce49ede | 33 | // cosf |
ryood | 0:1d7e5ce49ede | 34 | t.reset(); |
ryood | 0:1d7e5ce49ede | 35 | t.start(); |
ryood | 0:1d7e5ce49ede | 36 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 37 | buffer[i] = cosf((float)i / LOOP_N); |
ryood | 0:1d7e5ce49ede | 38 | } |
ryood | 0:1d7e5ce49ede | 39 | t.stop(); |
ryood | 0:1d7e5ce49ede | 40 | elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 41 | printf("cosf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 42 | |
ryood | 0:1d7e5ce49ede | 43 | // expf |
ryood | 0:1d7e5ce49ede | 44 | t.reset(); |
ryood | 0:1d7e5ce49ede | 45 | t.start(); |
ryood | 0:1d7e5ce49ede | 46 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 47 | buffer[i] = expf((float)i / LOOP_N); |
ryood | 0:1d7e5ce49ede | 48 | } |
ryood | 0:1d7e5ce49ede | 49 | t.stop(); |
ryood | 0:1d7e5ce49ede | 50 | elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 51 | printf("expf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 52 | |
ryood | 0:1d7e5ce49ede | 53 | // logf |
ryood | 0:1d7e5ce49ede | 54 | t.reset(); |
ryood | 0:1d7e5ce49ede | 55 | t.start(); |
ryood | 0:1d7e5ce49ede | 56 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 57 | buffer[i] = logf((float)i / LOOP_N); |
ryood | 0:1d7e5ce49ede | 58 | } |
ryood | 0:1d7e5ce49ede | 59 | t.stop(); |
ryood | 0:1d7e5ce49ede | 60 | elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 61 | printf("logf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 62 | |
ryood | 0:1d7e5ce49ede | 63 | // sqrtf |
ryood | 0:1d7e5ce49ede | 64 | t.reset(); |
ryood | 0:1d7e5ce49ede | 65 | t.start(); |
ryood | 0:1d7e5ce49ede | 66 | for (int i = 0; i < LOOP_N; i++) { |
ryood | 0:1d7e5ce49ede | 67 | buffer[i] = sqrtf((float)i / LOOP_N); |
ryood | 0:1d7e5ce49ede | 68 | } |
ryood | 0:1d7e5ce49ede | 69 | t.stop(); |
ryood | 0:1d7e5ce49ede | 70 | elapse = t.read_us(); |
ryood | 0:1d7e5ce49ede | 71 | printf("sqrtf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N); |
ryood | 0:1d7e5ce49ede | 72 | |
ryood | 0:1d7e5ce49ede | 73 | |
ryood | 0:1d7e5ce49ede | 74 | printf("\r\nEnd.\r\n"); |
ryood | 0:1d7e5ce49ede | 75 | } |