/** Returns {@code this} where {@code f[offset:offset + length] = array/buffer[i]} */ public abstract FloatIndexer get(long i, float[] f, int offset, int length); /** Returns {@code array/buffer[i * strides[0] + j]} */
/** Returns {@code this} where {@code f[offset:offset + length] = array/buffer[i * strides[0] + j]} */ public abstract FloatIndexer get(long i, long j, float[] f, int offset, int length); /** Returns {@code array/buffer[i * strides[0] + j * strides[1] + k]} */
/** Returns {@code this} where {@code f[offset:offset + length] = array/buffer[index(indices)]} */ public abstract FloatIndexer get(long[] indices, float[] f, int offset, int length);
@Override public double getDouble(long... indices) { return get(indices); } @Override public FloatIndexer putDouble(long[] indices, double f) { return put(indices, (float)f); }
@Override public double getDouble(long i) { if (indexer == null) { throw new IllegalStateException("Indexer must never be null"); } if (dataType() == Type.FLOAT) { return ((FloatIndexer) indexer).get(offset() + i); } else if (dataType() == Type.INT) { return ((IntIndexer) indexer).get(offset() + i); } else if (dataType() == Type.LONG) { return ((LongRawIndexer) indexer).get(offset() + i); } else { return ((DoubleIndexer) indexer).get(offset() + i); } }
@Override public long getLong(long i) { if (dataType() == Type.FLOAT) { return (long) ((FloatIndexer) indexer).get(offset() + i); } else if (dataType() == Type.INT) { return (long) ((IntIndexer) indexer).get(offset() + i); } else if (dataType() == Type.DOUBLE) { return (long) ((DoubleIndexer) indexer).get(offset() + i); } else { return ((LongIndexer) indexer).get(offset() + i); } }
@Override public int getInt(long i) { if (dataType() == Type.DOUBLE) { return (int) ((DoubleIndexer) indexer).get(offset() + i); } else if (dataType() == Type.INT) { return ((IntIndexer) indexer).get(offset() + i); } else if (dataType() == Type.LONG) { return (int) ((LongIndexer) indexer).get(offset() + i); } else { return (int) ((FloatIndexer) indexer).get(offset() + i); } }
@Override public float getFloat(long i) { if (dataType() == Type.DOUBLE) { return (float) ((DoubleIndexer) indexer).get(offset() + i); } else if (dataType() == Type.INT) { return ((IntIndexer) indexer).get(offset() + i); } else if (dataType() == Type.LONG) { return ((LongRawIndexer) indexer).get(offset() + i); } else if (dataType() == Type.HALF) { return ((HalfIndexer) indexer).get(offset() + i); } else { return ((FloatIndexer) indexer).get(offset() + i); } }