/* Result is the numeric value of the smallest value. */ public static SchemaTypeNumber min(SchemaTypeNumber value1, SchemaTypeNumber value2) { switch (java.lang.Math.max(value1.numericType(), value2.numericType())) { case SchemaTypeNumber.NUMERIC_VALUE_INT: return new SchemaInt(java.lang.Math.min(value1.intValue(), value2.intValue())); case SchemaTypeNumber.NUMERIC_VALUE_LONG: return new SchemaLong(java.lang.Math.min(value1.longValue(), value2.longValue())); case SchemaTypeNumber.NUMERIC_VALUE_BIGINTEGER: return new SchemaInteger(value1.bigIntegerValue().min(value2.bigIntegerValue())); case SchemaTypeNumber.NUMERIC_VALUE_FLOAT: return new SchemaFloat(java.lang.Math.min(value1.floatValue(), value2.floatValue())); case SchemaTypeNumber.NUMERIC_VALUE_DOUBLE: return new SchemaDouble(java.lang.Math.min(value1.doubleValue(), value2.doubleValue())); } return new SchemaDecimal(value1.bigDecimalValue().min(value2.bigDecimalValue())); }
/* Result is the numeric value of -value. */ public static SchemaTypeNumber unaryMinus(SchemaTypeNumber value) { switch (value.numericType()) { case SchemaTypeNumber.NUMERIC_VALUE_INT: return new SchemaInt(-value.intValue()); case SchemaTypeNumber.NUMERIC_VALUE_LONG: return new SchemaLong(-value.longValue()); case SchemaTypeNumber.NUMERIC_VALUE_BIGINTEGER: return new SchemaInteger( value.bigIntegerValue().negate()); // note: possible loss of precision case SchemaTypeNumber.NUMERIC_VALUE_FLOAT: return new SchemaFloat(-value.floatValue()); case SchemaTypeNumber.NUMERIC_VALUE_DOUBLE: return new SchemaDouble(-value.doubleValue()); } return new SchemaDecimal(value.bigDecimalValue().negate()); }
protected static SchemaTypeNumber getCommonNumberInstance( int numericType, SchemaTypeNumber a_value) { switch (numericType) { case SchemaTypeNumber.NUMERIC_VALUE_INT: return new SchemaInt(a_value.intValue()); case SchemaTypeNumber.NUMERIC_VALUE_LONG: return new SchemaLong(a_value.longValue()); case SchemaTypeNumber.NUMERIC_VALUE_BIGINTEGER: return new SchemaInteger(a_value.bigIntegerValue()); case SchemaTypeNumber.NUMERIC_VALUE_FLOAT: return new SchemaFloat(a_value.floatValue()); case SchemaTypeNumber.NUMERIC_VALUE_DOUBLE: return new SchemaDouble(a_value.doubleValue()); case SchemaTypeNumber.NUMERIC_VALUE_BIGDECIMAL: return new SchemaDecimal(a_value.bigDecimalValue()); } return null; }
/* Returns the correctly rounded positive square root of a value. */ public static SchemaTypeNumber sqrt(SchemaTypeNumber value) { switch (value.numericType()) { case SchemaTypeNumber.NUMERIC_VALUE_INT: return new SchemaInt((int) java.lang.Math.sqrt(value.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_LONG: return new SchemaLong((long) java.lang.Math.sqrt(value.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_BIGINTEGER: return new SchemaInteger( (long) java.lang.Math.sqrt(value.doubleValue())); // note: possible loss of precision case SchemaTypeNumber.NUMERIC_VALUE_FLOAT: return new SchemaFloat((float) java.lang.Math.sqrt(value.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_DOUBLE: return new SchemaDouble(java.lang.Math.sqrt(value.doubleValue())); } return new SchemaDecimal(java.lang.Math.sqrt(value.doubleValue())); }
/* Returns the value of a raised to the power of b. */ public static SchemaTypeNumber pow(SchemaTypeNumber a, SchemaTypeNumber b) { switch (java.lang.Math.max(a.numericType(), b.numericType())) { case SchemaTypeNumber.NUMERIC_VALUE_INT: return new SchemaInt((int) java.lang.Math.pow(a.doubleValue(), b.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_LONG: return new SchemaLong((long) java.lang.Math.pow(a.doubleValue(), b.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_BIGINTEGER: return new SchemaInteger((long) java.lang.Math.pow(a.doubleValue(), b.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_FLOAT: return new SchemaFloat((float) java.lang.Math.pow(a.doubleValue(), b.doubleValue())); case SchemaTypeNumber.NUMERIC_VALUE_DOUBLE: return new SchemaDouble(java.lang.Math.pow(a.doubleValue(), b.doubleValue())); } return new SchemaDecimal(java.lang.Math.pow(a.doubleValue(), b.doubleValue())); }