diff --git a/test.c b/test.c
index 7e5b5ef59abb3497bac7f129bc382523d93f1738..50a2230936ecacba65eca2f2ffdf2c085ad0defb 100755
--- a/test.c
+++ b/test.c
@@ -1,176 +1,100 @@
 #include <stdio.h>
 #include "fx_s1615_double.h"
 #include "fx_1615_longlong.h"
-//#include <time.h>
-#include <limits.h>
-//static void fx_1615_longlong_mul1_test(void);
-//static void fx_1615_longlong_mul2_test(void);
-//static void fx_1615_longlong_mul3_test(void);
-//
-//static void fx_1615_longlong_mul1_test(void) {
-//	fx_s1615 divisor = 62764;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for (i = 0; i < 100000000; ++i) {
-//		a = FX_1615_LONGLONG_MUL1((i), (divisor));
-//	}
-//}
-//
-//static void fx_1615_longlong_mul2_test(void) {
-//	fx_s1615 divisor = 62764;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for (i = 0; i < 100000000; ++i) {
-//		a=FX_1615_LONGLONG_MUL2((i), (divisor));
-//	}
-//}
-//
-//static void fx_1615_longlong_mul3_test(void) {
-//	fx_s1615 divisor = 62764;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for ( i = 0; i < 100000000; ++i) {
-//		a=FX_1615_LONGLONG_MUL3((i), (divisor));
-//	}
-//}
-//
-//static void fx_1615_longlong_div01_test(void) {
-//	fx_s1615 divisor = 3194858;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for (i = 0; i < 100000000; ++i) {
-//		a=FX_1615_LONGLONG_DIV01((i),(divisor));
-//	}
-//}
-//
-//static void fx_1615_longlong_div02_test(void) {
-//	fx_s1615 divisor = 3194858;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for ( i = 0; i < 100000000; ++i) {
-//		a=FX_1615_LONGLONG_DIV02((i),(divisor));
-//	}
-//}
-//
-//static void fx_1615_longlong_div03_test(void) {
-//	fx_s1615 divisor = 3194858;
-//	fx_s1615 a = 0;
-//	int i=0;
-//	for ( i = 0; i < 100000000; ++i) {
-//		a=FX_1615_LONGLONG_DIV03((i),(divisor));
-//	}
-//}
 
-// static void fx_1615_longlong_div04_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV04((i),(divisor));
-// 	}
-// }
-
-// static void fx_1615_longlong_div05_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV05((i),(divisor));
-// 	}
-// }
+static void fx_1615_double_mul_test(void) {
+    fx_s1615 divisor = 62764;
+    fx_s1615 a = 0;
+    int i=0;
+    for (i = 0; i < 100000000; ++i) {
+        a = FX_S1615_MUL((i), (divisor));
+    }
+}
 
-// static void fx_1615_longlong_div06_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV06((i),(divisor));
-// 	}
-// }
 
-// static void fx_1615_longlong_div07_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV07((i),(divisor));
-// 	}
-// }
+static void fx_1615_longlong_mul1_test(void) {
+	fx_s1615 divisor = 62764;
+	fx_s1615 a = 0;
+	int i=0;
+	for (i = 0; i < 100000000; ++i) {
+		a = FX_1615_LONGLONG_MUL1((i), (divisor));
+	}
+}
 
-// static void fx_1615_longlong_div08_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV08((i),(divisor));
-// 	}
-// }
+static void fx_1615_longlong_mul2_test(void) {
+	fx_s1615 divisor = 62764;
+	fx_s1615 a = 0;
+	int i=0;
+	for (i = 0; i < 100000000; ++i) {
+		a=FX_1615_LONGLONG_MUL2((i), (divisor));
+	}
+}
 
-// static void fx_1615_longlong_div09_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV09((i),(divisor));
-// 	}
-// }
+static void fx_1615_longlong_mul3_test(void) {
+	fx_s1615 divisor = 62764;
+	fx_s1615 a = 0;
+	int i=0;
+	for ( i = 0; i < 100000000; ++i) {
+		a=FX_1615_LONGLONG_MUL3((i), (divisor));
+	}
+}
 
-// static void fx_1615_longlong_div10_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV10((i),(divisor));
-// 	}
-// }
+static void fx_1615_double_test(void) {
+    fx_s1615 divisor = 3194858;
+    fx_s1615 a = 0;
+    int i=0;
+    for (i = 0; i < 100000000; ++i) {
+        a=FX_S1615_DIV((i),(divisor));
+    }
+}
 
-// static void fx_1615_longlong_div11_test(void) {
-// 	fx_s1615 divisor = 3194858;
-// 	fx_s1615 a = 0;
-// 	for (int i = 0; i < 100000000; ++i) {
-// 		a=FX_1615_LONGLONG_DIV11((i),(divisor));
-// 	}
-// }
+static void fx_1615_longlong_div01_test(void) {
+	fx_s1615 divisor = 3194858;
+	fx_s1615 a = 0;
+	int i=0;
+	for (i = 0; i < 100000000; ++i) {
+		a=FX_1615_LONGLONG_DIV01((i),(divisor));
+	}
+}
 
-int main(void) {
-//	const fx_s1615 fx_1615_SinTable[91] = { 0, 571, 1143, 1714, 2285, 2855,
-//			3425, 3993, 4560, 5126, 5690, 6252, 6812, 7371, 7927, 8480, 9032,
-//			9580, 10125, 10668, 11207, 11743, 12275, 12803, 13327, 13848,
-//			14364, 14876, 15383, 15886, 16384, 16876, 17364, 17846, 18323,
-//			18794, 19260, 19720, 20173, 20621, 21062, 21497, 21926, 22347,
-//			22762, 23170, 23571, 23964, 24351, 24730, 25101, 25465, 25821,
-//			26169, 26509, 26841, 27165, 27481, 27788, 28087, 28377, 28659,
-//			28932, 29196, 29451, 29697, 29935, 30163, 30381, 30591, 30791,
-//			30982, 31164, 31336, 31498, 31651, 31794, 31928, 32051, 32165,
-//			32270, 32364, 32449, 32523, 32588, 32643, 32688, 32723, 32748,
-//			32763, 32768
-//	};
+static void fx_1615_longlong_div02_test(void) {
+	fx_s1615 divisor = 3194858;
+	fx_s1615 a = 0;
+	int i=0;
+	for ( i = 0; i < 100000000; ++i) {
+		a=FX_1615_LONGLONG_DIV02((i),(divisor));
+	}
+}
 
-//	fx_1615_longlong_mul1_test();
-//	fx_1615_longlong_mul2_test();
-//	fx_1615_longlong_mul3_test();
-//
-//
-//	fx_1615_longlong_div01_test();
-//	fx_1615_longlong_div02_test();
-//	fx_1615_longlong_div03_test();
-	// fx_1615_longlong_div04_test();
-	// fx_1615_longlong_div05_test();
-	// fx_1615_longlong_div06_test();
-	// fx_1615_longlong_div07_test();
-	// fx_1615_longlong_div08_test();
-	// fx_1615_longlong_div09_test();
-	// fx_1615_longlong_div10_test();
-	// fx_1615_longlong_div11_test();
+static void fx_1615_longlong_div03_test(void) {
+	fx_s1615 divisor = 3194858;
+	fx_s1615 a = 0;
+	int i=0;
+	for ( i = 0; i < 100000000; ++i) {
+		a=FX_1615_LONGLONG_DIV03((i),(divisor));
+	}
+}
 
 
-	/*
-	 for (int i = 0; i < 10; ++i) {
-	 fx_s1615 k = 0x50000;
-	 fx_s1615 in;
-	 scanf("%x", &in);
+int main(void) {
 
-	 printf("DIV1: %x\n", (fx_s1615)FX_1615_LONGLONG_DIV1(k, in));
-	 printf("DIV2: %x\n", (fx_s1615)FX_1615_LONGLONG_DIV2(k, in));
-	 printf("DIV3: %x\n", (fx_s1615)FX_1615_LONGLONG_DIV3(k, in));
-	 }
-	 */
+#ifdef MULTIPLE_TIME_TEST
+    fx_1615_double_mul_test();
+	fx_1615_longlong_mul1_test();
+	fx_1615_longlong_mul2_test();
+	fx_1615_longlong_mul3_test();
+#endif
+
+    
+#ifdef DIVISION_TIME_TEST
+    fx_1615_double_test();
+	fx_1615_longlong_div01_test();
+	fx_1615_longlong_div02_test();
+	fx_1615_longlong_div03_test();
+#endif
 
 	// 20.08.16 sine 함수 테스트
-	/*
+#ifdef SIN_PRECISION_TEST
 	 fx_s1615 fa1 = 0x002D0000;
 	 fx_s1615 fa2 = 0x00590000;
 	 fx_s1615 fa3 = 0x00B40000;
@@ -185,8 +109,10 @@ int main(void) {
 	 puts("");
 	 }
 	 }
-	 */
+#endif
+
 
+#ifdef FX_MUL_TEST
 	 double da;
 	 double db;
 	 scanf("%lf %lf",&da, &db);
@@ -197,6 +123,10 @@ int main(void) {
 
 	 printf("Test  multiplication\n");
 
+    fc = FX_S1615_MUL(fa, fb);
+    printf("Exact answer = %f func result = %f, error = %f\n",da*db, FX_S1615_INT_TO_DOUBLE(fc),
+    da*db - FX_S1615_INT_TO_DOUBLE(fc));
+    
 	 fc =FX_1615_LONGLONG_MUL1(fa,fb);
 	 printf("Exact answer = %f func result = %f, error = %f\n",da*db, FX_S1615_INT_TO_DOUBLE(fc),
 	 da*db - FX_S1615_INT_TO_DOUBLE(fc));
@@ -208,8 +138,21 @@ int main(void) {
 	 fc =FX_1615_LONGLONG_MUL3(fa,fb);
 	 printf("Exact answer = %f func result = %f, error = %f\n",da*db, FX_S1615_INT_TO_DOUBLE(fc),
 	 da*db - FX_S1615_INT_TO_DOUBLE(fc));
-
+#endif
+    
+#ifdef FX_DIV_TEST
+        double da;
+        double db;
+        scanf("%lf %lf",&da, &db);
+
+        fx_s1615 fa,fb,fc;
+        fa =FX_S1615_DOUBLE_TO_INT(da);
+        fb =FX_S1615_DOUBLE_TO_INT(db);
 	 printf("\nTest division\n");
+    fc =FX_S1615_DIV(fa,fb);
+    printf("Exact answer = %f func result = %f, error = %f\n",da/db, FX_S1615_INT_TO_DOUBLE(fc),
+    da/db - FX_S1615_INT_TO_DOUBLE(fc));
+    
 	 fc =FX_1615_LONGLONG_DIV01(fa,fb);
 	 printf("Exact answer = %f func result = %f, error = %f\n",da/db, FX_S1615_INT_TO_DOUBLE(fc),
 	 da/db - FX_S1615_INT_TO_DOUBLE(fc));
@@ -221,44 +164,8 @@ int main(void) {
 	 fc =FX_1615_LONGLONG_DIV03(fa,fb);
 	 printf("Exact answer = %f func result = %f, error = %f\n",da/db, FX_S1615_INT_TO_DOUBLE(fc),
 	 da/db - FX_S1615_INT_TO_DOUBLE(fc));
+#endif
 
-
-	/*
-	 clock_t start = clock();
-	 volatile long long sum = 0;
-	 for(int i = 0 ; i < INT_MAX ; i++) {
-
-	 double a = 20.0, b = 30.0;
-	 fx_s1615 fxa = FX_S1615_DOUBLE_TO_INT(a), fxb = FX_S1615_DOUBLE_TO_INT(b);
-	 #ifndef TEST
-	 printf("%f %d %f %d\n", a, fxa, b, fxb);
-	 #endif
-	 fx_s1615 fxc = FX_S1615_DIV(fxa, fxb);
-	 #ifndef TEST
-	 printf("%d %f\n", fxc, FX_S1615_INT_TO_DOUBLE(fxc));
-	 #endif
-	 double d = 50.0;
-	 fx_s1615 fxd = FX_S1615_DOUBLE_TO_INT(d);
-	 #ifndef TEST
-	 printf("%f %f\n", FX_S1615_INT_TO_DOUBLE(fxd), FX_S1615_INT_TO_DOUBLE(sqrt_fx_s1615_int(fxd)));
-	 #endif
-	 double e = 3.0;
-	 fx_s1615 fxe = FX_S1615_DOUBLE_TO_INT(e);
-	 #ifndef TEST
-	 printf("%f %f\n", FX_S1615_INT_TO_DOUBLE(fxe), FX_S1615_INT_TO_DOUBLE(power_fx_s1615_int(fxe, 4)));
-	 #endif
-	 double f = 30.0;
-	 fx_s1615 fxf = FX_S1615_DOUBLE_TO_INT(f);
-	 #ifndef TEST
-	 printf("%f %f\n", FX_S1615_INT_TO_DOUBLE(fxf), FX_S1615_INT_TO_DOUBLE(sine_fx_s1615_int(fxf)));
-	 #endif
-	 sum = fxa + fxb + fxc + fxd + fxe + fxf;
-	 }
-	 clock_t end = clock();
-
-	 printf("Dummy sum: %lld\n", sum);
-
-	 printf("Total run time: %lf\n", (double)(end - start) / CLOCKS_PER_SEC);
-	 */
+	
 	return 0;
 }