LegendrePolynomials.jl

Legendre polynomials and associated Legendre polynomials computed using 3-term recursions
Author jishnub
Popularity
12 Stars
Updated Last
10 Months Ago
Started In
December 2018

LegendrePolynomials.jl

CI codecov stable dev

Iterative computation of Legendre Polynomials

Getting Started

Installing

To install the package, run

] add LegendrePolynomials

Quick start

To compute the Legendre polynomials for a given argument x and a degree l, use Pl(x,l):

julia> Pl(0.5, 20)
-0.04835838106737356

To compute the associated Legendre polynomial of degree l,m at the argument x, use Plm(x, l, m):

julia> Plm(0.5, 10, 5)
30086.169706116176

To compute the n-th derivative of the Legendre polynomial of degree l at the argument x, use dnPl(x, l, n):

julia> dnPl(0.5, 10, 5)
-61760.91796875

To compute all the polynomials for 0 <= l <= lmax, use collectPl(x; lmax)

julia> collectPl(0.5, lmax = 5)
6-element OffsetArray(::Array{Float64,1}, 0:5) with eltype Float64 with indices 0:5:
  1.0
  0.5
 -0.125
 -0.4375
 -0.2890625
  0.08984375

To compute all the associated Legendre polynomials for abs(m) <= l <= lmax, use collectPlm(x; m, lmax)

julia> collectPlm(0.5, lmax = 5, m = 3)
3-element OffsetArray(::Vector{Float64}, 3:5) with eltype Float64 with indices 3:5:
  -9.742785792574933
 -34.09975027401223
 -42.62468784251535

To compute all the n-th derivatives for 0 <= l <= lmax, use collectdnPl(x; n, lmax)

julia> collectdnPl(0.5, lmax = 5, n = 3)
6-element OffsetArray(::Array{Float64,1}, 0:5) with eltype Float64 with indices 0:5:
  0.0
  0.0
  0.0
 15.0
 52.5
 65.625

Check the documentation for other usage.

License

This project is licensed under the MIT License - see the LICENSE file for details.