@Override public ADouble deserialize(DataInput in) throws HyracksDataException { return new ADouble(DoubleSerializerDeserializer.read(in)); }
/** * Applies certain math function (e.g., ceil or floor) to a double value and returns that value. */ public static double applyMathFunctionToDoubleValue(IAObject sourceObject, TypeCastingMathFunctionType mathFunction) throws RuntimeDataException { switch (mathFunction) { case CEIL: return Math.ceil(((ADouble) sourceObject).getDoubleValue()); case FLOOR: return Math.floor(((ADouble) sourceObject).getDoubleValue()); default: return ((ADouble) sourceObject).getDoubleValue(); } }
@Override public boolean deepEqual(IAObject obj) { return equals(obj); }
@Override public int hash() { return hashCode(); }
@Override public boolean equals(Object obj) { if (!(obj instanceof ADouble)) return false; return Double.doubleToLongBits(value) == Double.doubleToLongBits(((ADouble) obj).getDoubleValue()); }
@Override public IAObject convertType(IAObject sourceObject, TypeCastingMathFunctionType mathFunction) throws HyracksDataException { if (mathFunction != TypeCastingMathFunctionType.NONE) { throw new RuntimeDataException(ErrorCode.INVALID_TYPE_CASTING_MATH_FUNCTION, mathFunction, ATypeTag.FLOAT, ATypeTag.DOUBLE); } double targetValue = ((AFloat) sourceObject).getFloatValue(); return new ADouble(targetValue); }
@Override public void serialize(ADouble instance, DataOutput out) throws HyracksDataException { DoubleSerializerDeserializer.write(instance.getDoubleValue(), out); }
private static IAObject createValue(IAType type, Number value) { switch (type.getTypeTag()) { case TINYINT: return new AInt8(value.byteValue()); case SMALLINT: return new AInt16(value.shortValue()); case INTEGER: return new AInt32(value.intValue()); case BIGINT: return new AInt64(value.longValue()); case FLOAT: return new AFloat(value.floatValue()); case DOUBLE: return new ADouble(value.doubleValue()); default: throw new IllegalStateException(type.toString()); } }
@Override public IAObject convertType(IAObject sourceObject, TypeCastingMathFunctionType mathFunction) throws HyracksDataException { if (mathFunction != TypeCastingMathFunctionType.NONE) { throw new RuntimeDataException(ErrorCode.INVALID_TYPE_CASTING_MATH_FUNCTION, mathFunction, ATypeTag.DOUBLE, ATypeTag.FLOAT); } double sourceValue = ((ADouble) sourceObject).getDoubleValue(); float targetValue = convert(sourceValue); return new AFloat(targetValue); }
@Override public IAObject convertType(IAObject sourceObject, TypeCastingMathFunctionType mathFunction) throws HyracksDataException { long val; switch (sourceObject.getType().getTypeTag()) { case TINYINT: val = ((AInt8) sourceObject).getByteValue(); break; case SMALLINT: val = ((AInt16) sourceObject).getShortValue(); break; case INTEGER: val = ((AInt32) sourceObject).getIntegerValue(); break; case BIGINT: val = ((AInt64) sourceObject).getLongValue(); break; default: throw new RuntimeDataException(ErrorCode.TYPE_CONVERT_INTEGER_SOURCE, Arrays.toString( new ATypeTag[] { ATypeTag.TINYINT, ATypeTag.SMALLINT, ATypeTag.INTEGER, ATypeTag.BIGINT })); } return new ADouble(val); } }
public static String aObjToString(IAObject aObj) throws AlgebricksException { switch (aObj.getType().getTypeTag()) { case DOUBLE: return Double.toString(((ADouble) aObj).getDoubleValue()); case BIGINT: return Long.toString(((AInt64) aObj).getLongValue()); case ARRAY: return aOrderedListToString((AOrderedList) aObj); case STRING: return ((AString) aObj).getStringValue(); case BOOLEAN: return ((ABoolean) aObj).getBoolean().toString(); default: throw new AlgebricksException("value of type " + aObj.getType() + " is not supported yet"); } }
public static IAObject objectFromLiteral(Literal valLiteral) { switch (valLiteral.getLiteralType()) { case DOUBLE: DoubleLiteral d = (DoubleLiteral) valLiteral; return new ADouble(d.getValue()); case FALSE: return ABoolean.FALSE; case FLOAT: FloatLiteral fl = (FloatLiteral) valLiteral; return new AFloat(fl.getValue()); case INTEGER: IntegerLiteral il = (IntegerLiteral) valLiteral; return new AInt32(il.getValue()); case LONG: LongIntegerLiteral ll = (LongIntegerLiteral) valLiteral; return new AInt64(ll.getValue()); case MISSING: return AMissing.MISSING; case NULL: return ANull.NULL; case STRING: StringLiteral sl = (StringLiteral) valLiteral; return new AString(sl.getValue()); case TRUE: return ABoolean.TRUE; default: throw new IllegalStateException(); } }
jaccThresh = constVal.getObject(); } else { jaccThresh = new AFloat((float) ((ADouble) constVal.getObject()).getDoubleValue()); threshVal = ((AFloat) constVal.getObject()).getFloatValue(); } else { threshVal = (float) ((ADouble) constVal.getObject()).getDoubleValue();