The library includes its own trigonometric functions in order to provide consistency across platforms and reliable error estimates.  These functions are declared in the header file gsl_sf_trig.h.

Circular Trigonometric Functions
--------------------------------

 -- Function: double gsl_sf_sin (double X)
 -- Function: int gsl_sf_sin_e (double X, gsl_sf_result * RESULT)
     These routines compute the sine function \sin(x).

 -- Function: double gsl_sf_cos (double X)
 -- Function: int gsl_sf_cos_e (double X, gsl_sf_result * RESULT)
     These routines compute the cosine function \cos(x).

 -- Function: double gsl_sf_hypot (double X, double Y)
 -- Function: int gsl_sf_hypot_e (double X, double Y, gsl_sf_result * RESULT)
     These routines compute the hypotenuse function $\sqrtx^2 + y^2$ \sqrt{x^2 + y^2} avoiding overflow and underflow.

 -- Function: double gsl_sf_sinc (double X)
 -- Function: int gsl_sf_sinc_e (double X, gsl_sf_result * RESULT)
     These routines compute \sinc(x) = \sin(\pi x) / (\pi x) for any value of X.

Trigonometric Functions for Complex Arguments
---------------------------------------------

 -- Function: int gsl_sf_complex_sin_e (double ZR, double ZI, gsl_sf_result * SZR, gsl_sf_result * SZI)
     This function computes the complex sine, \sin(z_r + i z_i) storing the real and imaginary parts in SZR, SZI.

 -- Function: int gsl_sf_complex_cos_e (double ZR, double ZI, gsl_sf_result * CZR, gsl_sf_result * CZI)
     This function computes the complex cosine, \cos(z_r + i z_i) storing the real and imaginary parts in SZR, SZI.

 -- Function: int gsl_sf_complex_logsin_e (double ZR, double ZI, gsl_sf_result * LSZR, gsl_sf_result * LSZI)
     This function computes the logarithm of the complex sine, \log(\sin(z_r + i z_i)) storing the real and imaginary parts in SZR, SZI.

Hyperbolic Trigonometric Functions
----------------------------------

 -- Function: double gsl_sf_lnsinh (double X)
 -- Function: int gsl_sf_lnsinh_e (double X, gsl_sf_result * RESULT)
     These routines compute \log(\sinh(x)) for x > 0.

 -- Function: double gsl_sf_lncosh (double X)
 -- Function: int gsl_sf_lncosh_e (double X, gsl_sf_result * RESULT)
     These routines compute \log(\cosh(x)) for any X.

Conversion Functions
--------------------

 -- Function: int gsl_sf_polar_to_rect (double R, double THETA, gsl_sf_result * X, gsl_sf_result * Y);
     This function converts the polar coordinates (R,THETA) to rectilinear coordinates (X,Y), x = r\cos(\theta), y = r\sin(\theta).

 -- Function: int gsl_sf_rect_to_polar (double X, double Y, gsl_sf_result * R, gsl_sf_result * THETA)
     This function converts the rectilinear coordinates (X,Y) to polar coordinates (R,THETA), such that x = r\cos(\theta), y = r\sin(\theta).  The argument THETA lies in the range [-\pi, \pi].

Restriction Functions
---------------------

 -- Function: double gsl_sf_angle_restrict_symm (double THETA)
 -- Function: int gsl_sf_angle_restrict_symm_e (double * THETA)
     These routines force the angle THETA to lie in the range (-\pi,\pi].

     Note that the mathematical value of \pi is slightly greater than M_PI, so the machine numbers M_PI and -M_PI are included in the range.

 -- Function: double gsl_sf_angle_restrict_pos (double THETA)
 -- Function: int gsl_sf_angle_restrict_pos_e (double * THETA)
     These routines force the angle THETA to lie in the range [0, 2\pi).

     Note that the mathematical value of 2\pi is slightly greater than 2*M_PI, so the machine number 2*M_PI is included in the range.

Trigonometric Functions With Error Estimates
--------------------------------------------

 -- Function: int gsl_sf_sin_err_e (double X, double DX, gsl_sf_result * RESULT)
     This routine computes the sine of an angle X with an associated absolute error DX, $\sin(x \pm dx)$ \sin(x \pm dx).  Note that this function is provided in the error-handling form only since its purpose is to compute the propagated error.

 -- Function: int gsl_sf_cos_err_e (double X, double DX, gsl_sf_result * RESULT)
     This routine computes the cosine of an angle X with an associated absolute error DX, $\cos(x \pm dx)$ \cos(x \pm dx).  Note that this function is provided in the error-handling form only since its purpose is to compute the propagated error.