LegendrePolynomials.jl

Legendre polynomials and associated Legendre polynomials computed using 3-term recursions
Author jishnub
Popularity
12 Stars
Updated Last
8 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.