Пример #1
0
 /* 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()));
 }
Пример #2
0
 /* 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());
 }
Пример #3
0
 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;
 }
Пример #4
0
 /* 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()));
 }
Пример #5
0
 /* 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()));
 }