-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Task 1: Core Underdamped Implementation (BAOAB Splitting)
File: src/psyphy/inference/mcmc/underdamped.py
Requirements:
- Implement BAOAB splitting Leimkuhler & Matthews 2013
- Define
ULDStateNamedTuple - Support configurable friction γ and temperature T
- Optional: BAB splitting as simpler alternative
- No Metropolis correction by default (biased but faster)
Splitting schemes:
-
BAOAB (default, recommended):
- B: half-step deterministic force
- A: half-step position
- O: exact Ornstein-Uhlenbeck noise
- A: half-step position
- B: half-step deterministic force
- More accurate --> Exact Ornstein-Uhlenbeck sampling (O step)
-
BAB (optional, simpler):
- B: half-step force + approximate noise
- A: full-step position
- B: half-step force
- Simpler but less accurate
Implementation note:
- Could add as splitting='bab' option
- could add Metropolis-adjusted = False option
Test cases:
- 1D Gaussian posterior: verify mean and variance recovery
- 2D correlated Gaussian: check mixing across correlation
Open questions:
- do we need multiple chain support?
Metadata
Metadata
Assignees
Labels
No labels