duplicate
Returns a duplicate FloatBuffer that shares the underlying data buffer reference but has independent position, limit, and mark values. Changes to the underlying data will be visible in both buffers.
NOTE: This differs from the provided LongBuffer's duplicate which deep copies the underlying buffer. This implementation aligns more closely with Java NIO's duplicate() behavior for shared data. If a deep copy is needed, use copy() or allocate+copy manually.