@Override public void setFloat(long byteIndex, float[] source, int elemoff, int numElems) { for ( int i=0; i <numElems; i++ ) { buffer.putFloat((int) (byteIndex+4*i),source[i+elemoff]); } }
@Override public void init(ByteBuffer buf, int position) { buf.putFloat(position, Float.NEGATIVE_INFINITY); }
@Override public void init(ByteBuffer buf, int position) { buf.putFloat(position, Float.POSITIVE_INFINITY); }
@Override public void init(ByteBuffer buf, int position) { buf.putFloat(position, 0.0f); } }
@Override public FloatBuffer put (int index, float c) { if (index < 0 || index >= limit) { throw new IndexOutOfBoundsException(); } byteBuffer.putFloat(index << 2, c); return this; }
@Override public FloatBuffer put (int index, float c) { if (index < 0 || index >= limit) { throw new IndexOutOfBoundsException(); } byteBuffer.putFloat(index << 2, c); return this; }
@Override public void init(ByteBuffer buf, int position) { buf.putLong(position, Long.MIN_VALUE); buf.putFloat(position + Long.BYTES, 0); }
@Override public void aggregate(ByteBuffer buf, int position, float value) { buf.putFloat(position, buf.getFloat(position) + value); }
@Override public void init(ByteBuffer buf, int position) { buf.putLong(position, Long.MAX_VALUE); buf.putFloat(position + Long.BYTES, 0); }
@Override public void aggregate(ByteBuffer buf, int position, float value) { buf.putFloat(position, Math.max(buf.getFloat(position), value)); } }
@Override public void aggregate(ByteBuffer buf, int position, float value) { buf.putFloat(position, Math.min(buf.getFloat(position), value)); } }
@Override public FloatBuffer put (float c) { if (position == limit) { throw new BufferOverflowException(); } byteBuffer.putFloat(position++ << 2, c); return this; }
@Override public FloatBuffer put (float c) { if (position == limit) { throw new BufferOverflowException(); } byteBuffer.putFloat(position++ << 2, c); return this; }
@Override public byte[] getCacheKey() { byte[] fieldNameBytes = StringUtils.toUtf8(fieldName); return ByteBuffer.allocate(1 + fieldNameBytes.length + Integer.BYTES * 2 + Float.BYTES * 2) .put(AggregatorUtil.APPROX_HIST_CACHE_TYPE_ID) .put(fieldNameBytes) .putInt(resolution) .putInt(numBuckets) .putFloat(lowerLimit) .putFloat(upperLimit).array(); }
@Override public void writeToKeyBuffer(int keyBufferPosition, @Nullable Object obj, ByteBuffer keyBuffer) { keyBuffer.putFloat(keyBufferPosition, DimensionHandlerUtils.nullToZero((Float) obj)); }
public CacheKeyBuilder appendFloat(float input) { appendItem(FLOAT_KEY, ByteBuffer.allocate(Float.BYTES).putFloat(input).array()); return this; }
void writeFloat(WritableByteChannel out, float floatValue) throws IOException { final ByteBuffer buffer = ByteBuffer.allocate(Float.BYTES); buffer.putFloat(floatValue); buffer.flip(); Channels.writeFully(out, buffer); }
@Override public void aggregate(ByteBuffer buf, int position) { long time = timeSelector.getLong(); long lastTime = buf.getLong(position); if (time >= lastTime) { buf.putLong(position, time); buf.putFloat(position + Long.BYTES, valueSelector.getFloat()); } }
@Override public void aggregate(ByteBuffer buf, int position) { long time = timeSelector.getLong(); long firstTime = buf.getLong(position); if (time < firstTime) { buf.putLong(position, time); buf.putFloat(position + Long.BYTES, valueSelector.getFloat()); } }
@Override public boolean putToKeyBuffer(RowBasedKey key, int idx) { keyBuffer.putFloat(DimensionHandlerUtils.nullToZero((Float) key.getKey()[idx])); return true; }