Advertisement
Guest User

cos

a guest
Dec 15th, 2023
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. long double s21_cos(double x) {
  2. long double result;
  3. if (s21_isnan(x) || s21_isinf(x)) {
  4. result = NAN; // Для бесконечных значений результат не определен
  5. } else {
  6. // Приведение угла к диапазону [-pi, pi]
  7. while (x > s21_M_PI) {
  8. x -= 2 * s21_M_PI;
  9. }
  10. while (x < -s21_M_PI) {
  11. x += 2 * s21_M_PI;
  12. }
  13.  
  14. result = 1.0;
  15. long double term = 1.0;
  16. long double sign = -1.0;
  17. long double delimoe, delitel;
  18. int iteration_n = 0;
  19.  
  20. for (int n = 2; s21_fabs(term) > 1e-20; n += 2) {
  21. delimoe=x*x;
  22. delitel=(n*(n-1));
  23. term = term * delimoe / delitel;
  24. result += sign * term;
  25. sign *= -1.0;
  26. iteration_n++;
  27. }
  28. }
  29. return result;
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement