@@ -22,55 +22,6 @@ randToPoints(distr::SamplableBelief, N::Int=1) = [rand(distr,1)[:] for i in 1:N]
2222randToPoints (distr:: ManifoldKernelDensity , N:: Int = 1 ) = rand (distr,N)
2323
2424
25- _setPointsMani! (dest:: AbstractVector , src:: AbstractVector ) = (dest .= src)
26- _setPointsMani! (dest:: AbstractMatrix , src:: AbstractMatrix ) = (dest .= src)
27- function _setPointsMani! (dest:: AbstractVector , src:: AbstractMatrix )
28- @assert size (src,2 ) == 1 " Workaround _setPointsMani! currently only allows size(::Matrix, 2) == 1"
29- _setPointsMani! (dest, src[:])
30- end
31- function _setPointsMani! (dest:: AbstractMatrix , src:: AbstractVector )
32- @assert size (dest,2 ) == 1 " Workaround _setPointsMani! currently only allows size(::Matrix, 2) == 1"
33- _setPointsMani! (view (dest,:,1 ), src)
34- end
35-
36- function _setPointsMani! (dest:: AbstractVector , src:: AbstractVector{<:AbstractVector} )
37- @assert length (src) == 1 " Workaround _setPointsMani! currently only allows Vector{Vector{P}}(...) |> length == 1"
38- _setPointsMani! (dest, src[1 ])
39- end
40-
41- function _setPointsMani! (dest:: ProductRepr , src:: ProductRepr )
42- for (k,prt) in enumerate (dest. parts)
43- _setPointsMani! (prt, src. parts[k])
44- end
45- end
46-
47- # asPartial=true indicates that src coords are smaller than dest coords, and false implying src has dummy values in placeholder dimensions
48- function _setPointsManiPartial! (Mdest:: AbstractManifold ,
49- dest,
50- Msrc:: AbstractManifold ,
51- src,
52- partial:: AbstractVector{<:Integer} ,
53- asPartial:: Bool = true )
54- #
55-
56- e0 = identity (Mdest, dest)
57- dest_ = vee (Mdest, e0, log (Mdest, e0, dest))
58-
59- e0s = identity (Msrc, src)
60- src_ = vee (Msrc, e0s, log (Msrc, e0s, src))
61-
62- # do the copy in coords
63- dest_[partial] .= asPartial ? src_ : view (src_, partial)
64-
65- # update points base in original
66- dest__ = exp (Mdest, e0, hat (Mdest, e0, dest_))
67- _setPointsMani! (dest, dest__)
68-
69- #
70- return dest
71- end
72-
73-
7425
7526"""
7627 $TYPEDSIGNATURES
@@ -79,10 +30,11 @@ Calculate the Kernel Embedding MMD 'distance' between sample points (or kernel d
7930
8031Notes
8132- `bw::Vector=[0.001;]` controls the mmd kernel bandwidths.
33+ - Overloading from ApproxManifoldProducts
8234
8335Related
8436
85- `KDE .kld`
37+ `AMP .kld`
8638"""
8739function mmd ( p1:: AbstractVector{P1} ,
8840 p2:: AbstractVector{P2} ,
0 commit comments