diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..c08a3260ef0865d4b98c8a1ed83fb23b1bb496d2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.out +*.exe diff --git a/fx_s2308_double.c b/fx_s2308_double.c index 9034b54a90d7f1a17ff4bdff787ddb5522eb3307..185fe35db82db92fa1f676f084d5b9e9e14af081 100644 --- a/fx_s2308_double.c +++ b/fx_s2308_double.c @@ -1,2 +1,19 @@ +#include "fx_s2308_double.h" #include <math.h> -typedef double fx_s2308; + +#define PI 3.1415926535897 +#define to_radian(a) (a*(PI/180)) + +fx_s2308 fx_sine(fx_s2308 a){ + double f_a=fx_to_double(a); + f_a=to_radian(f_a); + return double_to_fx(sin(f_a)); +} +fx_s2308 fx_sqrt(fx_s2308 a){ + double f_a=fx_to_double(a); + return double_to_fx(sqrt(f_a)); +} +fx_s2308 fx_pow(fx_s2308 a, double n){ + double f_a=fx_to_double(a); + return double_to_fx(pow(f_a,n)); +} diff --git a/fx_s2308_double.h b/fx_s2308_double.h index 24d61e015dfe62816f3ea05fdf851c94703cbb0a..6236b0946856664e48ffcc82921276ac6db292f7 100644 --- a/fx_s2308_double.h +++ b/fx_s2308_double.h @@ -5,4 +5,9 @@ typedef double fx_s2308; #define fx_add(a,b) (a+b) #define fx_sub(a,b) (a-b) #define fx_mul(a,b) double_to_fx((fx_to_double(a)*fx_to_double(b))) -#define fx_div(a,b) double_to_fx((fx_to_double(a)/fx_to_double(b))) \ No newline at end of file +#define fx_div(a,b) double_to_fx((fx_to_double(a)/fx_to_double(b))) + +fx_s2308 fx_sine(fx_s2308 a); +fx_s2308 fx_sqrt(fx_s2308 a); +fx_s2308 fx_power(fx_s2308 a, double n); + diff --git a/test.c b/test.c index a1b7c25f71335d47aedcd03eb20ec3a943af6322..f20dc2e33edc6aa65de1ec0aa31168027c2b26c4 100644 --- a/test.c +++ b/test.c @@ -1,11 +1,31 @@ #include <stdio.h> #include "fx_s2308_double.h" -typedef double fx_s2308; int main() { fx_s2308 a = 200; fx_s2308 b = 100; fx_s2308 output = fx_mul(a, b); - printf("%lf",output); + printf("%lf\n",output); + + printf("===sine test===\n"); + double a1=30.0; + fx_s2308 f_a1=double_to_fx(a1); + fx_s2308 sine_a1=fx_sine(f_a1); + printf("%lf %lf %lf\n",a1,f_a1,fx_to_double(sine_a1)); + + printf("===sqrt test===\n"); + double a2=100.0; + fx_s2308 f_a2=double_to_fx(a2); + fx_s2308 sqrt_a2=fx_sqrt(f_a2); + printf("%lf %lf %lf\n",a2,f_a2,fx_to_double(sqrt_a2)); + + printf("===power test===\n"); + double a3=64.0; + fx_s2308 f_a3=double_to_fx(a3); + fx_s2308 pow_a3=fx_pow(f_a3,2.0); + printf("%lf %lf %lf\n",a3,f_a3,fx_to_double(pow_a3)); + + + return 0; -} \ No newline at end of file +}