Skip to content

Commit 1f194f5

Browse files
authored
Merge pull request #49 from theogf/aliases
Add non-unicode keywords aliases
2 parents 214b83f + cf5374e commit 1f194f5

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

src/kernels/exponential.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Base.show(io::IO,::SqExponentialKernel) = print(io,"Squared Exponential Kernel")
2020
## Aliases ##
2121
const RBFKernel = SqExponentialKernel
2222
const GaussianKernel = SqExponentialKernel
23+
const SEKernel = SqExponentialKernel
2324

2425
"""
2526
`ExponentialKernel([ρ=1.0])`
@@ -48,7 +49,7 @@ The γ-exponential kernel is an isotropic Mercer kernel given by the formula:
4849
"""
4950
struct GammaExponentialKernel{Tγ<:Real} <: BaseKernel
5051
γ::Vector{Tγ}
51-
function GammaExponentialKernel(;γ::T=2.0) where {T<:Real}
52+
function GammaExponentialKernel(;gamma::T=2.0, γ::T=gamma) where {T<:Real}
5253
@check_args(GammaExponentialKernel, γ, γ >= zero(T), "γ > 0")
5354
return new{T}([γ])
5455
end

src/kernels/matern.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@ For `ν=n+1/2, n=0,1,2,...` it can be simplified and you should instead use [`Ex
88
"""
99
struct MaternKernel{Tν<:Real} <: BaseKernel
1010
ν::Vector{Tν}
11-
function MaternKernel(;ν::T=1.5) where {T<:Real}
11+
function MaternKernel(;nu::T=1.5, ν::T=nu) where {T<:Real}
1212
@check_args(MaternKernel, ν, ν > zero(T), "ν > 0")
1313
return new{T}([ν])
1414
end
1515
end
1616

1717
@inline function kappa::MaternKernel, d::Real)
1818
ν = first.ν)
19-
iszero(d) ? one(d) : exp((one(d)-ν)*logtwo-logabsgamma(ν)[1] + ν*log(sqrt(2ν)*d)+log(besselk(ν,sqrt(2ν)*d)))
19+
iszero(d) ? one(d) :
20+
exp(
21+
(one(d) - ν) * logtwo - logabsgamma(ν)[1] +
22+
ν * log(sqrt(2ν) * d) +
23+
log(besselk(ν, sqrt(2ν) * d))
24+
)
2025
end
2126

2227
metric(::MaternKernel) = Euclidean()
@@ -30,7 +35,7 @@ The matern 3/2 kernel is an isotropic Mercer kernel given by the formula:
3035
"""
3136
struct Matern32Kernel <: BaseKernel end
3237

33-
kappa::Matern32Kernel, d::Real) = (1+sqrt(3)*d)*exp(-sqrt(3)*d)
38+
kappa::Matern32Kernel, d::Real) = (1 + sqrt(3) * d) * exp(-sqrt(3) * d)
3439

3540
metric(::Matern32Kernel) = Euclidean()
3641

@@ -43,6 +48,6 @@ The matern 5/2 kernel is an isotropic Mercer kernel given by the formula:
4348
"""
4449
struct Matern52Kernel <: BaseKernel end
4550

46-
kappa::Matern52Kernel, d::Real) = (1+sqrt(5)*d+5*d^2/3)*exp(-sqrt(5)*d)
51+
kappa::Matern52Kernel, d::Real) = (1 + sqrt(5) * d + 5 * d^2 / 3) * exp(-sqrt(5) * d)
4752

4853
metric(::Matern52Kernel) = Euclidean()

src/kernels/rationalquad.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ where `α` is a shape parameter of the Euclidean distance. Check [`GammaRational
88
"""
99
struct RationalQuadraticKernel{Tα<:Real} <: BaseKernel
1010
α::Vector{Tα}
11-
function RationalQuadraticKernel(;α::T=2.0) where {T}
11+
function RationalQuadraticKernel(;alpha::T=2.0, α::T=alpha) where {T}
1212
@check_args(RationalQuadraticKernel, α, α > zero(T), "α > 1")
1313
return new{T}([α])
1414
end
@@ -29,7 +29,7 @@ where `α` is a shape parameter of the Euclidean distance and `γ` is another sh
2929
struct GammaRationalQuadraticKernel{Tα<:Real, Tγ<:Real} <: BaseKernel
3030
α::Vector{Tα}
3131
γ::Vector{Tγ}
32-
function GammaRationalQuadraticKernel(;α::Tα=2.0, γ::Tγ=2.0) where {Tα<:Real, Tγ<:Real}
32+
function GammaRationalQuadraticKernel(;alpha::Tα=2.0, gamma::Tγ=2.0, α::Tα=alpha, γ::Tγ=gamma) where {Tα<:Real, Tγ<:Real}
3333
@check_args(GammaRationalQuadraticKernel, α, α > one(Tα), "α > 1")
3434
@check_args(GammaRationalQuadraticKernel, γ, γ >= one(Tγ), "γ >= 1")
3535
return new{Tα, Tγ}([α], [γ])

test/test_kernels.jl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ x = rand()*2; v1 = rand(3); v2 = rand(3); id = IdentityTransform()
4444
@test kappa(k,x) exp(-(x)^(γ))
4545
@test k(v1,v2) exp(-norm(v1-v2)^(2γ))
4646
@test kappa(GammaExponentialKernel(),x) == kappa(k,x)
47+
@test GammaExponentialKernel(gamma=γ).γ == [γ]
4748
#Coherence :
4849
@test KernelFunctions._kernel(GammaExponentialKernel=1.0),v1,v2) KernelFunctions._kernel(SqExponentialKernel(),v1,v2)
4950
@test KernelFunctions._kernel(GammaExponentialKernel=0.5),v1,v2) KernelFunctions._kernel(ExponentialKernel(),v1,v2)
@@ -62,6 +63,7 @@ x = rand()*2; v1 = rand(3); v2 = rand(3); id = IdentityTransform()
6263
ν = 2.0
6364
k = MaternKernel=ν)
6465
matern(x,ν) = 2^(1-ν)/gamma(ν)*(sqrt(2ν)*x)^ν*besselk(ν,sqrt(2ν)*x)
66+
@test MaternKernel(nu=ν).ν == [ν]
6567
@test kappa(k,x) matern(x,ν)
6668
@test kappa(k,0.0) == 1.0
6769
@test kappa(MaternKernel=ν),x) == kappa(k,x)
@@ -103,17 +105,20 @@ x = rand()*2; v1 = rand(3); v2 = rand(3); id = IdentityTransform()
103105
end
104106
@testset "RationalQuadratic" begin
105107
@testset "RationalQuadraticKernel" begin
106-
k = RationalQuadraticKernel()
108+
α = 2.0
109+
k = RationalQuadraticKernel=α)
110+
@test RationalQuadraticKernel(alpha=α).α == [α]
107111
@test kappa(k,x) (1.0+x/2.0)^-2
108112
@test k(v1,v2) (1.0+norm(v1-v2)^2/2.0)^-2
109-
@test kappa(RationalQuadraticKernel(),x) == kappa(k,x)
113+
@test kappa(RationalQuadraticKernel(α=α),x) == kappa(k,x)
110114
end
111115
@testset "GammaRationalQuadraticKernel" begin
112116
k = GammaRationalQuadraticKernel()
113117
@test kappa(k,x) (1.0+x^2.0/2.0)^-2
114118
@test k(v1,v2) (1.0+norm(v1-v2)^4.0/2.0)^-2
115119
@test kappa(GammaRationalQuadraticKernel(),x) == kappa(k,x)
116120
a = 1.0 + rand()
121+
@test GammaRationalQuadraticKernel(alpha=a).α == [a]
117122
#Coherence test
118123
@test kappa(GammaRationalQuadraticKernel=a,γ=1.0),x) kappa(RationalQuadraticKernel=a),x)
119124
end
@@ -128,7 +133,7 @@ x = rand()*2; v1 = rand(3); v2 = rand(3); id = IdentityTransform()
128133
@test kappa(kt,v1,v2) == kappa(transform(k,ScaleTransform(s)),v1,v2)
129134
@test kappa(kt,v1,v2) == kappa(transform(k,s),v1,v2)
130135
@test kappa(kt,v1,v2) == kappa(k,s*v1,s*v2)
131-
@test kappa(ktard,v1,v2) == kappa(transform(k,ARDTransform(v)),v1,v2)
136+
@test kappa(ktard,v1,v2) kappa(transform(k,ARDTransform(v)),v1,v2)
132137
@test kappa(ktard,v1,v2) == kappa(transform(k,v),v1,v2)
133138
@test kappa(ktard,v1,v2) == kappa(k,v.*v1,v.*v2)
134139
@test KernelFunctions.metric(kt) == KernelFunctions.metric(k)

0 commit comments

Comments
 (0)