Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- long double s21_cos(double x) {
- long double result;
- if (s21_isnan(x) || s21_isinf(x)) {
- result = NAN; // Для бесконечных значений результат не определен
- } else {
- // Приведение угла к диапазону [-pi, pi]
- while (x > s21_M_PI) {
- x -= 2 * s21_M_PI;
- }
- while (x < -s21_M_PI) {
- x += 2 * s21_M_PI;
- }
- result = 1.0;
- long double term = 1.0;
- long double sign = -1.0;
- long double delimoe, delitel;
- int iteration_n = 0;
- for (int n = 2; s21_fabs(term) > 1e-20; n += 2) {
- delimoe=x*x;
- delitel=(n*(n-1));
- term = term * delimoe / delitel;
- result += sign * term;
- sign *= -1.0;
- iteration_n++;
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement