Package org.roaringbitmap.longlong
Class LongUtils
java.lang.Object
org.roaringbitmap.longlong.LongUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic intcompareHigh(byte[] a, byte[] b)compare according to the dictionary orderstatic longfromBDBytes(byte[] work)get the long from the big endian representation bytesstatic byte[]highPart(long num)get the high 48 bit parts of the input datastatic byte[]highPartInPlace(long num, byte[] high48)set the high 48 bit parts of the input number into the given byte arraystatic longinitWithFirst4Byte(int v)initialize a long value with the given fist 32 bitstatic longleftShiftHighPart(long num)shift the long by left the container size amount so we use the value after have done our stepsstatic charlowPart(long num)get the low 16 bit parts of the input datastatic intstatic longrightShiftHighPart(long num)shift the long right by the container size amount so we can loop across containers by +1 stepsstatic byte[]toBDBytes(long v)to big endian bytes representationstatic longtoLong(byte[] high, char low)reconstruct the long data
-
Constructor Details
-
LongUtils
public LongUtils()
-
-
Method Details
-
highPart
public static byte[] highPart(long num)get the high 48 bit parts of the input data- Parameters:
num- the long number- Returns:
- the high 48 bit
-
lowPart
public static char lowPart(long num)get the low 16 bit parts of the input data- Parameters:
num- the long number- Returns:
- the low 16 bit
-
toLong
public static long toLong(byte[] high, char low)reconstruct the long data- Parameters:
high- the high 48 bitlow- the low 16 bit- Returns:
- the long data
-
toBDBytes
public static byte[] toBDBytes(long v)to big endian bytes representation- Parameters:
v- a long value- Returns:
- the input long value's big endian byte array representation
-
fromBDBytes
public static long fromBDBytes(byte[] work)get the long from the big endian representation bytes- Parameters:
work- the byte array- Returns:
- the long data
-
compareHigh
public static int compareHigh(byte[] a, byte[] b)compare according to the dictionary order- Parameters:
a- a byte arrayb- another byte array- Returns:
- 1 indicates a greater than b,0 indicates equal,-1 indicates a smaller than b
-
initWithFirst4Byte
public static long initWithFirst4Byte(int v)initialize a long value with the given fist 32 bit- Parameters:
v- first 32 bit value- Returns:
- a long value
-
rightShiftHighPart
public static long rightShiftHighPart(long num)shift the long right by the container size amount so we can loop across containers by +1 steps- Parameters:
num- long being treated as unsigned long- Returns:
- value shifted out of value space into container high part
-
leftShiftHighPart
public static long leftShiftHighPart(long num)shift the long by left the container size amount so we use the value after have done our steps- Parameters:
num- uint48 to be shift back into uint64- Returns:
- value shifted out of container high part back into value space
-
maxLowBitAsInteger
public static int maxLowBitAsInteger() -
highPartInPlace
public static byte[] highPartInPlace(long num, byte[] high48)set the high 48 bit parts of the input number into the given byte array- Parameters:
num- the long numberhigh48- the byte array- Returns:
- the high 48 bit
-