Syntaxe :
#include <cmath> double sin (double arg);
La fonction sin()
renvoie le sinus de arg
, où arg
est exprimé en
radians. La valeur de retour de sin()
sera dans l'intervalle [-1,1]. Si
arg
est infini, sin()
va renvoyer NAN
et lever une exception de
type virgule flottante.
Le C++ fournit également les implémentations suivantes :
#include <cmath> float sin (float arg); // identique à sinf() en C99 long double sin (long double arg); // identique à sinl() en C99
Une solution possible pour approximer la fonction sinus est d'utiliser les séries de Taylor en partant du fait que sin(x) = x - x3/3! + x5/5! - x7/7! + …, ce qui mène au code suivant :
long factrl (int n) { long la = 1; for (int i = 2; i <= n; i++) la *= i; return la; } float sin2 (float x) { int i; float y = x, r = x; for (int i = 0; i < 10; i++) { y *= -x*x; r += 1.0 / factrl( 1+2*(i+1) ) * y; } return r; } float sin (float theta) { float signe = 1, x = theta/M_PI; if (x < 0.0) { signe = -1; x = -x; } int i = static_cast<int>(x+0.5); float a = x-i; if ((i-i/2*2) != 0) signe = -signe; return signe * sin2(a*M_PI); }
Sujets connexes : acos, asin, atan, atan2, cos, cosh, sinh, tan, tanh