diff --git a/fx_s2308_longlong.h b/fx_s2308_longlong.h
index e8ad94b259d314b9fabfa857610deca8d7c46e01..cce6b747b79afdcccfedaec865c296d47210576f 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 0000000000000000000000000000000000000000..7c84223c9bc2437d222a4478008e3b4d694d5f01
--- /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