public Generic selfExpand() { if (isZero()) return JsclInteger.valueOf(0); try { int s = subscript.integerValue().intValue(); switch (degree()) { case 1: return new Fraction(parameters[0], parameters[1]).selfExpand().negate(); } } catch (NotIntegerException e) { } return expressionValue(); }
public Generic selfSimplify() { if (isZero()) return JsclInteger.valueOf(0); try { int s = subscript.integerValue().intValue(); switch (degree()) { case 1: return linear(parameters); case 2: return quadratic(parameters, s); case 3: return cubic(parameters, s); case 4: return quartic(parameters, s); default: if (isNth() && s == 0) return nth(parameters); } } catch (NotIntegerException e) { } return expressionValue(); }
public static Generic compute(Root root, Variable variable) throws NotIntegrableException { int d = root.degree(); Generic a[] = root.getParameters(); boolean b = d > 0; b = b && a[0].negate().isIdentity(variable); for (int i = 1; i < d; i++) b = b && a[i].signum() == 0; b = b && a[d].compareTo(JsclInteger.valueOf(1)) == 0; if (b) { return new Pow( a[0].negate(), new Inverse(JsclInteger.valueOf(d)).selfExpand() ).antiDerivative(0); } else { throw new NotIntegrableException(); } }
public Generic selfExpand() { if (parameters[0].compareTo(JsclInteger.valueOf(1)) == 0) { return JsclInteger.valueOf(1); } if (parameters[1].signum() < 0) { return new Pow(new Inverse(parameters[0]).selfExpand(), parameters[1].negate()).selfExpand(); } try { int c = parameters[1].integerValue().intValue(); return parameters[0].pow(c); } catch (NotIntegerException e) { } try { Root r = rootValue(); int d = r.degree(); Generic g[] = r.getParameters(); Generic a = g[0].negate(); try { JsclInteger en = a.integerValue(); if (en.signum() < 0) ; else { Generic rt = en.nthrt(d); if (rt.pow(d).compareTo(en) == 0) return rt; } } catch (NotIntegerException e) { } } catch (NotRootException e) { } return expressionValue(); }
int d = r.degree(); Generic g[] = r.getParameters(); Generic a = g[0].negate();