|
10 | 10 | function InterpKDE(kde::UnivariateKDE, opts...)
|
11 | 11 | itp_u = interpolate(kde.density, opts...)
|
12 | 12 | itp = scale(itp_u, kde.x)
|
13 |
| - InterpKDE{typeof(kde),typeof(itp)}(kde, itp) |
| 13 | + etp = extrapolate(itp, zero(eltype(kde.density))) |
| 14 | + InterpKDE{typeof(kde),typeof(etp)}(kde, etp) |
14 | 15 | end
|
15 |
| -InterpKDE(kde::UnivariateKDE) = InterpKDE(kde, BSpline(Quadratic(Line())), OnGrid()) |
| 16 | +InterpKDE(kde::UnivariateKDE) = InterpKDE(kde, BSpline(Quadratic(Line(OnGrid())))) |
16 | 17 |
|
17 | 18 |
|
18 | 19 | function InterpKDE(kde::BivariateKDE, opts...)
|
19 | 20 | itp_u = interpolate(kde.density,opts...)
|
20 | 21 | itp = scale(itp_u, kde.x, kde.y)
|
21 |
| - InterpKDE{typeof(kde),typeof(itp)}(kde, itp) |
| 22 | + etp = extrapolate(itp, zero(eltype(kde.density))) |
| 23 | + InterpKDE{typeof(kde),typeof(etp)}(kde, etp) |
22 | 24 | end
|
23 |
| -InterpKDE(kde::BivariateKDE) = InterpKDE(kde::BivariateKDE, BSpline(Quadratic(Line())), OnGrid()) |
| 25 | +InterpKDE(kde::BivariateKDE) = InterpKDE(kde::BivariateKDE, BSpline(Quadratic(Line(OnGrid())))) |
24 | 26 |
|
25 |
| -pdf(ik::InterpKDE,x::Real...) = ik.itp[x...] |
26 |
| -pdf(ik::InterpKDE,xs::AbstractVector) = [ik.itp[x] for x in xs] |
27 |
| -pdf(ik::InterpKDE,xs::AbstractVector,ys::AbstractVector) = [ik.itp[x,y] for x in xs, y in ys] |
| 27 | +pdf(ik::InterpKDE,x::Real...) = ik.itp(x...) |
| 28 | +pdf(ik::InterpKDE,xs::AbstractVector) = [ik.itp(x) for x in xs] |
| 29 | +pdf(ik::InterpKDE,xs::AbstractVector,ys::AbstractVector) = [ik.itp(x,y) for x in xs, y in ys] |
28 | 30 |
|
29 | 31 | pdf(k::UnivariateKDE,x) = pdf(InterpKDE(k),x)
|
30 | 32 | pdf(k::BivariateKDE,x,y) = pdf(InterpKDE(k),x,y)
|
0 commit comments