Package ai.rapids.cudf
Class Aggregation128Utils
java.lang.Object
ai.rapids.cudf.Aggregation128Utils
Utility methods for breaking apart and reassembling 128-bit values during aggregations
to enable hash-based aggregations and detect overflows.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Table
combineInt64SumChunks
(Table chunks, DType type) Reassemble a column of 128-bit values from a table of four 64-bit integer columns and check for overflow.static ColumnVector
extractInt32Chunk
(ColumnView col, DType outType, int chunkIdx) Extract a 32-bit chunk from a 128-bit value.
-
Constructor Details
-
Aggregation128Utils
public Aggregation128Utils()
-
-
Method Details
-
extractInt32Chunk
Extract a 32-bit chunk from a 128-bit value.- Parameters:
col
- column of 128-bit values (e.g.: DECIMAL128)outType
- integer type to use for the output column (e.g.: UINT32 or INT32)chunkIdx
- index of the 32-bit chunk to extract where 0 is the least significant chunk and 3 is the most significant chunk- Returns:
- column containing the specified 32-bit chunk of the input column values. A null input row will result in a corresponding null output row.
-
combineInt64SumChunks
Reassemble a column of 128-bit values from a table of four 64-bit integer columns and check for overflow. The 128-bit value is reconstructed by overlapping the 64-bit values by 32-bits. The least significant 32-bits of the least significant 64-bit value are used directly as the least significant 32-bits of the final 128-bit value, and the remaining 32-bits are added to the next most significant 64-bit value. The lower 32-bits of that sum become the next most significant 32-bits in the final 128-bit value, and the remaining 32-bits are added to the next most significant 64-bit input value, and so on.- Parameters:
chunks
- table of four 64-bit integer columns with the columns ordered from least significant to most significant. The last column must be of type INT64.type
- the type to use for the resulting 128-bit value column- Returns:
- table containing a boolean column and a 128-bit value column of the requested type. The boolean value will be true if an overflow was detected for that row's value when it was reassembled. A null input row will result in a corresponding null output row.
-