JuliaApproximation / SemiclassicalOrthogonalPolynomials.jl

A Julia repository for semiclassical orthogonal polynomials
MIT License
7 stars 3 forks source link

WeightedSemiclassicalJacobi vs. Weighted(SemiclassicalJacobi) #65

Open ioannisPApapadopoulos opened 1 year ago

ioannisPApapadopoulos commented 1 year ago

@TSGut @dlfivefifty

Currently this works:

a=1; b=1; c=0; t=1.2; WeightedSemiclassicalJacobi(t,a-1,b-1,c+1/2) \ WeightedSemiclassicalJacobi(t,a,b,c+1/2)

but the following gives the error:

a=1; b=1; c=0; t=1.2; Weighted(SemiclassicalJacobi(t,a-1,b-1,c+1/2)) \ Weighted(SemiclassicalJacobi(t,a,b,c+1/2))

ERROR: ArgumentError: Override copy for Weighted{Float64, SemiclassicalJacobi{Float64}} \ Weighted{Float64, SemiclassicalJacobi{Float64}}
Stacktrace:
 [1] copy
   @ C:\Users\john.papad\.julia\packages\ContinuumArrays\fBdnN\src\bases\bases.jl:73 [inlined]
 [2] materialize
   @ C:\Users\john.papad\.julia\packages\ArrayLayouts\DYIpy\src\ldiv.jl:22 [inlined]
 [3] ldiv
   @ C:\Users\john.papad\.julia\packages\ArrayLayouts\DYIpy\src\ldiv.jl:86 [inlined]
 [4] \(A::Weighted{Float64, SemiclassicalJacobi{Float64}}, B::Weighted{Float64, SemiclassicalJacobi{Float64}})
   @ QuasiArrays C:\Users\john.papad\.julia\packages\QuasiArrays\EjYoS\src\matmul.jl:34
 [5] top-level scope
   @ REPL[9]:1

I am not quite sure where to add the copy. Moreover, the Ldiv is defined for WeightedSemiclassicalJacobi and not Weighted(SemiclassicalJacobi) in lines 324-347 of https://github.com/JuliaApproximation/SemiclassicalOrthogonalPolynomials.jl/blob/master/src/SemiclassicalOrthogonalPolynomials.jl. Should this be updated?

dlfivefifty commented 1 year ago

Ah ok for now maybe just add

\(w_A::Weighted{<:Any,<:SemiclassicalJacobi}, w_B::Weighted{<:Any,<:SemiclassicalJacobi}) =
     convert(WeightedBasis, w_A) \ convert(WeightedBasis, w_B)