@Override public Entry<String, Double> next() { Entry<String, ValueObject> input = iterator.next(); return new SimpleEntry<>(input.getKey(), input.getValue().asDouble().getDouble()); }
@Override public ValueLong asLong() { return asDouble().asLong(); }
@Override public ValueString asString() throws ValueTranslationException { return asDouble().asString(); }
@Override public void setValues(ValueMap map) { targetEpoch = map.get("targetEpoch").asLong().asNative(); numObservations = map.get("numObservations").asLong().asNative().intValue(); doubleToLongBits = map.get("doubleToLongBits").asLong().asNative().intValue() == 1; raw = map.get("raw").asLong().asNative().intValue() == 1; percentile = map.get("percentile").asDouble().asNative(); sigma = map.get("sigma").asDouble().asNative(); minMeasurement = map.get("minMeasurement").asLong().asNative().intValue(); mode = map.get("mode").asString().asNative(); long minEpoch = map.get("minEpoch").asLong().asNative(); ValueArray reservoirValueObject = map.get("reservoir").asArray(); int size = reservoirValueObject.size(); int[] reservoir = new int[size]; for (int i = 0; i < size; i++) { reservoir[i] = reservoirValueObject.get(i).asLong().asNative().intValue(); } this.heldObject = new DataReservoir(minEpoch, reservoir); }
@Override public ValueDouble diff(Numeric val) { return sum(val).asDouble().diff(asDouble()); }
@Override public ValueDouble divide(Numeric val) { return sum(val).asDouble().divide(asDouble()); }
@Override public Double remove(Object key) { String stringKey = (String) key; ValueObject val = data.remove(stringKey); if (val == null) { return null; } else { return val.asDouble().getDouble(); } }
@Override public Double remove(int index) { ValueObject prev = data.remove(index); if (prev == null) return null; return prev.asDouble().getDouble(); }
@Override public Double get(int index) { ValueObject val = data.get(index); if (val == null) return null; return val.asDouble().getDouble(); }
@Override public ValueDouble avg(int count) { return ValueFactory.create(asDouble().getDouble() / (double) count); }
@Override public Double get(Object key) { String stringKey = (String) key; ValueObject val = data.get(stringKey); if (val == null) { return null; } else { return val.asDouble().getDouble(); } }
/** * @param s1 * @param s2 * @return */ private int doubleCompare(ValueObject s1, ValueObject s2) { if (s1 == s2) { return 0; } if (s1 == null) { return 1; } if (s2 == null) { return -1; } return Double.compare(ValueUtil.asNumberOrParseDouble(s1).asDouble().getDouble(), ValueUtil.asNumberOrParseDouble(s2).asDouble().getDouble()); }
/** * @param s1 * @param s2 * @return */ private static int doubleCompare(ValueObject s1, ValueObject s2) { if (s1 == s2) { return 0; } if (s1 == null) { return 1; } if (s2 == null) { return -1; } return Double.compare(ValueUtil.asNumberOrParseDouble(s1).asDouble().getDouble(), ValueUtil.asNumberOrParseDouble(s2).asDouble().getDouble()); }
@Override public Double put(String key, Double value) { ValueObject val = data.put(key, ValueFactory.create(value)); if (val == null) { return null; } else { return val.asDouble().getDouble(); } }
@Override public Double set(int index, Double element) { ValueObject prev = data.set(index, ValueFactory.create(element)); if (prev == null) return null; return prev.asDouble().getDouble(); }
@Override public void setValues(ValueMap valueMapEntries) { byte[] b = valueMapEntries.get("b").asBytes().asNative(); this.quantile = valueMapEntries.get("q").asDouble().getDouble(); this.op = OP.valueOf(valueMapEntries.get("o").asString().toString()); heldObject = TDigest.fromBytes(ByteBuffer.wrap(b)); }