/** * * @param number * @param divisor * @return the remainder after a number is divided by a divisor. The result is a numeric value and has the same sign as the devisor. */ public static org.openl.meta.DoubleValue mod(org.openl.meta.DoubleValue number, org.openl.meta.DoubleValue divisor) { if (number != null && divisor != null) { org.openl.meta.DoubleValue result = new org.openl.meta.DoubleValue(MathUtils.mod(number.getValue(), divisor.getValue())); return new org.openl.meta.DoubleValue(result, NumberOperations.MOD, new org.openl.meta.DoubleValue[]{number, divisor} ); } return null; }
/** Function constructor **/ public DoubleValue(DoubleValue result, NumberOperations function, DoubleValue... params) { super(function, params); this.value = result.doubleValue(); }
public static int cast(DoubleValue x, int y) { return x.intValue(); }
/** * Is used to overload implicit cast operators from double to org.openl.meta.DoubleValue * @param x * @param y is needed to avoid ambiguity in Java method resolution * @return the casted value to org.openl.meta.DoubleValue */ public static org.openl.meta.DoubleValue autocast(double x, org.openl.meta.DoubleValue y) { return new org.openl.meta.DoubleValue((double) x); }
/** * Divides left hand operand by right hand operand * @param value1 org.openl.meta.DoubleValue * @param value2 org.openl.meta.DoubleValue * @return the result of division operation */ public static org.openl.meta.DoubleValue divide(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { // temporary commented to support operations with nulls // // validate(value1, value2, Formulas.DIVIDE.toString()); if (value1 == null && value2 == null) { return null; } if (value1 == null) { if (value2 != null && value2.doubleValue() != 0) { return new org.openl.meta.DoubleValue(value1, value2, divide(ONE, value2).getValue(), Formulas.DIVIDE); } } if (value2 == null) { return new org.openl.meta.DoubleValue(value1, value2, value1.getValue(), Formulas.DIVIDE); } if (value2.doubleValue() == 0) { // FIXME: temporary commented the throwing exception // Is needed for the one of the commercial products, pls contact Denis Levchuk // return new org.openl.meta.DoubleValue(value1, value2, Double.POSITIVE_INFINITY, Formulas.DIVIDE); } return new org.openl.meta.DoubleValue(value1, value2, Operators.divide(value1.getValue(), value2.getValue()), Formulas.DIVIDE); }
/** * Subtracts left hand operand to right hand operand * @param value1 org.openl.meta.DoubleValue * @param value2 org.openl.meta.DoubleValue * @return the result of subtraction operation */ public static org.openl.meta.DoubleValue subtract(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { // temporary commented to support operations with nulls // // validate(value1, value2, Formulas.SUBTRACT.toString()); if (value1 == null && value2 == null) { return null; } if (value1 == null) { return negative(value2); } if (value2 == null) { return value1; } return new org.openl.meta.DoubleValue(value1, value2, Operators.subtract(value1.getValue(), value2.getValue()), Formulas.SUBTRACT); }
/** * * @deprecated This method is obsolete. Use {@link #round(DoubleValue, int)} * instead * @see #round(DoubleValue, int) */ @Deprecated public static DoubleValue round(DoubleValue d, DoubleValue p) { if (d == null || p == null) { throw new OpenLRuntimeException("None of the arguments for 'round' operation can be null"); } int scale; double preRoundedValue; if (p.doubleValue() == 0) { scale = 0; preRoundedValue = d.doubleValue(); } else { scale = (int) Round.round(-Math.log10(p.doubleValue()), 0, Round.HALF_UP); preRoundedValue = d.doubleValue(); // preRoundedValue = Math.round(d.doubleValue() / p.doubleValue()) * // p.doubleValue(); } double roundedValue = Round.round(preRoundedValue, scale, Round.HALF_UP); return new DoubleValue(new DoubleValue(roundedValue), NumberOperations.ROUND, new DoubleValue[] { d, p }); }
/** * Compares two values * @param value1 * @param value2 * @return true if value1 not equal value2 */ public static boolean ne(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { if (value1 == null || value2 == null){ return value1 != value2; } return Comparison.ne(value1.getValue(), value2.getValue()); } /**
public static byte cast(DoubleValue x, byte y) { return x.byteValue(); }
public static float cast(DoubleValue x, float y) { return x.floatValue(); }
/** * * @param value * @return the <b>value</b> increased by 1 */ public static org.openl.meta.DoubleValue inc(org.openl.meta.DoubleValue value) { return add(value, ONE); }
/** *Copy the current value with new name <b>name</b> */ @Override public org.openl.meta.DoubleValue copy(String name) { return copy(this, name); }
/** * Is used to overload implicit cast operators from long to org.openl.meta.DoubleValue * @param x * @param y is needed to avoid ambiguity in Java method resolution * @return the casted value to org.openl.meta.DoubleValue */ public static org.openl.meta.DoubleValue autocast(long x, org.openl.meta.DoubleValue y) { return new org.openl.meta.DoubleValue((double) x); } /**
/** * Divides left hand operand by right hand operand * @param value1 org.openl.meta.DoubleValue * @param value2 org.openl.meta.DoubleValue * @return the result of division operation */ public static org.openl.meta.DoubleValue divide(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { // temporary commented to support operations with nulls // // validate(value1, value2, Formulas.DIVIDE.toString()); if (value1 == null && value2 == null) { return null; } if (value1 == null) { if (value2 != null && value2.doubleValue() != 0) { return new org.openl.meta.DoubleValue(value1, value2, divide(ONE, value2).getValue(), Formulas.DIVIDE); } } if (value2 == null) { return new org.openl.meta.DoubleValue(value1, value2, value1.getValue(), Formulas.DIVIDE); } if (value2.doubleValue() == 0) { // FIXME: temporary commented the throwing exception // Is needed for the one of the commercial products, pls contact Denis Levchuk // return new org.openl.meta.DoubleValue(value1, value2, Double.POSITIVE_INFINITY, Formulas.DIVIDE); } return new org.openl.meta.DoubleValue(value1, value2, Operators.divide(value1.getValue(), value2.getValue()), Formulas.DIVIDE); }
/** * Subtracts left hand operand to right hand operand * @param value1 org.openl.meta.DoubleValue * @param value2 org.openl.meta.DoubleValue * @return the result of subtraction operation */ public static org.openl.meta.DoubleValue subtract(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { // temporary commented to support operations with nulls // // validate(value1, value2, Formulas.SUBTRACT.toString()); if (value1 == null && value2 == null) { return null; } if (value1 == null) { return negative(value2); } if (value2 == null) { return value1; } return new org.openl.meta.DoubleValue(value1, value2, Operators.subtract(value1.getValue(), value2.getValue()), Formulas.SUBTRACT); }
/** * * @deprecated This method is obsolete. Use {@link #round(DoubleValue, int)} * instead * @see #round(DoubleValue, int) */ @Deprecated public static DoubleValue round(DoubleValue d, DoubleValue p) { if (d == null || p == null) { throw new OpenLRuntimeException("None of the arguments for 'round' operation can be null"); } int scale; double preRoundedValue; if (p.doubleValue() == 0) { scale = 0; preRoundedValue = d.doubleValue(); } else { scale = (int) Round.round(-Math.log10(p.doubleValue()), 0, Round.HALF_UP); preRoundedValue = d.doubleValue(); // preRoundedValue = Math.round(d.doubleValue() / p.doubleValue()) * // p.doubleValue(); } double roundedValue = Round.round(preRoundedValue, scale, Round.HALF_UP); return new DoubleValue(new DoubleValue(roundedValue), NumberOperations.ROUND, new DoubleValue[] { d, p }); }
/** * Compares two values * @param value1 * @param value2 * @return true if value1 equal value2 */ public static boolean eq(org.openl.meta.DoubleValue value1, org.openl.meta.DoubleValue value2) { if (value1 == null || value2 == null){ return value1 == value2; } return Comparison.eq(value1.getValue(), value2.getValue()); } /**
public static byte cast(DoubleValue x, byte y) { return x.byteValue(); }
public static float cast(DoubleValue x, float y) { return x.floatValue(); }
/** * * @param value * @return the <b>value</b> increased by 1 */ public static org.openl.meta.DoubleValue inc(org.openl.meta.DoubleValue value) { return add(value, ONE); }