@Nullable private Generic simplifyFractions() { final Generic n[] = Fraction.separateCoefficient(parameters[0]); if (n[0].compareTo(JsclInteger.valueOf(1)) != 0 || n[1].compareTo(JsclInteger.valueOf(1)) != 0) { // n final Generic numerator = new Sqrt(n[0]).selfSimplify(); // d final Generic denominator = new Sqrt(n[1]).selfSimplify(); // fraction = n / d final Generic fraction = new Fraction(numerator, denominator).selfSimplify(); return new Sqrt(n[2]).selfSimplify().multiply(fraction); } return null; }
public Generic selfSimplify() { Generic coefficents[] = Fraction.separateCoefficient(parameters[0]); final Generic a = coefficents[0]; final Generic b = coefficents[1]; final Generic c = coefficents[2]; final boolean aOne = a.compareTo(ONE) == 0; final boolean bOne = b.compareTo(ONE) == 0; final boolean cOne = c.compareTo(ONE) == 0; if (aOne && bOne && cOne) { return ZERO; } else { if (aOne && bOne) { return expressionValue(); } else if (bOne && cOne) { return expressionValue(); } else { // lg ( a * c / b ) = lg ( c ) + lg( a ) - lg (b) final Generic lga = lg(a, aOne); final Generic lgb = lg(b, bOne); final Generic lgc = lg(c, cOne); return lgc.add(lga).subtract(lgb); } } }
Generic n[] = separateCoefficient(generic.negate()); return new Generic[]{n[0], n[1], n[2].negate()};
Generic n[] = Fraction.separateCoefficient(parameters[0]); if (n[0].compareTo(JsclInteger.valueOf(1)) == 0 && n[1].compareTo(JsclInteger.valueOf(1)) == 0) ; else return new Pow(
Generic n[] = Fraction.separateCoefficient(parameters[0]); if (n[0].compareTo(JsclInteger.valueOf(1)) == 0 && n[1].compareTo(JsclInteger.valueOf(1)) == 0) ; else return new Ln(n[2]).selfSimplify().add(
Generic n[] = Fraction.separateCoefficient(parameters[1]); if (n[0].compareTo(ONE) == 0 && n[1].compareTo(ONE) == 0) {
Generic n[] = Fraction.separateCoefficient(parameters[0]); if (n[0].compareTo(JsclInteger.valueOf(1)) == 0 && n[1].compareTo(JsclInteger.valueOf(1)) == 0) ; else return new Conjugate(n[2]).selfSimplify().multiply(