Packages
inplace
0.6.7
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Mutable data structures
Current section
Files
Jump to
Current section
Files
lib/utils/packed_min_max.ex
defmodule PackedMinMax do
import Bitwise
def get_min(packed, size \\ 32) do
packed &&& all_bits_mask(size)
end
def get_max(packed, size \\ 32) do
packed >>> size
end
def set_min(packed, min_value, size \\ 32) do
get_max(packed, size) <<< size ||| min_value
end
def set_max(packed, max_value, size \\ 32) do
max_value <<< size ||| get_min(packed, size)
end
defp all_bits_mask(size) do
(1 <<< size) - 1
end
end