From 60c98edf75900d643ddd61cbbee0f9de18fe64ee Mon Sep 17 00:00:00 2001
From: Anton Kullberg <anton.kullberg@liu.se>
Date: Thu, 11 Nov 2021 17:56:39 +0100
Subject: [PATCH] py: vectorized the gating

---
 src/gaters.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gaters.py b/src/gaters.py
index c3c5ef7..e84211d 100644
--- a/src/gaters.py
+++ b/src/gaters.py
@@ -45,9 +45,9 @@ class MahalanobisGater:
         # Derivative
         H = self.sensor_model['dhdx'](x.flatten())
         # Mahalanobis Gating
-        T = np.zeros((y.shape[1],))
-        for j in range(y.shape[1]):
-            Sk = H@P@H.T+self.sensor_model['R']
-            T[j] = eps[:, j].T@np.linalg.inv(Sk)@eps[:, j]
+        Sk = H@P@H.T+self.sensor_model['R']
+        invSk = np.linalg.inv(Sk)
+        # Computes the normalized residual for all measurements simultaneously
+        T = np.diag(np.dot(np.tensordot(eps, invSk, (0,0)), eps))
         accepted_meas = T < self.gamma
         return accepted_meas
-- 
GitLab