Interface CopyKernel
- All Known Implementing Classes:
BooleanCopyKernel
,ByteCopyKernel
,CharCopyKernel
,DoubleCopyKernel
,FloatCopyKernel
,IntCopyKernel
,LongCopyKernel
,ObjectCopyKernel
,ShortCopyKernel
public interface CopyKernel
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescription<T extends 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 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
-