📄 sinxcosx.c
字号:
float float_sin(float a)
{
float sinResult = 0;
if((a<-FLOAT_ERROR)||(a>=PI2)) //判断a是否在0到2PI之间
{
a = Trans_2PIRad(a);
}
sinResult = funFloatSin(a);
return sinResult;
}
float funFloatSin(float fa)//该函数用来求单精度实型变量的正弦值
{
double a=(double)fa,sin_a=a,term_n=a;
float fsin_a;
uint32_t n=1;
for(;term_n>SIN_ERROR||term_n<-SIN_ERROR;)
{
term_n=-term_n*a*a/(2*n*(2*n+1));
sin_a=sin_a+term_n;
n++;
}
fsin_a=(float)sin_a;
return fsin_a;
}
float float_cos(float a)
{
float cosResult = 0;
if((a<-FLOAT_ERROR)||(a>=PI2)) //判断a是否在0到2PI之间
{
a = Trans_2PIRad(a);
}
cosResult = funFloatCos(a);
return cosResult;
}
float funFloatCos(float fa)//该函数用来求单精度实型变量的余弦值
{
/*待添加*/
return 0;
}
float float_tan(float a)
{
return 0;
}
float Trans_PIRad (float a)
{
double da = (double)a;
int32_t k;
if(a<-FLOAT_ERROR)
{
k=(int32_t)(-da/(double)PI);
da = da + (k+1)*PI;
a = (float)da;
}
else
{
if(a>=PI)
{
k=(int32_t)(da/(double)PI);
da = da - k*PI;
a = (float)da;
}
}
return a;
}
float Trans_2PIRad (float a)
{
double da = (double)a;
int32_t k;
if(a<-FLOAT_ERROR)
{
k=(int32_t)(-da/(double)PI2);
da = da + (k+1)*PI2;
a = (float)da;
}
else
{
if(a>=PI2)
{
k=(int32_t)(da/(double)PI2);
da = da - k*PI2;
a = (float)da;
}
}
return a;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -