Skip to content
Snippets Groups Projects
Commit de5ef352 authored by Choi Jinyoung's avatar Choi Jinyoung
Browse files

Merge branch 'function2' into 'master'

Function2

See merge request !3
parents dd0e0de0 cd5931ab
No related branches found
No related tags found
1 merge request!3Function2
#include "fx_s2308_double.h"
#include <math.h>
#define PI 3.1415926535897
#define TO_RADIAN(a) (a*(PI/180))
fx_s2308 fx_sine(fx_s2308 a){
fx_s2308 fx_s2308_double_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){
fx_s2308 fx_s2308_double_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){
fx_s2308 fx_s2308_double_pow(fx_s2308 a, double n){
double f_a=FX_TO_DOUBLE(a);
return DOUBLE_TO_FX(pow(f_a,n));
}
......@@ -4,15 +4,16 @@ typedef double fx_s2308;
#define FX_TO_FLOAT(a) ((float) (a/(256.0)))
#define FX_TO_INT(a) ((int) (a/(256.0)))
#define FX_TO_SHORT(a) ((short) (a/(256.0)))
#define DOUBLE_TO_FX(a) (((int)(a*(256.0))))
#define DOUBLE_TO_FX(a) (((double)(a*(256.0))))
#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))
#define PI 3.141592
#define FX_PI (INT_TO_FX(PI))
#define FX_PI (DOUBLE_TO_FX(PI))
#define FX_INV_PI (DOUBLE_TO_FX(1/PI))
fx_s2308 fx_sine(fx_s2308 a);
fx_s2308 fx_sqrt(fx_s2308 a);
fx_s2308 fx_pow(fx_s2308 a, double n);
fx_s2308 fx_s2308_double_sine(fx_s2308 a);
fx_s2308 fx_s2308_double_sqrt(fx_s2308 a);
fx_s2308 fx_s2308_double_pow(fx_s2308 a, double n);
\ No newline at end of file
......@@ -7,25 +7,45 @@ int main() {
fx_s2308 output = FX_MUL(a, b);
printf("%lf\n",output);
printf("===sine test===\n");
printf("\n===Calculation: Addition===\n");
printf("%f + %f = %f\n",a,b,FX_ADD(a,b));
printf("\n===Calculation: Subtraction===\n");
printf("%f - %lf = %f\n",a,b,FX_SUB(a,b));
printf("\n===Calculation: Multiplication===\n");
printf("%f * %lf = %f\n",a,b,FX_MUL(a,b));
printf("\n===Calculation: Division===\n");
printf("%f / %lf = %f\n",a,b,FX_DIV(a,b));
printf("\n===Function: Sine===\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));
fx_s2308 sine_a1=fx_s2308_double_sine(f_a1);
printf("sine(%lf)의 fx_2308 값: %lf, Double로 변환: %lf\n",a1,f_a1,FX_TO_DOUBLE(sine_a1));
printf("===sqrt test===\n");
printf("\n===Function: Sqrt===\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");
fx_s2308 sqrt_a2=fx_s2308_double_sqrt(f_a2);
printf("sqrt(%lf)의 fx_2308 값: %lf, Double로 변환: %lf\n",a2,f_a2,FX_TO_DOUBLE(sqrt_a2));
printf("\n===Function: Power===\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));
fx_s2308 pow_a3=fx_s2308_double_pow(f_a3,2.0);
printf("%lf의 2.0 제곱의 fx_2308 값: %lf, Double로 변환: %lf\n",a3,f_a3,FX_TO_DOUBLE(pow_a3));
printf("\n===Conversion: fx to double===\n");
printf("fx_s2308 %lf is changed into double %lf\n", a, FX_TO_DOUBLE(a));
printf("\n===Conversion: fx to float===\n");
printf("fx_s2308 %lf is changed into float %f\n", a, FX_TO_FLOAT(a));
printf("\n===Conversion: fx to int===\n");
printf("fx_s2308 %lf is changed into double %d\n", a, FX_TO_INT(a));
printf("\n===Conversion: fx to short===\n");
printf("fx_s2308 %lf is changed into double %d\n", a, FX_TO_SHORT(a));
printf("\n===Constant: PI===\n");
printf("PI의 fx_2308 값: %lf\n",FX_PI);
printf("\n===Constant: Inverse PI===\n");
printf("1/PI의 fx_2308 값: %lf\n",FX_INV_PI);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment