@Override public DoubleBuffer sliceBuffer(DoubleBuffer buffer) { return buffer.slice(); }
@Override public DoubleBuffer sliceBuffer(DoubleBuffer buffer) { return buffer.slice(); }
private static DoubleBuffer slice(final DoubleBuffer buf, final int pos, final int len) { buf.position(pos); buf.limit(pos + len); return buf.slice(); }
private static DoubleBuffer slice(final DoubleBuffer buf, final int pos, final int len) { buf.position(pos); buf.limit(pos + len); return buf.slice(); }
/** * 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()); }
public static DoubleBuffer sliced( DoubleBuffer buffer, int first, int count ) { DoubleBuffer buffer2 = buffer.duplicate( ); buffer2.limit( first + count ); buffer2.position( first ); return buffer2.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(); } }
@Override public BufferVector getRowView(int i) { int cols=this.cols; int t=i*cols; buffer.position(t); buffer.limit(t+cols); DoubleBuffer subBuffer=buffer.slice(); buffer.clear(); return BufferVector.wrap(subBuffer, cols); }
@Override public BufferVector getRowView(int i) { int cols=this.cols; int t=i*cols; buffer.position(t); buffer.limit(t+cols); DoubleBuffer subBuffer=buffer.slice(); buffer.clear(); return BufferVector.wrap(subBuffer, cols); }
@Override public AVector subVector(int offset, int length) { checkRange(offset,length); if (length==0) return Vector0.INSTANCE; if (length==this.length) return this; buffer.position(offset); buffer.limit(offset+length); DoubleBuffer newBuffer=buffer.slice(); buffer.clear(); return wrap(newBuffer,length); }
@Override public AVector subVector(int offset, int length) { checkRange(offset,length); if (length==0) return Vector0.INSTANCE; if (length==this.length) return this; buffer.position(offset); buffer.limit(offset+length); DoubleBuffer newBuffer=buffer.slice(); buffer.clear(); return wrap(newBuffer,length); }
result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.cl_double); buffer.position(oldPosition);
result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.cl_double); 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(DoubleBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.DOUBLE); buffer.position(oldPosition); } else if (buffer.hasArray()) { DoubleBuffer t = DoubleBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.DOUBLE); } 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(DoubleBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.DOUBLE); buffer.position(oldPosition); } else if (buffer.hasArray()) { DoubleBuffer t = DoubleBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.DOUBLE); } 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(DoubleBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.DOUBLE); buffer.position(oldPosition); } else if (buffer.hasArray()) { DoubleBuffer t = DoubleBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.DOUBLE); } 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(DoubleBuffer buffer) { Pointer result = null; if (buffer.isDirect()) { int oldPosition = buffer.position(); buffer.position(0); result = Pointer.to(buffer.slice()).withByteOffset( oldPosition * Sizeof.DOUBLE); buffer.position(oldPosition); } else if (buffer.hasArray()) { DoubleBuffer t = DoubleBuffer.wrap(buffer.array()); int elementOffset = buffer.position() + buffer.arrayOffset(); result = Pointer.to(t).withByteOffset( elementOffset * Sizeof.DOUBLE); } return result; }