private static InternalNumber getInternalNumberFromType(Object in, int type) { if (in == null || in == BlankLiteral.INSTANCE) return new InternalNumber(0, MATH_CONTEXT); switch (type) { case BIG_DECIMAL: return new InternalNumber(((BigDecimal) in).doubleValue()); case DataTypes.BIG_INTEGER: return new InternalNumber((BigInteger) in, MathContext.DECIMAL128); case DataTypes.INTEGER: case DataTypes.W_INTEGER: return new InternalNumber((Integer) in, MathContext.DECIMAL32); case DataTypes.LONG: case DataTypes.W_LONG: return new InternalNumber((Long) in, MathContext.DECIMAL64); case DataTypes.STRING: return new InternalNumber((String) in, MathContext.DECIMAL64); case DataTypes.FLOAT: case DataTypes.W_FLOAT: return new InternalNumber((Float) in, MathContext.DECIMAL64); case DataTypes.DOUBLE: case DataTypes.W_DOUBLE: return new InternalNumber((Double) in, MathContext.DECIMAL64); case DataTypes.SHORT: case DataTypes.W_SHORT: return new InternalNumber((Short) in, MathContext.DECIMAL32); case DataTypes.CHAR: case DataTypes.W_CHAR: return new InternalNumber((Character) in, MathContext.DECIMAL32); case DataTypes.BOOLEAN: case DataTypes.W_BOOLEAN:
return ((Float) val1) * ((Float) val2); case POWER: return narrowType(new InternalNumber((Float) val1, MATH_CONTEXT).pow(new InternalNumber((Float) val2).intValue(), MATH_CONTEXT), -1); case MOD: return ((Float) val1) % ((Float) val2);
return ((Float) val1) * ((Float) val2); case POWER: return narrowType(new InternalNumber((Float) val1, MATH_CONTEXT).pow(new InternalNumber((Float) val2).intValue(), MATH_CONTEXT), -1); case MOD: return ((Float) val1) % ((Float) val2);
return ((Float) val1) * ((Float) val2); case POWER: return narrowType(new InternalNumber((Float) val1, MATH_CONTEXT).pow(new InternalNumber((Float) val2).intValue(), MATH_CONTEXT), -1); case MOD: return ((Float) val1) % ((Float) val2);
private static InternalNumber getInternalNumberFromType(Object in, int type) { if (in == null || in == BlankLiteral.INSTANCE) return new InternalNumber(0, MATH_CONTEXT); switch (type) { case BIG_DECIMAL: return new InternalNumber(((BigDecimal) in).doubleValue()); case DataTypes.BIG_INTEGER: return new InternalNumber((BigInteger) in, MathContext.DECIMAL128); case DataTypes.INTEGER: case DataTypes.W_INTEGER: return new InternalNumber((Integer) in, MathContext.DECIMAL32); case DataTypes.LONG: case DataTypes.W_LONG: return new InternalNumber((Long) in, MathContext.DECIMAL64); case DataTypes.STRING: return new InternalNumber((String) in, MathContext.DECIMAL64); case DataTypes.FLOAT: case DataTypes.W_FLOAT: return new InternalNumber((Float) in, MathContext.DECIMAL64); case DataTypes.DOUBLE: case DataTypes.W_DOUBLE: return new InternalNumber((Double) in, MathContext.DECIMAL64); case DataTypes.SHORT: case DataTypes.W_SHORT: return new InternalNumber((Short) in, MathContext.DECIMAL32); case DataTypes.CHAR: case DataTypes.W_CHAR: return new InternalNumber((Character) in, MathContext.DECIMAL32); case DataTypes.BOOLEAN: case DataTypes.W_BOOLEAN:
private static InternalNumber getInternalNumberFromType(Object in, int type) { if (in == null) return new InternalNumber(0, MATH_CONTEXT); switch (type) { case BIG_DECIMAL: return new InternalNumber(((BigDecimal) in).doubleValue()); case DataTypes.BIG_INTEGER: return new InternalNumber((BigInteger) in, MathContext.DECIMAL128); case DataTypes.INTEGER: case DataTypes.W_INTEGER: return new InternalNumber((Integer) in, MathContext.DECIMAL32); case DataTypes.LONG: case DataTypes.W_LONG: return new InternalNumber((Long) in, MathContext.DECIMAL64); case DataTypes.STRING: return new InternalNumber((String) in, MathContext.DECIMAL64); case DataTypes.FLOAT: case DataTypes.W_FLOAT: return new InternalNumber((Float) in, MathContext.DECIMAL64); case DataTypes.DOUBLE: case DataTypes.W_DOUBLE: return new InternalNumber((Double) in, MathContext.DECIMAL64); case DataTypes.SHORT: case DataTypes.W_SHORT: return new InternalNumber((Short) in, MathContext.DECIMAL32); case DataTypes.CHAR: case DataTypes.W_CHAR: return new InternalNumber((Character) in, MathContext.DECIMAL32); case DataTypes.BOOLEAN: case DataTypes.W_BOOLEAN: