Add dist ans Task 5 is done!
This commit is contained in:
parent
4a5c5ea41e
commit
2f21a20fd1
21 changed files with 970 additions and 37 deletions
49
2025.04.18/05Ex/solve.c
Normal file
49
2025.04.18/05Ex/solve.c
Normal file
|
@ -0,0 +1,49 @@
|
|||
#include "solve.h"
|
||||
#include "contin_func.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <float.h>
|
||||
|
||||
double fsin (double x, const double eps)
|
||||
{
|
||||
double answer;
|
||||
short flag = 1;
|
||||
|
||||
if (-x > DBL_EPSILON)
|
||||
{
|
||||
x = -x;
|
||||
flag = -1;
|
||||
}
|
||||
|
||||
if (x - M_PI*2 >= DBL_EPSILON)
|
||||
x = fmod(x, M_PI*2);
|
||||
|
||||
if (x - M_PI >= DBL_EPSILON)
|
||||
{
|
||||
x -= M_PI;
|
||||
flag *= -1;
|
||||
}
|
||||
|
||||
if (x - M_PI_2 >= DBL_EPSILON)
|
||||
{
|
||||
x -= M_PI_2;
|
||||
flag *= 2;
|
||||
}
|
||||
|
||||
if (abs(flag) == 2)
|
||||
{
|
||||
double cosinus, sinus;
|
||||
x /= 2;
|
||||
|
||||
cosinus = scos(x, eps);
|
||||
sinus = ssin(x, eps);
|
||||
|
||||
answer = ((flag > 0) - (flag < 0)) * (cosinus * cosinus - sinus * sinus);
|
||||
} else
|
||||
answer = flag * ssin(x, eps);
|
||||
|
||||
return answer;
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue