@@ -37,9 +37,11 @@ function MaternKernel(ρ::T₁=1.0,ν::T₂=1.5) where {T₁<:Real,T₂<:Real}
37
37
if ν == 0.5
38
38
ExponentialKernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
39
39
elseif ν == 1.5
40
- Matern3_2Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
40
+ Matern32Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
41
41
elseif ν == 2.5
42
- Matern5_2Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
42
+ Matern52Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
43
+ elseif ν == Inf
44
+ SquaredExponentialKernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
43
45
else
44
46
MaternKernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ),ν)
45
47
end
@@ -50,9 +52,11 @@ function MaternKernel(ρ::A,ν::T=1.5) where {A<:AbstractVector{<:Real},T<:Real}
50
52
if ν == 0.5
51
53
ExponentialKernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
52
54
elseif ν == 1.5
53
- Matern3_2Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
55
+ Matern32Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
54
56
elseif ν == 2.5
55
- Matern5_2Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
57
+ Matern52Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
58
+ elseif ν == Inf
59
+ SquaredExponentialKernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
56
60
else
57
61
MaternKernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ),ν)
58
62
end
61
65
function MaternKernel (t:: T₁ ,ν:: T₂ = 1.5 ) where {T₁<: Transform ,T₂<: Real }
62
66
@check_args (MaternKernel, ν, ν > zero (T₂), " ν > 0" )
63
67
if ν == 0.5
64
- ExponentialKernel {eltype(t),T₁} (ScaleTransform (ρ) )
68
+ ExponentialKernel {eltype(t),T₁} (t )
65
69
elseif ν == 1.5
66
- Matern3_2Kernel {eltype(t),T₁} (ScaleTransform (ρ) )
70
+ Matern32Kernel {eltype(t),T₁} (t )
67
71
elseif ν == 2.5
68
- Matern5_2Kernel {eltype(t),T₁} (ScaleTransform (ρ))
72
+ Matern52Kernel {eltype(t),T₁} (t)
73
+ elseif ν == Inf
74
+ SquaredExponentialKernel {eltype(t),T₁} (t)
69
75
else
70
- MaternKernel {eltype(t),T₁} (ScaleTransform (ρ) ,ν)
76
+ MaternKernel {eltype(t),T₁} (t ,ν)
71
77
end
72
78
end
73
79
74
80
@inline kappa (κ:: MaternKernel , d:: Real ) where {T} = exp ((1.0 - κ. ν)* logtwo - lgamma (κ. ν) - κ. ν* log (sqrt (2 κ. ν)* d))* besselk (κ. ν,sqrt (2 κ. ν)* d)
75
81
76
82
77
- struct Matern3_2Kernel {T,Tr<: Transform } <: Kernel{T,Tr}
83
+ struct Matern32Kernel {T,Tr<: Transform } <: Kernel{T,Tr}
78
84
transform:: Tr
79
85
metric:: SemiMetric
80
- function Matern3_2Kernel {T,Tr} (transform:: Tr ) where {T,Tr<: Transform }
86
+ function Matern32Kernel {T,Tr} (transform:: Tr ) where {T,Tr<: Transform }
81
87
return new {T,Tr} (transform,Euclidean ())
82
88
end
83
89
end
84
90
85
- @inline kappa (κ:: Matern3_2Kernel , d:: T ) where {T<: Real } = (1 + sqrt (3 )* d)* exp (- sqrt (3 )* d)
91
+ function Matern32Kernel (ρ:: T ) where {T<: Real }
92
+ Matern32Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
93
+ end
94
+
95
+ function Matern32Kernel (ρ:: A ) where {A<: AbstractVector{<:Real} }
96
+ Matern32Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
97
+ end
98
+
99
+ function Matern32Kernel (t:: Transform )
100
+ Matern52Kernel {eltype(A),ScaleTransform{A}} (t)
101
+ end
102
+
103
+ @inline kappa (κ:: Matern32Kernel , d:: T ) where {T<: Real } = (1 + sqrt (3 )* d)* exp (- sqrt (3 )* d)
86
104
87
- struct Matern5_2Kernel {T,Tr<: Transform } <: Kernel{T,Tr}
105
+ struct Matern52Kernel {T,Tr<: Transform } <: Kernel{T,Tr}
88
106
transform:: Tr
89
107
metric:: SemiMetric
90
- function Matern5_2Kernel {T,Tr} (transform:: Tr ) where {T,Tr<: Transform }
108
+ function Matern52Kernel {T,Tr} (transform:: Tr ) where {T,Tr<: Transform }
91
109
return new {T,Tr} (transform,Euclidean ())
92
110
end
93
111
end
94
112
95
- @inline kappa (κ:: Matern5_2Kernel , d:: Real ) where {T} = (1 + sqrt (5 )* d+ 5 * d^ 2 / 3 )* exp (- sqrt (5 )* d)
113
+ function Matern52Kernel (ρ:: T ) where {T<: Real }
114
+ Matern52Kernel {T₁,ScaleTransform{T₁}} (ScaleTransform (ρ))
115
+ end
116
+
117
+ function Matern52Kernel (ρ:: A ) where {A<: AbstractVector{<:Real} }
118
+ Matern52Kernel {eltype(A),ScaleTransform{A}} (ScaleTransform (ρ))
119
+ end
120
+
121
+ function Matern52Kernel (t:: Transform )
122
+ Matern52Kernel {eltype(A),ScaleTransform{A}} (t)
123
+ end
124
+
125
+ @inline kappa (κ:: Matern52Kernel , d:: Real ) where {T} = (1 + sqrt (5 )* d+ 5 * d^ 2 / 3 )* exp (- sqrt (5 )* d)
0 commit comments