in ndarray/src/main/java/org/tensorflow/ndarray/impl/buffer/misc/BitSetDataBuffer.java [71:106]
public BooleanDataBuffer copyTo(DataBuffer<Boolean> dst, long size) {
Validator.copyToArgs(this, dst, size);
return dst.accept(new DataStorageVisitor<BooleanDataBuffer>() {
@Override
public BooleanDataBuffer visit(boolean[] array, int arrayOffset, int arrayLength) {
for (int idx = 0; idx < size; ++idx) {
array[idx + arrayOffset] = bitSet.get(idx + offset);
}
return BitSetDataBuffer.this;
}
@Override
public BooleanDataBuffer visit(BitSet dstBitSet, int dstOffset, long numBits) {
for (int idx = 0; idx < size; ++idx) {
dstBitSet.set(idx + dstOffset, bitSet.get(idx + offset));
}
return BitSetDataBuffer.this;
}
@Override
public BooleanDataBuffer fallback() {
if (dst instanceof BooleanDataBuffer) {
BooleanDataBuffer booleanDst = (BooleanDataBuffer)dst;
for (int idx = 0; idx < size; ++idx) {
booleanDst.setBoolean(bitSet.get(idx + offset), idx);
}
} else {
for (int idx = 0; idx < size; ++idx) {
dst.setObject(bitSet.get(idx + offset), idx);
}
}
return BitSetDataBuffer.this;
}
});
}