floating point test

Dependencies:   mbed

main.cpp

Committer:
ryood
Date:
2017-06-01
Revision:
0:1d7e5ce49ede
Child:
1:48013e8906f5

File content as of revision 0:1d7e5ce49ede:

#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");    
}