### Question:
RealOperators { @ScalarOperator(CAST) @SqlType(StandardTypes.DOUBLE) public static double castToDouble(@SqlType(StandardTypes.REAL) long value) { return (double) intBitsToFloat((int) value); } private  RealOperators(); @ScalarOperator(ADD) @SqlType(StandardTypes.REAL) static long add(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right); @ScalarOperator(SUBTRACT) @SqlType(StandardTypes.REAL) static long subtract(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right); @ScalarOperator(MULTIPLY) @SqlType(StandardTypes.REAL) static long multiply(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right); @ScalarOperator(DIVIDE) @SqlType(StandardTypes.REAL) static long divide(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right); @ScalarOperator(MODULUS) @SqlType(StandardTypes.REAL) static long modulus(@SqlType(StandardTypes.REAL) long left, @SqlType(StandardTypes.REAL) long right); @ScalarOperator(NEGATION) @SqlType(StandardTypes.REAL) static long negate(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @LiteralParameters("x") @SqlType("varchar(x)") static Slice castToVarchar(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.BIGINT) static long castToLong(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.INTEGER) static long castToInteger(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.SMALLINT) static long castToSmallint(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.TINYINT) static long castToTinyint(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.DOUBLE) static double castToDouble(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(CAST) @SqlType(StandardTypes.BOOLEAN) static boolean castToBoolean(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(SATURATED_FLOOR_CAST) @SqlType(StandardTypes.SMALLINT) static long saturatedFloorCastToSmallint(@SqlType(StandardTypes.REAL) long value); @ScalarOperator(SATURATED_FLOOR_CAST) @SqlType(StandardTypes.TINYINT) static long saturatedFloorCastToTinyint(@SqlType(StandardTypes.REAL) long value);  }### Answer:
@Test public void testCastToDouble() { assertFunction("CAST(REAL'754.1985' AS DOUBLE)", DOUBLE, (double) 754.1985f); assertFunction("CAST(REAL'-754.2008' AS DOUBLE)", DOUBLE, (double) -754.2008f); assertFunction("CAST(REAL'0.0' AS DOUBLE)", DOUBLE, (double) 0.0f); assertFunction("CAST(REAL'-0.0' AS DOUBLE)", DOUBLE, (double) -0.0f); assertFunction("CAST(CAST(REAL'754.1985' AS DOUBLE) AS REAL)", REAL, 754.1985f); assertFunction("CAST(REAL 'NaN' AS DOUBLE)", DOUBLE, Double.NaN); }