From 461b19e421d9e861d2242a1f2f94f8a8e2ad1e18 Mon Sep 17 00:00:00 2001 From: Seungsu Baek <gnup@ajou.ac.kr> Date: Wed, 19 Aug 2020 02:50:38 +0900 Subject: [PATCH] add performance test --- fx_s2308_longlong.h | 12 +++---- ptest.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 ptest.c diff --git a/fx_s2308_longlong.h b/fx_s2308_longlong.h index e8ad94b..cce6b74 100644 --- a/fx_s2308_longlong.h +++ b/fx_s2308_longlong.h @@ -2,13 +2,13 @@ #define FX32_180 0x0000B400 #define FX32_360 0x00016800 -#define fx_2308_l_mul(a,b) (int)(((long long)(a)*(b)) >> 8) -#define fx_2308_l_mul2(a,b) (int)(((long long)(a>>4)*(b>>4))) -#define fx_2308_l_mul3(a,b) (int)(((a)*(b)) >> 8) -#define fx_2308_l_mul4(a,b) (int)(((a>>4)*(b>>4))) +#define fx_s2308_l_mul(a,b) (int)(((long long)(a)*(b)) >> 8) +#define fx_s2308_l_mul2(a,b) (int)(((long long)(a>>4)*(b>>4))) +#define fx_s2308_l_mul3(a,b) (int)(((a)*(b)) >> 8) +#define fx_s2308_l_mul4(a,b) (int)(((a>>4)*(b>>4))) -#define fx_s2308_l_div1 (int)((long long)(a)/(b)) -#define fx_s2308_l_div2 (int)((a<<8)/(b)) +#define fx_s2308_l_div1(a,b) (int)((long long)(a)/(b)) +#define fx_s2308_l_div2(a,b) (int)((a<<8)/(b)) typedef int fx_s2308; typedef long fixed32; diff --git a/ptest.c b/ptest.c new file mode 100644 index 0000000..7c84223 --- /dev/null +++ b/ptest.c @@ -0,0 +1,81 @@ +#include "fx_s2308_double.h" +#include "fx_s2308_longlong.h" +#include <stdio.h> +#define MAX_NUM 1000000 + + + +long long double_mul_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += FX_MUL(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long longlong_mul_1_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_mul(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + + +long long longlong_mul_2_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_mul2(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long longlong_mul_3_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_mul3(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long longlong_mul_4_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_mul4(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long double_div_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += FX_MUL(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long longlong_div_1_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_div1(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +long long longlong_div_2_test(){ + long long temp = 0; + for(int i = 1; i < MAX_NUM; i++){ + temp += fx_s2308_l_div2(DOUBLE_TO_FX(i), DOUBLE_TO_FX(i)); + } + return temp; +} + +int main(){ + + + printf("%lld %lld %lld %lld %lld\n", double_mul_test(), longlong_mul_1_test(), longlong_mul_2_test(), longlong_mul_3_test(), longlong_mul_4_test()); + + printf("%lld %lld %lld\n", double_div_test(), longlong_div_1_test(), longlong_div_2_test()); + + return 0; +} \ No newline at end of file -- GitLab