double legendre(unsigned l, double x); float legendref(unsigned l, float x); long double legendrel(unsigned l, long double x);
Pℓ(x)=12ℓℓ!dℓdxℓ(x2−1)ℓ,for |x|≤1
where l is l and x is x.