@@ -8,15 +8,20 @@ For `ν=n+1/2, n=0,1,2,...` it can be simplified and you should instead use [`Ex
8
8
"""
9
9
struct MaternKernel{Tν<: Real } <: BaseKernel
10
10
ν:: Vector{Tν}
11
- function MaternKernel (;nu:: T = 1.5 ,ν:: T = nu) where {T<: Real }
11
+ function MaternKernel (;nu:: T = 1.5 , ν:: T = nu) where {T<: Real }
12
12
@check_args (MaternKernel, ν, ν > zero (T), " ν > 0" )
13
13
return new {T} ([ν])
14
14
end
15
15
end
16
16
17
17
@inline function kappa (κ:: MaternKernel , d:: Real )
18
18
ν = 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
+ )
20
25
end
21
26
22
27
metric (:: MaternKernel ) = Euclidean ()
@@ -30,7 +35,7 @@ The matern 3/2 kernel is an isotropic Mercer kernel given by the formula:
30
35
"""
31
36
struct Matern32Kernel <: BaseKernel end
32
37
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)
34
39
35
40
metric (:: Matern32Kernel ) = Euclidean ()
36
41
@@ -43,6 +48,6 @@ The matern 5/2 kernel is an isotropic Mercer kernel given by the formula:
43
48
"""
44
49
struct Matern52Kernel <: BaseKernel end
45
50
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)
47
52
48
53
metric (:: Matern52Kernel ) = Euclidean ()
0 commit comments