Skip to content

Commit e7e27bb

Browse files
committed
Add default definition for evaluating kernel with two arguments
1 parent 5c38060 commit e7e27bb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/generic.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ Base.length(::Kernel) = 1
55
Base.iterate(k::Kernel) = (k,nothing)
66
Base.iterate(k::Kernel, ::Any) = nothing
77

8+
# default fallback for evaluating a kernel with two arguments (such as vectors etc)
9+
kappa::Kernel, x, y) = kappa(κ, evaluate(metric(κ), transform(κ, x), transform(κ, y)))
10+
811
### Syntactic sugar for creating matrices and using kernel functions
912
for k in [:ExponentialKernel,:SqExponentialKernel,:GammaExponentialKernel,:MaternKernel,:Matern32Kernel,:Matern52Kernel,:LinearKernel,:PolynomialKernel,:ExponentiatedKernel,:ZeroKernel,:WhiteKernel,:ConstantKernel,:RationalQuadraticKernel,:GammaRationalQuadraticKernel]
1013
@eval begin
1114
@inline::$k)(d::Real) = kappa(κ,d) #TODO Add test
12-
@inline::$k)(x::AbstractVector{<:Real},y::AbstractVector{<:Real}) = kappa(κ,evaluate(metric(κ),transform(κ,x),transform(κ,y)))
15+
@inline::$k)(x::AbstractVector{<:Real}, y::AbstractVector{<:Real}) = kappa(κ, x, y)
1316
@inline::$k)(X::AbstractMatrix{T},Y::AbstractMatrix{T};obsdim::Integer=defaultobs) where {T} = kernelmatrix(κ,X,Y,obsdim=obsdim)
1417
@inline::$k)(X::AbstractMatrix{T};obsdim::Integer=defaultobs) where {T} = kernelmatrix(κ,X,obsdim=obsdim)
1518
end

0 commit comments

Comments
 (0)