{"id":20500561,"url":"https://github.com/juliaapproximation/orthogonalpolynomialsquasi.jl","last_synced_at":"2025-09-13T08:37:17.217Z","repository":{"id":53556895,"uuid":"208975779","full_name":"JuliaApproximation/OrthogonalPolynomialsQuasi.jl","owner":"JuliaApproximation","description":"A package for representing orthogonal polynomials as quasi arrays","archived":false,"fork":false,"pushed_at":"2021-03-24T16:17:41.000Z","size":185,"stargazers_count":7,"open_issues_count":19,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-09-12T21:52:02.442Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliaApproximation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-17T06:27:13.000Z","updated_at":"2023-01-31T17:10:17.000Z","dependencies_parsed_at":"2022-09-16T17:00:41.651Z","dependency_job_id":null,"html_url":"https://github.com/JuliaApproximation/OrthogonalPolynomialsQuasi.jl","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/JuliaApproximation/OrthogonalPolynomialsQuasi.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaApproximation%2FOrthogonalPolynomialsQuasi.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaApproximation%2FOrthogonalPolynomialsQuasi.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaApproximation%2FOrthogonalPolynomialsQuasi.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaApproximation%2FOrthogonalPolynomialsQuasi.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaApproximation","download_url":"https://codeload.github.com/JuliaApproximation/OrthogonalPolynomialsQuasi.jl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaApproximation%2FOrthogonalPolynomialsQuasi.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274939849,"owners_count":25377895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T18:21:34.706Z","updated_at":"2025-09-13T08:37:17.188Z","avatar_url":"https://github.com/JuliaApproximation.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OrthogonalPolynomialsQuasi.jl\nA package for representing orthogonal polynomials as quasi arrays\n\n[![Build Status](https://travis-ci.org/JuliaApproximation/OrthogonalPolynomialsQuasi.jl.svg?branch=master)](https://travis-ci.org/JuliaApproximation/OrthogonalPolynomialsQuasi.jl)\n[![codecov](https://codecov.io/gh/JuliaApproximation/OrthogonalPolynomialsQuasi.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaApproximation/OrthogonalPolynomialsQuasi.jl)\n\n\n**This package has been superseded by [ClassicalOrthogonalPolynomials.jl](https://github.com/JuliaApproximation/ClassicalOrthogonalPolynomials.jl)** \n\n\n\nThis package implements classical orthogonal polynomials as quasi-arrays where one one axes is continuous and the other axis is discrete (countably infinite), as implemented in [QuasiArrays.jl](https://github.com/JuliaApproximation/QuasiArrays.jl) and  [ContinuumArrays.jl](https://github.com/JuliaApproximation/ContinuumArrays.jl).  \n```julia\njulia\u003e using OrthogonalPolynomialsQuasi, ContinuumArrays\n\njulia\u003e P = Legendre(); # Legendre polynomials\n\njulia\u003e size(P) # uncountable ∞ x countable ∞\n(ℵ₁, ∞)\n\njulia\u003e axes(P) # essentially (-1..1, 1:∞), Inclusion plays the same role as Slice\n(Inclusion(-1.0..1.0 (Chebyshev)), OneToInf())\n\njulia\u003e P[0.1,1:10] # [P_0(0.1), …, P_9(0.1)]\n10-element Array{Float64,1}:\n  1.0                \n  0.1                \n -0.485              \n -0.14750000000000002\n  0.3379375          \n  0.17882875         \n -0.2488293125       \n -0.19949294375000004\n  0.180320721484375  \n  0.21138764183593753\n\njulia\u003e @time P[range(-1,1; length=10_000), 1:10_000]; # construct 10_000^2 Vandermonde matrix\n  1.624796 seconds (10.02 k allocations: 1.491 GiB, 6.81% gc time)\n```\nThis also works for associated Legendre polynomials as weighted Ultraspherical polynomials:\n```julia\njulia\u003e associatedlegendre(m) = ((-1)^m*prod(1:2:(2m-1)))*(UltrasphericalWeight((m+1)/2).*Ultraspherical(m+1/2))\nassociatedlegendre (generic function with 1 method)\n\njulia\u003e associatedlegendre(2)[0.1,1:10]\n10-element Array{Float64,1}:\n   2.9699999999999998\n   1.4849999999999999\n  -6.9052500000000006\n  -5.041575          \n  10.697754375       \n  10.8479361375      \n -13.334647528125    \n -18.735466024687497 \n  13.885467170308594 \n  28.220563705988674 \n```\n\n## p-Finite Element Method\n\nThe language of quasi-arrays gives a natural framework for constructing p-finite element methods. The convention\nis that adjoint-products are understood as inner products over the axes with uniform weight. Thus to solve Poisson's equation\nusing its weak formulation with Dirichlet conditions we can expand in a weighted Jacobi basis:\n```julia\njulia\u003e P¹¹ = Jacobi(1.0,1.0); # Quasi-matrix of Jacobi polynomials\n\njulia\u003e w = JacobiWeight(1.0,1.0); # quasi-vector correspoinding to (1-x^2)\n\njulia\u003e w[0.1] ≈ (1-0.1^2)\ntrue\n\njulia\u003e S = w .* P¹¹; # Quasi-matrix of weighted Jacobi polynomials\n\njulia\u003e D = Derivative(axes(S,1)); # quasi-matrix corresponding to derivative\n\njulia\u003e Δ = (D*S)'*(D*S) # weak laplacian corresponding to inner products of weighted Jacobi polynomials\n∞×∞ LazyArrays.ApplyArray{Float64,2,typeof(*),Tuple{Adjoint{Int64,BandedMatrices.BandedMatrix{Int64,Adjoint{Int64,InfiniteArrays.InfStepRange{Int64,Int64}},InfiniteArrays.OneToInf{Int64}}},LazyArrays.BroadcastArray{Float64,2,typeof(*),Tuple{LazyArrays.BroadcastArray{Float64,1,typeof(/),Tuple{Int64,InfiniteArrays.InfStepRange{Int64,Int64}}},BandedMatrices.BandedMatrix{Int64,Adjoint{Int64,InfiniteArrays.InfStepRange{Int64,Int64}},InfiniteArrays.OneToInf{Int64}}}}}} with indices OneToInf()×OneToInf():\n 2.66667   ⋅     ⋅        ⋅        ⋅        ⋅        ⋅        ⋅      …  \n  ⋅       6.4    ⋅        ⋅        ⋅        ⋅        ⋅        ⋅         \n  ⋅        ⋅   10.2857    ⋅        ⋅        ⋅        ⋅        ⋅         \n  ⋅        ⋅     ⋅      14.2222    ⋅        ⋅        ⋅        ⋅         \n  ⋅        ⋅     ⋅        ⋅      18.1818    ⋅        ⋅        ⋅         \n  ⋅        ⋅     ⋅        ⋅        ⋅      22.1538    ⋅        ⋅      …  \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅      26.1333    ⋅         \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅        ⋅      30.1176     \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅        ⋅        ⋅         \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅        ⋅        ⋅         \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅        ⋅        ⋅      …  \n  ⋅        ⋅     ⋅        ⋅        ⋅        ⋅        ⋅        ⋅         \n ⋮                                         ⋮                         ⋱  \n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaapproximation%2Forthogonalpolynomialsquasi.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliaapproximation%2Forthogonalpolynomialsquasi.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaapproximation%2Forthogonalpolynomialsquasi.jl/lists"}