JuliaApproximation / SingularIntegralEquations.jl

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

Getting Bivariate kernels working in JacobiWeightSpace{ChebyshevSpace} #1

Closed MikaelSlevinsky closed 9 years ago

MikaelSlevinsky commented 9 years ago

Basically, what we need to get working again is:

x = Fun(identity)
w = 1/sqrt(1-x^2)
H = Hilbert(space(w))
H[w]

I think the code you showed me (then I added in the tests file) for the known SIE works because of some new features you added in linsolve: the Ad = promotedomainspace(A) line allows any number of operators to be instantiated in AnySpaces and all this can be carried through up to solution. But this can't be a good programming solution, because we can't even check the entries of L. (Try L[1:10,1:10])

Now I don't know exactly why H[w] as above is crashing (or more precisely how to fix it while not breaking anything else), but I would like that last line to make sense. This will restore H[f::BivariateFun].

dlfivefifty commented 9 years ago

This is a hard one to fix: we need H[w] to set the range space of Multiplication(w), not the domainspace. Not sure how to structure this…

There was some assumption in TimesOperator that promotedomainspace is allowed to change the range space but not promoterangespace.  This needs thought

This also touches a current hack in \ that I promote so that the solution is in the same space as the right-hand side. But perhaps it should promote the range space. But this is different then the ultraspherical approach that converts the rhs...

On 12 Dec 2014, at 4:55 pm, Richard Mikael Slevinsky notifications@github.com wrote:

Basically, what we need to get working again is:

x = Fun(identity) w = 1/sqrt(1-x^2) H = Hilbert(space(w)) H[w] I think the code you showed me (then I added in the tests file) for the known SIE works because of some new features you added in linsolve: the Ad = promotedomainspace(A) line allows any number of operators to be instantiated in AnySpaces and all this can be carried through up to solution. But this can't be a good programming solution, because we can't even check the entries of L. (Try L[1:10,1:10])

Now I don't know exactly why H[w] as above is crashing (or more precisely how to fix it while not breaking anything else), but I would like that last line to make sense. This will restore H[f::BivariateFun].

— Reply to this email directly or view it on GitHub https://github.com/ApproxFun/SIE.jl/issues/1.

dlfivefifty commented 9 years ago

I ended up just hacking a fix by overriding getindex for Hilbert with appropriate spaces

A more general fix needs a redesigned space promotion system to allow promotion for rangespace

MikaelSlevinsky commented 9 years ago

See f2f213b for a different fix that uses SpaceOperator, which has its own domainspace and rangespace.