/** {@inheritDoc} */ @Override public IExpr dec() { return valueOf(fDouble - 1.0); }
/** * @return */ @Override public ISignedNumber opposite() { return valueOf(-fDouble); }
/** * Create a numeric value * * @param d * @return */ public static Num num(final double d) { return Num.valueOf(d); }
/** {@inheritDoc} */ @Override public IExpr inc() { return valueOf(fDouble + 1.0); }
/** * Create a numeric value * * @param d * @return */ public static INum num(final double d) { return Num.valueOf(d); }
/** * Create a numeric value * * @param d * @return */ public static Num num(final String doubleString) { return Num.valueOf(Double.parseDouble(doubleString)); }
/** {@inheritDoc} */ @Override public Num abs() { return valueOf(Math.abs(fDouble)); }
/** * @return */ // public double sqrt() { // return Math.sqrt(fDouble); // } public IExpr sqrt() { return valueOf(Math.sqrt(fDouble)); }
@Override public IExpr e1DblArg(final double arg1) { if (arg1 >= 0. && arg1 <= 2.0) { try { return Num.valueOf(org.hipparchus.special.Erf.erfcInv(arg1)); } catch (final MathIllegalStateException e) { } } return F.NIL; }
@Override public IExpr e1DblArg(final double arg1) { try { return Num.valueOf(de.lab4inf.math.functions.Erf.erf(arg1)); // return Num.valueOf(org.hipparchus.special.Erf.erf(arg1)); } catch (final MathIllegalStateException e) { } return F.NIL; }
@Override public IExpr e1DblArg(final double arg1) { try { return Num.valueOf(de.lab4inf.math.functions.Erf.erfc(arg1)); // if (arg1 >= 0. && arg1 <= 2.0) { // return Num.valueOf(org.hipparchus.special.Erf.erfc(arg1)); // } } catch (final MathIllegalStateException e) { } return F.NIL; }
@Override public IExpr e1DblArg(final double arg1) { try { if (arg1 >= -1.0 && arg1 <= 1.0) { return Num.valueOf(org.hipparchus.special.Erf.erfInv(arg1)); } } catch (final MathIllegalStateException e) { } return F.NIL; }
@Override public IExpr e2DblArg(final INum arg1, final INum arg2) { return Num.valueOf(Math.log(arg2.getRealPart()) / Math.log(arg1.getRealPart())); }
@Override public IExpr numericEvalD1(final Num arg1) { try { return Num.valueOf(org.apache.commons.math3.special.Erf.erf(arg1.getRealPart())); } catch (final MaxCountExceededException e) { } return null; }
/** {@inheritDoc} */ @Override public ISignedNumber divideBy(ISignedNumber that) { if (that instanceof IRational) { return this.divideBy((IRational) that); } return Num.valueOf(doubleValue() / that.doubleValue()); }
@Override public ISignedNumber divideBy(ISignedNumber that) { if (that instanceof BigIntegerSym) { return AbstractFractionSym.valueOf(this).divideBy(that); } if (that instanceof IFraction) { return AbstractFractionSym.valueOf(this).divideBy(that); } return Num.valueOf(fBigIntValue.doubleValue() / that.doubleValue()); }
@Override public INum add(final INum val) { if (val instanceof ApfloatNum) { return ApfloatNum.valueOf(fDouble, ((ApfloatNum) val).precision()).add(val); } return valueOf(fDouble + val.getRealPart()); }
@Override public ISignedNumber subtractFrom(ISignedNumber that) { if (that instanceof IRational) { return this.add((IRational) that.negate()); } return Num.valueOf(doubleValue() - that.doubleValue()); }
public ISignedNumber minus(ISignedNumber that) { if (that instanceof IntegerSym) { return this.add((IntegerSym) that.negate()); } if (isZero()) { return that.negate(); } if (that instanceof FractionSym) { return FractionSym.valueOf(fInteger).minus(that); } return Num.valueOf(fInteger.doubleValue() - that.doubleValue()); }
@Override public ISignedNumber divideBy(ISignedNumber that) { if (that instanceof IntegerSym) { return AbstractFractionSym.valueOf(this).divideBy(that); } if (that instanceof AbstractFractionSym) { return AbstractFractionSym.valueOf(this).divideBy(that); } return Num.valueOf((fIntValue) / that.doubleValue()); }