Skip to content

Commit a267406

Browse files
committed
Print of the full kernel structure via recursion
1 parent efb7d8c commit a267406

File tree

5 files changed

+33
-3
lines changed

5 files changed

+33
-3
lines changed

src/generic.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ _scale(t::ScaleTransform, metric::Euclidean, x, y) = first(t.s) * evaluate(metr
1111
_scale(t::ScaleTransform, metric::Union{SqEuclidean,DotProduct}, x, y) = first(t.s)^2 * evaluate(metric, x, y)
1212
_scale(t::ScaleTransform, metric, x, y) = evaluate(metric, apply(t, x), apply(t, y))
1313

14+
printshifted(io::IO::Kernel,shift::Int) = print(io,"")
15+
Base.show(io::IO::Kernel) = print(io,nameof(typeof(κ)))
16+
1417
### Syntactic sugar for creating matrices and using kernel functions
1518
for k in subtypes(BaseKernel)
1619
@eval begin

src/kernels/kernelproduct.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,15 @@ function kerneldiagmatrix(
4949
obsdim::Int=defaultobs) #TODO Add test
5050
reduce(hadamard,kerneldiagmatrix.kernels[i],X,obsdim=obsdim) for i in 1:length(κ))
5151
end
52+
53+
function Base.show(io::IO::KernelProduct)
54+
printshifted(io,κ,0)
55+
end
56+
57+
function printshifted(io::IO::KernelProduct, shift::Int)
58+
print(io,"Product of $(length(κ)) kernels:")
59+
for i in 1:length(κ)
60+
print(io,"\n"*("\t"^(shift+1))*"- ")
61+
printshifted(io,κ.kernels[i],shift+2)
62+
end
63+
end

src/kernels/kernelsum.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,13 @@ function kerneldiagmatrix(
7272
end
7373

7474
function Base.show(io::IO::KernelSum)
75+
printshifted(io,κ,0)
76+
end
77+
78+
function printshifted(io::IO::KernelSum, shift::Int)
7579
print(io,"Sum of $(length(κ)) kernels:")
7680
for i in 1:length(κ)
77-
print(io,"\n\t- (w=$(κ.weights[i])) $(κ.kernels[i])")
81+
print(io,"\n"*("\t"^(shift+1))*"- (w=$(κ.weights[i])) ")
82+
printshifted(io,κ.kernels[i],shift+2)
7883
end
7984
end

src/kernels/scaledkernel.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ opt_params(k::ScaledKernel) = (k.σ,opt_params(k.kernel))
1717

1818
Base.:*(w::Real,k::Kernel) = ScaledKernel(k,w)
1919

20-
Base.show(io::IO::ScaledKernel) = print(io,"$(κ.kernel)\n\t- σ = $(first.σ))")
20+
Base.show(io::IO::ScaledKernel) = printshifted(io,κ,0)
21+
22+
function printshifted(io::IO::ScaledKernel,shift::Int)
23+
printshifted(io,κ.kernel,shift)
24+
print(io,"\n"*("\t"^(shift+1))*"- σ = $(first.σ))")
25+
end

src/kernels/transformedkernel.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,9 @@ metric(κ::TransformedKernel) = metric(κ.kernel)
1111

1212
params::TransformedKernel) = (params.transform),params.kernel))
1313

14-
Base.show(io::IO::TransformedKernel) = print(io,"$(κ.kernel)\n\t- $(κ.transform)")
14+
Base.show(io::IO::TransformedKernel) = printshifted(io,κ,0)
15+
16+
function printshifted(io::IO::TransformedKernel,shift::Int)
17+
printshifted(io,κ.kernel,shift)
18+
print(io,"\n"*("\t"^(shift+1))*"- $(κ.transform)")
19+
end

0 commit comments

Comments
 (0)