// Copyright 2026 MoonBit DSP Authors
// Apache-2.0 License

///|
fn main {
  println("=== MoonBit DSP: Unscented Kalman Filter (UKF) Tracker Demo ===")

  let x_mean = @math.Matrix::new(2, 1)
  x_mean.set(0, 0, 10.0) // Position
  x_mean.set(1, 0, 2.5) // Velocity

  let p_cov = @math.Matrix::identity(2).scale(0.5)

  let sigmas = @kalman_ext.generate_sigma_points(x_mean, p_cov, 1.0, 2.0, 0.0)
  println(
    "Generated \{sigmas.num_points} sigma points for 2D state UKF tracking.",
  )

  let rec_mean = @kalman_ext.recombine_sigma_mean(sigmas)
  println(
    "Recombined State Mean: pos=\{rec_mean.get(0, 0)}, vel=\{rec_mean.get(1, 0)}",
  )
  println("UKF tracking demo finished successfully.")
}