Skip to content

Commit ff08795

Browse files
committed
Added docs
1 parent 8038d1f commit ff08795

File tree

4 files changed

+17
-2
lines changed

4 files changed

+17
-2
lines changed

docs/src/api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ LinearKernel
2828
PolynomialKernel
2929
RationalQuadraticKernel
3030
GammaRationalQuadraticKernel
31+
PeriodicKernel
3132
ZeroKernel
3233
ConstantKernel
3334
WhiteKernel

docs/src/kernels.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ The [Polynomial Kernel](@ref KernelFunctions.PolynomialKernel) is defined as
9191
k(x,x';c,d) = \left(\langle x,x'\rangle + c\right)^d
9292
```
9393

94+
## Periodic Kernels
95+
96+
### PeriodicKernel
97+
98+
```math
99+
k(x,x';r) = \exp\left(-0.5 \sum_i (sin (π(x_i - x'_i))/r_i)^2\right)
100+
```
101+
94102
## Constant Kernels
95103

96104
### ConstantKernel

src/kernels/periodic.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
"""
22
PeriodicKernel(r::AbstractVector)
33
PeriodicKernel(dims::Int)
4+
PeriodicKernel(T::DataType, dims::Int)
5+
6+
Periodic Kernel as described in http://www.inference.org.uk/mackay/gpB.pdf eq. 47.
47
```
5-
κ(x,y) = exp(-2 * sum_i(sin (π(x_i - y_i))/r_i))
8+
κ(x,y) = exp( - 0.5 sum_i(sin (π(x_i - y_i))/r_i))
69
```
710
"""
811
struct PeriodicKernel{T} <: BaseKernel
@@ -19,4 +22,6 @@ PeriodicKernel(T::DataType, dims::Int = 1) = PeriodicKernel(r = ones(T, dims))
1922

2023
metric::PeriodicKernel) = Sinus.r)
2124

22-
kappa::PeriodicKernel, d::Real) = exp(-0.5 * d)
25+
kappa::PeriodicKernel, d::Real) = exp(- 0.5d)
26+
27+
Base.show(io::IO, κ::PeriodicKernel) = print(io, "Periodic Kernel, length(r) = $(length.r))")

test/kernels/periodic.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
@test k(v1, v2) exp(-0.5 * sum(abs2, sinpi.(v1 - v2) ./ r))
77
@test k(v1, v2) == k(v2, v1)
88
@test PeriodicKernel(3)(v1, v2) == PeriodicKernel(r = ones(3))(v1, v2)
9+
@test_nowarn println(k)
910
end

0 commit comments

Comments
 (0)