/* 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())); }
/* 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()); }
/* 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 absolute value. If the argument is not negative, the argument is returned. If the argument is negative, the negation of the argument is returned. */ public static SchemaTypeNumber abs(SchemaTypeNumber value) { if (negative(value).booleanValue()) return unaryMinus(value); return getCommonNumberInstance(value.numericType(), value); }