Interface CopyKernel
- All Known Implementing Classes:
BooleanCopyKernel
,ByteCopyKernel
,CharCopyKernel
,DoubleCopyKernel
,FloatCopyKernel
,IntCopyKernel
,LongCopyKernel
,ObjectCopyKernel
,ShortCopyKernel
public interface CopyKernel
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
CopyKernel.Utils
-
Method Summary
Modifier and Type Method Description <T extends Attributes.Any>
voidconditionalCopy(WritableChunk<T> output, Object baseInput, Object overInput, long[] useOverInput, int srcOffset, int dstOffset, int length)
Copy values from baseInput / overInput into output.static CopyKernel
makeCopyKernel(ChunkType chunkType)
-
Method Details
-
makeCopyKernel
-
conditionalCopy
<T extends Attributes.Any> void conditionalCopy(WritableChunk<T> output, Object baseInput, Object overInput, long[] useOverInput, int srcOffset, int dstOffset, int length)Copy values from baseInput / overInput into output.Pseudo-implementation: output[i] = useOverInput.forBit(i) ? overInput[i] : baseInput[i];
Note that useOverInput should cover the same data range as baseInput such that
useOverInput.length == (overInput.length + 63) / 64
is true.- Parameters:
output
- the output chunkbaseInput
- the input array to use when bit in useOverInput is zero (array)overInput
- the input array to use when bit in useOverInput is one (array)useOverInput
- the bitset array to indicate whether to use baseInput or overInput for each elementsrcOffset
- the offset in baseInput/overInputdstOffset
- the offset in outputlength
- the number of elements to copy
-