Skip to content

Legendre polynomials and associated Legendre polynomials computed using 3-term recursions

License

Notifications You must be signed in to change notification settings

jishnub/LegendrePolynomials.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.