@Override public ShortBuffer sliceBuffer(ShortBuffer buffer) { return buffer.slice(); }
@Override public ShortBuffer sliceBuffer(ShortBuffer buffer) { return buffer.slice(); }
/** * Create a new direct byte buffer with native byte order that has the * same contents as the given short buffer. * * @param buffer The input buffer * @return The new byte buffer */ public static ByteBuffer createByteBufferFrom(ShortBuffer buffer) { ByteBuffer byteBuffer = ByteBuffer.allocateDirect(buffer.capacity() * Short.BYTES); ShortBuffer shortBuffer = byteBuffer.order(ByteOrder.nativeOrder()).asShortBuffer(); shortBuffer.put(buffer.slice()); return byteBuffer; }
private static ShortBuffer advance(ShortBuffer dataptr, int size) { dataptr.position(dataptr.position() + size); return dataptr.slice(); }
/** * Place holder for {@code Buffer.slice()}. * * @param b the buffer to slice. * @return the sliced buffer. */ public static Buffer slice(Buffer b) { if (b instanceof ByteBuffer) return ((ByteBuffer) b).slice(); if (b instanceof ShortBuffer) return ((ShortBuffer) b).slice(); if (b instanceof IntBuffer) return ((IntBuffer) b).slice(); if (b instanceof LongBuffer) return ((LongBuffer) b).slice(); if (b instanceof FloatBuffer) return ((FloatBuffer) b).slice(); if (b instanceof DoubleBuffer) return ((DoubleBuffer) b).slice(); throw new IllegalArgumentException(); } }
/** * Calls slice on the specified buffer while maintaining the byteorder. * @see #slice(java.nio.Buffer, int, int) */ @SuppressWarnings("unchecked") public static <B extends Buffer> B slice(final B buffer) { if (buffer instanceof ByteBuffer) { final ByteBuffer bb = (ByteBuffer) buffer; return (B) bb.slice().order(bb.order()); // slice and duplicate may change byte order } else if (buffer instanceof IntBuffer) { return (B) ((IntBuffer) buffer).slice(); } else if (buffer instanceof ShortBuffer) { return (B) ((ShortBuffer) buffer).slice(); } else if (buffer instanceof FloatBuffer) { return (B) ((FloatBuffer) buffer).slice(); } else if (buffer instanceof DoubleBuffer) { return (B) ((DoubleBuffer) buffer).slice(); } else if (buffer instanceof LongBuffer) { return (B) ((LongBuffer) buffer).slice(); } else if (buffer instanceof CharBuffer) { return (B) ((CharBuffer) buffer).slice(); } throw new IllegalArgumentException("unexpected buffer type: " + buffer.getClass()); }
private static ByteBuffer getByteBuffer(int size, Buffer buffer, int bufferOffset) { if (buffer instanceof ByteBuffer) { buffer.limit(size); buffer.position(bufferOffset); return (ByteBuffer) buffer; } else if (buffer instanceof IntBuffer) { size = round4(size); ByteBuffer directBuffer = allocateDirectBuffer(size); directBuffer.asIntBuffer().put((IntBuffer) ((IntBuffer) buffer).slice().limit(size >> 2)); directBuffer.position(bufferOffset); return directBuffer; } else if (buffer instanceof ShortBuffer) { size = round2(size); ByteBuffer directBuffer = allocateDirectBuffer(size); directBuffer.asShortBuffer().put((ShortBuffer) ((ShortBuffer) buffer).slice().limit(size >> 1)); directBuffer.position(bufferOffset); return directBuffer; } else if (buffer instanceof FloatBuffer) { size = round4(size); ByteBuffer directBuffer = allocateDirectBuffer(size); directBuffer.asFloatBuffer().put((FloatBuffer) ((FloatBuffer) buffer).slice().limit(size >> 2)); directBuffer.position(bufferOffset); return directBuffer; } throw new IllegalArgumentException(); }
public static ShortBuffer getDirectBuffer(int size, ShortBuffer buffer) { if (buffer == null) { return buffer; } size = round2(size); if (buffer.isDirect()) { buffer.limit((size >> 1) + buffer.position()); return buffer; } ShortBuffer directBuffer = allocateDirectBuffer(size).asShortBuffer(); directBuffer.put((ShortBuffer) ((ShortBuffer) buffer).slice().limit(size >> 1)); directBuffer.rewind(); return directBuffer; }
this.connectionCostBuffer = buffer.slice();
this.connectionCostBuffer = buffer.slice();
this.connectionCostBuffer = buffer.slice();
result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.cl_short); buffer.position(oldPosition);
result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.cl_short); buffer.position(oldPosition);
/** * Creates a new Pointer to the given buffer, taking into * account the position and array offset of the given buffer. * The buffer is assumed to be non-<code>null</code>, and * be either direct or have a backing array. * * @param buffer The buffer * @return The pointer */ private static Pointer computePointer(ShortBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.SHORT); buffer.position(oldPosition); } else if (buffer.hasArray()) { ShortBuffer t = ShortBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.SHORT); } return result; }
/** * Creates a new Pointer to the given buffer, taking into * account the position and array offset of the given buffer. * The buffer is assumed to be non-<code>null</code>, and * be either direct or have a backing array. * * @param buffer The buffer * @return The pointer */ private static Pointer computePointer(ShortBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.SHORT); buffer.position(oldPosition); } else if (buffer.hasArray()) { ShortBuffer t = ShortBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.SHORT); } return result; }
/** * Creates a new Pointer to the given buffer, taking into * account the position and array offset of the given buffer. * The buffer is assumed to be non-<code>null</code>, and * be either direct or have a backing array. * * @param buffer The buffer * @return The pointer */ private static Pointer computePointer(ShortBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.SHORT); buffer.position(oldPosition); } else if (buffer.hasArray()) { ShortBuffer t = ShortBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.SHORT); } return result; }
/** * Creates a new Pointer to the given buffer, taking into * account the position and array offset of the given buffer. * The buffer is assumed to be non-<code>null</code>, and * be either direct or have a backing array. * * @param buffer The buffer * @return The pointer */ private static Pointer computePointer(ShortBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.SHORT); buffer.position(oldPosition); } else if (buffer.hasArray()) { ShortBuffer t = ShortBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.SHORT); } return result; }