@Nonnull public Variable newInstance() { return new Root(new Generic[parameters.length], null); } }
Sigma(Generic parameter[], int n) { root = new Generic[parameter.length - 1]; for (int i = 0; i < root.length; i++) root[i] = new Root(parameter, i).expressionValue(); place = new boolean[root.length]; this.n = n; }
public Root rootValue() { return new Root(new Generic[]{parameters[0].negate(), parameters[1]}, 0); }
public Root rootValue() { return new Root(new Generic[]{parameters[0].negate(), JsclInteger.valueOf(0), JsclInteger.valueOf(1)}, 0); }
public Generic selfElementary() { return new Ln( new Root( new Generic[]{ JsclInteger.valueOf(-1), JsclInteger.valueOf(2).multiply(parameters[0]), JsclInteger.valueOf(-1) }, 0 ).selfElementary() ).selfElementary(); }
public Generic selfElementary() { return new Ln( new Root( new Generic[]{ JsclInteger.valueOf(1), JsclInteger.valueOf(2).multiply(parameters[0]), JsclInteger.valueOf(-1) }, 0 ).selfElementary() ).selfElementary(); }
public Function parse(@Nonnull Parameters p, Generic previousSumElement) throws ParseException { int pos0 = p.getPosition().intValue(); final String name = Identifier.parser.parse(p, previousSumElement); if (name.compareTo("root") != 0) { ParserUtils.throwParseException(p, pos0, Messages.msg_11, "root"); } final Generic subscript = ParserUtils.parseWithRollback(Subscript.parser, pos0, previousSumElement, p); final Generic parameters[] = ParserUtils.parseWithRollback(ParameterListParser.parser1, pos0, previousSumElement, p); return new Root(parameters, subscript); } }
public Generic selfElementary() { return Constants.Generic.I.multiply( new Ln( new Root( new Generic[]{ Constants.Generic.I.add(parameters[0]), JsclInteger.valueOf(0), Constants.Generic.I.subtract(parameters[0]) }, 0 ).selfElementary() ).selfElementary() ); }
public Root rootValue() { return new Root( new Generic[]{ parameters[0].negate(), JsclInteger.valueOf(0), JsclInteger.valueOf(0), JsclInteger.valueOf(1) }, 0 ); }
public Generic selfElementary() { return new Ln( new Root( new Generic[]{ JsclInteger.valueOf(1).add(parameters[0]), JsclInteger.valueOf(0), JsclInteger.valueOf(1).subtract(parameters[0]) }, 0 ).selfElementary() ).selfElementary(); }
public Generic selfElementary() { return new Ln( new Root( new Generic[]{ JsclInteger.valueOf(1).add(parameters[0]), JsclInteger.valueOf(0), JsclInteger.valueOf(-1).add(parameters[0]) }, 0 ).selfElementary() ).selfElementary(); }
public Generic selfElementary() { return Constants.Generic.I.multiply( new Ln( new Root( new Generic[]{ JsclInteger.valueOf(-1), JsclInteger.valueOf(2).multiply(parameters[0]), JsclInteger.valueOf(-1) }, 0 ).selfElementary() ).selfElementary() ); }
public Generic selfElementary() { return Constants.Generic.I.multiply( new Ln( new Root( new Generic[]{ JsclInteger.valueOf(-1), JsclInteger.valueOf(2).multiply(Constants.Generic.I.multiply(parameters[0])), JsclInteger.valueOf(1) }, 0 ).selfElementary() ).selfElementary() ); }
int branch(Generic generic, UnivariatePolynomial polynomial) { int n = polynomial.degree(); Variable t = new TechnicalVariable("t"); linear = true; for (int i = 0; i < n; i++) { constraints.clear(); process(new Constraint(t, t.expressionValue().subtract(generic.subtract(new Root(polynomial, i).expressionValue())), false)); Generic a = polynomial(t).solve(); if (a != null && a.signum() == 0) { return i; } } return n; }
public Generic selfElementary() { return Constants.Generic.I.multiply( new Ln( new Root( new Generic[]{ JsclInteger.valueOf(-1).add(Constants.Generic.I.multiply(parameters[0])), JsclInteger.valueOf(0), JsclInteger.valueOf(1).add(Constants.Generic.I.multiply(parameters[0])) }, 0 ).selfElementary() ).selfElementary() ); }
void linear(Generic generic) { Variable t = new TechnicalVariable("t"); linear = true; constraints.clear(); process(new Constraint(t, t.expressionValue().subtract(generic), false)); UnivariatePolynomial p = polynomial(t); switch (p.degree()) { case 0: result = generic; break; default: result = new Root(p, 0).selfSimplify(); } }
public Root rootValue() throws NotRootException { try { Variable v = parameters[1].variableValue(); if (v instanceof Inverse) { Generic g = ((Inverse) v).parameter(); try { int d = g.integerValue().intValue(); if (d > 0 && d < MAX_ARRAY_SIZE) { Generic a[] = new Generic[d + 1]; a[0] = parameters[0].negate(); for (int i = 1; i < d; i++) { a[i] = ZERO; } a[d] = ONE; return new Root(a, 0); } } catch (NotIntegerException e) { } } } catch (NotVariableException e) { } throw new NotRootException(); }
public Generic selfExpand() { final Variable variable = parameters[1].variableValue(); int subscript = parameters[2].integerValue().intValue(); if (parameters[0].isPolynomial(variable)) { return new Root((UnivariatePolynomial) Polynomial.factory(variable).valueOf(parameters[0]), subscript).selfExpand(); } return expressionValue(); }
@Nonnull public Generic derivative(@Nonnull Variable variable) { if (compareTo(variable) == 0) { return JsclInteger.valueOf(1); } else { Variable t = new TechnicalVariable("t"); Generic a[] = new Generic[parameters.length]; for (int i = 0; i < parameters.length; i++) a[i] = parameters[i].derivative(variable); UnivariatePolynomial fact = (UnivariatePolynomial) Polynomial.factory(this); UnivariatePolynomial p = fact.valueof(parameters); UnivariatePolynomial q = (UnivariatePolynomial) p.derivative().multiply(t.expressionValue()).add(fact.valueof(a)); UnivariatePolynomial r = (UnivariatePolynomial) Polynomial.factory(t).valueOf(p.resultant(q)); return new Root(r.elements(), subscript).selfExpand(); } }
Generic trager(Generic a, Generic d) { Debug.println("trager(" + a + ", " + d + ")"); Variable t = new TechnicalVariable("t"); UnivariatePolynomial pd = (UnivariatePolynomial) factory.valueOf(d); UnivariatePolynomial pa = (UnivariatePolynomial) factory.valueOf(a).subtract(pd.derivative().multiply(t.expressionValue())); UnivariatePolynomial rs[] = pd.remainderSequence(pa); Polynomial fact = UnivariatePolynomial.factory(t); for (int i = 0; i < rs.length; i++) if (rs[i] != null) rs[i] = (UnivariatePolynomial) fact.valueOf((i > 0 ? rs[i].normalize() : rs[i]).genericValue()); UnivariatePolynomial q[] = rs[0].squarefreeDecomposition(); int m = q.length - 1; Generic s = JsclInteger.valueOf(0); for (int i = 1; i <= m; i++) { for (int j = 0; j < q[i].degree(); j++) { Generic a2 = new Root(q[i], j).selfExpand(); s = s.add(a2.multiply(new Ln(i == pd.degree() ? d : rs[i].substitute(a2)).selfExpand())); } } return s; }