JuliaApproximation / SingularIntegrals.jl

A Julia package for computing singular integrals
MIT License
6 stars 4 forks source link

Definition of `stieltjes`? #39

Open putianyi889 opened 7 months ago

putianyi889 commented 7 months ago

The transform is defined on $\mathbb{R}$ and in terms of quasimatrices it's an $\mathbb{R}\times I$ kernel multiplied by an $I\times\mathbb{N}$ basis, so the result should be an $\mathbb{R}\times\mathbb{N}$ basis.

dlfivefifty commented 6 months ago

When you use the full broadcast notation it's clear what the domain is:

W = Weighted(ChebyshevT())
x = axes(W,1)
S = inv.(x .- x') * W
@test axes(S) == (Inclusion(-1..1), 1:∞)

So I guess you are referring to the behaviour of stieltjes(W)? I think the convention is that it evaluates on the domain axes(W,1).

This may also be true for complex supported domains but I've just realised if I write

Γ = somecomplexcontour
W = Weighted(chebyshevt(Γ))
z = axes(W,1)
S = inv.(z .- z') * W

The definition follows from the definition of the adjoint/inner product. Which would only sensibly be the $\int_Γ \bar f(z) g(z) ds$ where we would also want a version with $dz$. Probably we would use stieltjes to mean the latter and cauchy (with the $1/(2πi)$ to mean the former.

If you indeed want the whole real line we can support the syntax

W = Weighted(ChebyshevT())
x = Inclusion(ℝ)
t = axes(W,1)
S = inv.(x .- t') * W
@test axes(S) == (x, 1:∞)

which could lower to a call steiltjes(W, ℝ). Would take some thought how to implement this.