static Generic linear(Generic parameter[]) { Generic a = new Fraction(parameter[0], parameter[1]).selfSimplify(); return a.negate(); }
public Generic selfSimplify() { if (parameters[0].signum() < 0) { return new Fraction(parameters[0].negate(), parameters[1]).selfSimplify().negate(); } if (parameters[1].signum() < 0) { return new Fraction(parameters[0].negate(), parameters[1].negate()).selfSimplify(); } return selfExpand(); }
static Generic quadratic(Generic parameter[], int subscript) { Generic a = new Fraction(parameter[1], parameter[2]).selfSimplify(); Generic b = new Fraction(parameter[0], parameter[2]).selfSimplify(); Generic y = new Sqrt( a.pow(2).subtract(JsclInteger.valueOf(4).multiply(b)) ).selfSimplify(); switch (subscript) { case 0: return new Fraction( a.subtract(y), JsclInteger.valueOf(2) ).selfSimplify().negate(); default: return new Fraction( a.add(y), JsclInteger.valueOf(2) ).selfSimplify().negate(); } }
static Generic nth(Generic parameter[]) { int degree = parameter.length - 1; Generic a = new Fraction(parameter[0], parameter[degree]).selfSimplify(); return new Pow( a.negate(), new Inverse(JsclInteger.valueOf(degree)).selfSimplify() ).selfSimplify(); }
public Generic identity(Generic a, Generic b) { Generic ta = new Tan(a).selfSimplify(); Generic tb = new Tan(b).selfSimplify(); return new Fraction( ta.add(tb), JsclInteger.valueOf(1).subtract( ta.multiply(tb) ) ).selfSimplify(); }
public Generic identity(Generic a, Generic b) { Generic ta = new Cot(a).selfSimplify(); Generic tb = new Cot(b).selfSimplify(); return new Fraction( ta.multiply(tb).subtract(JsclInteger.valueOf(1)), ta.add(tb) ).selfSimplify(); }
public Generic identity(Generic a, Generic b) { Generic ta = new Tanh(a).selfSimplify(); Generic tb = new Tanh(b).selfSimplify(); return new Fraction( ta.add(tb), JsclInteger.valueOf(1).add( ta.multiply(tb) ) ).selfSimplify(); }
public Generic identity(Generic a, Generic b) { Generic ta = new Coth(a).selfSimplify(); Generic tb = new Coth(b).selfSimplify(); return new Fraction( ta.multiply(tb).add(JsclInteger.valueOf(1)), ta.add(tb) ).selfSimplify(); }
@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; }
static Generic cubic(Generic parameter[], int subscript) { Generic a = new Fraction(parameter[2], parameter[3]).selfSimplify(); Generic b = new Fraction(parameter[1], parameter[3]).selfSimplify(); Generic c = new Fraction(parameter[0], parameter[3]).selfSimplify(); Generic y[] = new Generic[2]; for (int i = 0; i < y.length; i++) { }, ).selfSimplify() ).selfSimplify(); a.subtract(y[0]).subtract(y[1]), JsclInteger.valueOf(3) ).selfSimplify().negate(); case 1: return new Fraction( a.subtract(Constants.Generic.J.multiply(y[0])).subtract(Constants.Generic.J_BAR.multiply(y[1])), JsclInteger.valueOf(3) ).selfSimplify().negate(); default: return new Fraction( a.subtract(Constants.Generic.J_BAR.multiply(y[0])).subtract(Constants.Generic.J.multiply(y[1])), JsclInteger.valueOf(3) ).selfSimplify().negate();
static Generic quartic(Generic parameter[], int subscript) { Generic a = new Fraction(parameter[3], parameter[4]).selfSimplify(); Generic b = new Fraction(parameter[2], parameter[4]).selfSimplify(); Generic c = new Fraction(parameter[1], parameter[4]).selfSimplify(); Generic d = new Fraction(parameter[0], parameter[4]).selfSimplify(); Generic y[] = new Generic[3]; for (int i = 0; i < y.length; i++) { ).selfSimplify() ).selfSimplify(); a.add(y[0]).subtract(y[1]).subtract(y[2]), JsclInteger.valueOf(4) ).selfSimplify().negate(); case 1: return new Fraction( a.subtract(y[0]).subtract(y[1]).add(y[2]), JsclInteger.valueOf(4) ).selfSimplify().negate(); case 2: return new Fraction( a.add(y[0]).add(y[1]).add(y[2]), JsclInteger.valueOf(4) ).selfSimplify().negate(); default: return new Fraction( a.subtract(y[0]).add(y[1]).subtract(y[2]), JsclInteger.valueOf(4) ).selfSimplify().negate();
if (n[0].compareTo(JsclInteger.valueOf(1)) == 0 && n[1].compareTo(JsclInteger.valueOf(1)) == 0) ; else return new Pow( new Exp(n[2]).selfSimplify(), new Fraction(n[0], n[1]).selfSimplify() ).selfSimplify();
if (n[0].compareTo(JsclInteger.valueOf(1)) == 0 && n[1].compareTo(JsclInteger.valueOf(1)) == 0) ; else return new Conjugate(n[2]).selfSimplify().multiply( new Fraction(n[0], n[1]).selfSimplify() ); return expressionValue();