/** * @return */ @Override public IExpr inverse() { if (NumberUtil.isNegative(fInteger)) { return FractionSym.valueOf(BigInteger.valueOf(-1), fInteger.negate()); } return FractionSym.valueOf(BigInteger.ONE, fInteger); }
/** * @return */ @Override public ISignedNumber inverse() { if (isOne()) { return this; } if (NumberUtil.isNegative(fBigIntValue)) { return AbstractFractionSym.valueOf(BigInteger.valueOf(-1), fBigIntValue.negate()); } return AbstractFractionSym.valueOf(BigInteger.ONE, fBigIntValue); }
public void convertFraction(final StringBuffer buf, final BigFraction f, final int precedence) { if (NumberUtil.isNegative(f) && (precedence > plusPrec)) { tagStart(buf, "mrow"); tag(buf, "mo", "("); } if (f.equals(BigFraction.ONE)) { tagStart(buf, "mn"); buf.append(f.getNumerator().toString()); tagEnd(buf, "mn"); } else { tagStart(buf, "mfrac"); tagStart(buf, "mn"); buf.append(f.getNumerator().toString()); tagEnd(buf, "mn"); tagStart(buf, "mn"); buf.append(f.getDenominator().toString()); tagEnd(buf, "mn"); tagEnd(buf, "mfrac"); } if (NumberUtil.isNegative(f) && (precedence > plusPrec)) { tag(buf, "mo", ")"); tagEnd(buf, "mrow"); } }
if (NumberUtil.isNegative(im)) { buf.write("-I*"); convertFraction(buf, c.getImaginaryPart().negate(), ASTNodeFactory.TIMES_PRECEDENCE);
@Override public IExpr evaluateArg1(final IExpr arg1) { if (arg1.isSignedNumber()) { final ISignedNumber in = (ISignedNumber) arg1; if (in.isNegative()) { return F.Pi; } else if (!in.equals(F.C0)) { return F.C0; } } else if (arg1.isComplex()) { final IComplex ic = (IComplex) arg1; if (ic.getRealPart().equals(BigFraction.ZERO)) { final BigFraction imaginaryPart = ic.getImaginaryPart(); if (NumberUtil.isNegative(imaginaryPart)) { return Times(F.CN1D2, F.Pi); } else if (NumberUtil.isPositive(imaginaryPart)) { return Times(F.C1D2, F.Pi); } } } return null; }