Exemplo n.º 1
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()));
 }
Exemplo n.º 2
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()));
 }
Exemplo n.º 3
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());
 }
Exemplo n.º 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()));
 }
Exemplo n.º 5
0
 /* 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);
 }