Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 | } |