Change how different sensor types ar handled
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user