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