ableos/sysdata/libraries/stn/src/math.hb

15 lines
270 B
Plaintext
Raw Normal View History

2024-09-13 21:41:31 +00:00
shift := 31
2024-09-13 21:41:31 +00:00
// following only work for: int
2024-08-20 12:03:39 +00:00
abs := fn(x: int): int {
2024-09-13 21:41:31 +00:00
mask := x >> shift
2024-08-20 12:03:39 +00:00
return (x ^ mask) - mask
}
min := fn(a: int, b: int): int {
c := a - b
2024-09-13 21:41:31 +00:00
return b + (c & c >> shift)
}
2024-09-13 21:41:31 +00:00
max := fn(a: int, b: uint): int {
c := a - b
2024-09-13 21:41:31 +00:00
return a - (c & c >> shift)
2024-08-20 12:03:39 +00:00
}