mschauer / ZigZagBoomerang.jl

Sleek implementations of the ZigZag, Boomerang and other assorted piecewise deterministic Markov processes for Markov Chain Monte Carlo including Sticky PDMPs for variable selection
MIT License
101 stars 7 forks source link

Unit speed with mass matrix. #110

Open mschauer opened 2 years ago

mschauer commented 2 years ago

When having a mass matrix/momentum covariance F.U,

PDMats.unwhiten(F.U, normalize!(randn(rng, length(v))))

gives a notion of a metrical unit speed. How do I have to choose the reflection

   z = F.U * ∇ϕx
   v .-= (2*dot(∇ϕx, v)/dot(∇ϕx, z)) * z

to preserve this? @SebaGraz How did you calculate the reflection under a mass matrix?

mschauer commented 2 years ago

The simplest way seems to be to keep non-unit speed but take records at an intensity proportional to speed.