JuliaApproximation / SingularIntegralEquations.jl

Julia package for solving singular integral equations
Other
62 stars 11 forks source link

Hilbert not implemented on Rays #123

Open ettersi opened 5 years ago

ettersi commented 5 years ago

I'm trying to compute the equilibrium measure of a positive charge supported on [1,2] and a negative charge on (-∞,0]. I believe the following code should work, but it doesn't.

@dlfivefifty mentioned this should be easy to fix. In roughly how long could I expect this to be fixed? In order to be useful to me, it would have to happen within this week.

julia> D = Ray{true}(0), Interval(1,2);
       S = JacobiWeight(-0.5,0.5, Jacobi(-0.5,0.5,D[1])) ∪ JacobiWeight(-0.5,-0.5, Chebyshev(D[2]))
       μ = [
           DefiniteIntegral(component(S,1)); 
           DefiniteIntegral(component(S,2)); 
           real(Hilbert(S))
       ] \ [1;-1;0]
ERROR: Implement Hilbert((1+x)^-0.5*(1-x)^0.5[Chebyshev(【0,-∞❫)],1)
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] DefaultHilbert(::JacobiWeight{Chebyshev{Ray{true,Int64},Float64},Ray{true,Int64},Float64,Float64}, ::Int64) at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:39
 [3] Hilbert(::JacobiWeight{Chebyshev{Ray{true,Int64},Float64},Ray{true,Int64},Float64,Float64}, ::Vararg{Any,N} where N) at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:51
 [4] DefaultHilbert(::JacobiWeight{Jacobi{Ray{true,Int64},Float64},Ray{true,Int64},Float64,Float64}, ::Int64) at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:41
 [5] Type at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:51 [inlined]
 [6] Hilbert(::PiecewiseSpace{Tuple{JacobiWeight{Jacobi{Ray{true,Int64},Float64},Ray{true,Int64},Float64,Float64},JacobiWeight{Chebyshev{Interval{:closed,:closed,Int64},Float64},Interval{:closed,:closed,Int64},Float64,Float64}},DomainSets.UnionDomain{Tuple{Ray{true,Int64},Interval{:closed,:closed,Int64}},Int64},Float64}, ::Int64) at /home/ettersi/.julia/packages/SingularIntegralEquations/ugOjA/src/Operators/Hilbert.jl:38
 [7] DefaultHilbert at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:46 [inlined]
 [8] Hilbert(::PiecewiseSpace{Tuple{JacobiWeight{Jacobi{Ray{true,Int64},Float64},Ray{true,Int64},Float64,Float64},JacobiWeight{Chebyshev{Interval{:closed,:closed,Int64},Float64},Interval{:closed,:closed,Int64},Float64,Float64}},DomainSets.UnionDomain{Tuple{Ray{true,Int64},Interval{:closed,:closed,Int64}},Int64},Float64}) at /home/ettersi/.julia/packages/ApproxFun/OsYW8/src/Operators/banded/CalculusOperator.jl:51
 [9] top-level scope at none:0
dlfivefifty commented 5 years ago

Cauchy/Hilbert transforms have simple maps under Mobius transformations, so supporting this will be almost identical to

https://github.com/JuliaApproximation/SingularIntegralEquations.jl/blob/master/src/arc.jl