### Legendre Polynomials

Function: double gsl_sf_legendre_P1 (double x)
Function: double gsl_sf_legendre_P2 (double x)
Function: double gsl_sf_legendre_P3 (double x)
Function: int gsl_sf_legendre_P1_e (double x, gsl_sf_result * result)
Function: int gsl_sf_legendre_P2_e (double x, gsl_sf_result * result)
Function: int gsl_sf_legendre_P3_e (double x, gsl_sf_result * result)
  These functions evaluate the Legendre polynomials P_l(x) using explicit representations for l=1, 2, 3.

Function: double gsl_sf_legendre_Pl (int l, double x)
Function: int gsl_sf_legendre_Pl_e (int l, double x, gsl_sf_result * result)
  These functions evaluate the Legendre polynomial P_l(x) for a specific value of l, x subject to l >= 0, |x| <= 1

Function: int gsl_sf_legendre_Pl_array (int lmax, double x, double result_array[])
  This function computes an array of Legendre polynomials P_l(x) for l = 0, \dots, lmax, |x| <= 1

Function: double gsl_sf_legendre_Q0 (double x)
Function: int gsl_sf_legendre_Q0_e (double x, gsl_sf_result * result)
  These routines compute the Legendre function Q_0(x) for x > -1, x != 1.

Function: double gsl_sf_legendre_Q1 (double x)
Function: int gsl_sf_legendre_Q1_e (double x, gsl_sf_result * result)
  These routines compute the Legendre function Q_1(x) for x > -1, x != 1.

Function: double gsl_sf_legendre_Ql (int l, double x)
Function: int gsl_sf_legendre_Ql_e (int l, double x, gsl_sf_result * result)
  These routines compute the Legendre function Q_l(x) for x > -1, x != 1 and l >= 0.