Change how different sensor types ar handled

This commit is contained in:
2026-07-06 13:57:09 -06:00
parent 6eb2993391
commit 8fc5088c01
21 changed files with 320 additions and 124 deletions
+42
View File
@@ -42,3 +42,45 @@ func bisect(a: Array, x, lo: int = 0, hi=null):
func insort(a: Array, x, lo: int = 0, hi=null):
return insort_right(a, x, lo, hi)
func reverse_insort_right(a: Array, x, lo: int = 0, hi=null):
lo = reverse_bisect_right(a, x, lo, hi)
a.insert(lo, x)
func reverse_bisect_right(a: Array, x, lo: int = 0, hi=null):
if lo < 0:
return
if hi == null:
hi = a.size()
var mid: int = 0
while lo < hi:
mid = (lo + hi) / 2
if -x < -a[mid]:
hi = mid
else:
lo = mid + 1
return lo
func reverse_insort_left(a: Array, x, lo:int = 0, hi=null):
lo = reverse_bisect_left(a, x, lo, hi)
a.insert(lo, x)
func reverse_bisect_left(a: Array, x, lo:int = 0, hi=null):
if lo < 0:
return
if hi == null:
hi = a.size()
var mid: int = 0
while lo < hi:
mid = (lo + hi) / 2
if -a[mid] < -x:
lo = mid + 1
else:
hi = mid
return lo
func reverse_bisect(a: Array, x, lo: int = 0, hi=null):
return reverse_bisect_right(a, x, lo, hi)
func reverse_insort(a: Array, x, lo: int = 0, hi=null):
return reverse_insort_right(a, x, lo, hi)