floating point test

Dependencies:   mbed

Revision:
0:1d7e5ce49ede
Child:
1:48013e8906f5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jun 01 18:53:16 2017 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+
+#define LOOP_N  (10000)
+
+float buffer[LOOP_N];
+
+int main()
+{
+    Timer t;
+    printf("\r\nFloating Point Test\r\n");
+    printf("op\ttotal\t1-p\r\n");
+    printf("-------------------------------\r\n");
+    
+    // div
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = (float)i / LOOP_N;
+    }
+    t.stop();
+    int elapse = t.read_us();
+    printf("div\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+    
+    // sinf
+    t.reset();
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = sinf((float)i / LOOP_N);
+    }
+    t.stop();
+    elapse = t.read_us();
+    printf("sinf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+
+    // cosf
+    t.reset();
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = cosf((float)i / LOOP_N);
+    }
+    t.stop();
+    elapse = t.read_us();
+    printf("cosf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+
+    // expf
+    t.reset();
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = expf((float)i / LOOP_N);
+    }
+    t.stop();
+    elapse = t.read_us();
+    printf("expf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+    
+    // logf
+    t.reset();
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = logf((float)i / LOOP_N);
+    }
+    t.stop();
+    elapse = t.read_us();
+    printf("logf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+    
+    // sqrtf
+    t.reset();
+    t.start();
+    for (int i = 0; i < LOOP_N; i++) {
+        buffer[i] = sqrtf((float)i / LOOP_N);
+    }
+    t.stop();
+    elapse = t.read_us();
+    printf("sqrtf\t%d\t%f\r\n", elapse, (float)elapse / LOOP_N);
+        
+        
+    printf("\r\nEnd.\r\n");    
+}