/** {@inheritDoc} */ @Override public IExpr dec() { return add(F.CN1); }
/** {@inheritDoc} */ @Override public IExpr inc() { return add(F.C1); }
@Override public IExpr plus(final IExpr that) { if (that instanceof IntegerSym) { return this.add((IntegerSym) that); } if (isZero()) { return that; } if (that instanceof FractionSym) { return FractionSym.valueOf(fInteger).add((FractionSym) that); } return super.plus(that); }
@Override public IRational add(IRational parm1) { if (parm1.isZero()) { return this; } if (parm1 instanceof IFraction) { return add((IFraction) parm1); } if (parm1 instanceof IntegerSym) { IntegerSym is = (IntegerSym) parm1; long newnum = fNumerator + (long) fDenominator * (long) is.fIntValue; return valueOf(newnum, fDenominator); } BigInteger newnum = toBigNumerator().add(toBigDenominator().multiply(parm1.toBigNumerator())); return valueOf(newnum, toBigDenominator()); }
/** {@inheritDoc} */ public ISignedNumber minus(ISignedNumber that) { if (that instanceof FractionSym) { return this.add((FractionSym) that.negate()); } if (isZero()) { return that.negate(); } if (that instanceof IntegerSym) { return this.minus(valueOf(((IntegerSym) that).fInteger)); } return Num.valueOf(doubleValue() - that.doubleValue()); }