// Copyright 2026 MoonBit DSP Authors
// Apache-2.0 License
///|
fn main {
println("=== MoonBit DSP: 2D Target Kalman Tracker Demo ===")
let dt = 0.1
let tracker = @adaptive.KalmanFilter2D::new(dt, 0.01, 0.2)
for step = 0; step < 15; step = step + 1 {
let true_pos = 5.0 * step.to_double() * dt
let noise = if step % 2 == 0 { 0.3 } else { -0.3 }
let z = true_pos + noise
let (p_est, v_est) = tracker.update(z)
println(
"Step \{step}: true=\{true_pos}, z=\{z}, pos_est=\{p_est}, vel_est=\{v_est}",
)
}
}