From 5ddd4189b03bc83e4217892aac3eabe59a636cae Mon Sep 17 00:00:00 2001 From: Will Tebbutt Date: Wed, 28 Sep 2022 08:15:10 +0100 Subject: [PATCH 1/4] gitignore dev folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 02bcc5a34..38f476d8a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ Manifest.toml coverage/ .DS_store +dev From 37f55584c180dd537513b381bfc03f525222ccc9 Mon Sep 17 00:00:00 2001 From: Will Tebbutt Date: Wed, 28 Sep 2022 14:31:24 +0100 Subject: [PATCH 2/4] Fix up matern --- src/basekernels/matern.jl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/basekernels/matern.jl b/src/basekernels/matern.jl index c050cad0d..1a5ce4652 100644 --- a/src/basekernels/matern.jl +++ b/src/basekernels/matern.jl @@ -37,14 +37,15 @@ MaternKernel(; nu::Real=1.5, ν::Real=nu, metric=Euclidean()) = MaternKernel(ν, @functor MaternKernel -@inline function kappa(k::MaternKernel, d::Real) - result = _matern(only(k.ν), d) - return ifelse(iszero(d), one(result), result) -end +@inline kappa(k::MaternKernel, d::Real) = _matern(only(k.ν), d) function _matern(ν::Real, d::Real) - y = sqrt(2ν) * d - return exp((one(d) - ν) * logtwo - loggamma(ν) + ν * log(y) + log(besselk(ν, y))) + if iszero(d) + return one(d) + else + y = sqrt(2ν) * d + return exp((one(d) - ν) * logtwo - loggamma(ν) + ν * log(y) + log(besselk(ν, y))) + end end metric(k::MaternKernel) = k.metric From 7ad72a2b7654bbb61384b8712b042d6da846a37c Mon Sep 17 00:00:00 2001 From: Will Tebbutt Date: Wed, 28 Sep 2022 14:31:36 +0100 Subject: [PATCH 3/4] Bump patch --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 8903beeac..0288447ba 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "KernelFunctions" uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" -version = "0.10.45" +version = "0.10.46" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" From 43748e5d567751a3b7fd758e7e73a3aa236ca04a Mon Sep 17 00:00:00 2001 From: Will Tebbutt Date: Wed, 28 Sep 2022 15:38:15 +0100 Subject: [PATCH 4/4] Avoid promotion with irrational --- src/basekernels/matern.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/basekernels/matern.jl b/src/basekernels/matern.jl index 1a5ce4652..cb051ee0f 100644 --- a/src/basekernels/matern.jl +++ b/src/basekernels/matern.jl @@ -44,7 +44,8 @@ function _matern(ν::Real, d::Real) return one(d) else y = sqrt(2ν) * d - return exp((one(d) - ν) * logtwo - loggamma(ν) + ν * log(y) + log(besselk(ν, y))) + b = log(besselk(ν, y)) + return exp((one(d) - ν) * oftype(y, logtwo) - loggamma(ν) + ν * log(y) + b) end end