See: Description
| Interface | Description |
|---|---|
| RewriteRuleI |
Defines a rule for symbolic rewriting of an expression
|
| Class | Description |
|---|---|
| AbstractRewrite |
Basic implementation for a RewriteRule.
|
| CollectPowers |
Collect powers together so that x*x -> x^2 and x^n*x -> x^(n+1).
|
| ExpandBrackets |
A rule which expands brackets (a+b)*(c+d) -> a*c+a*d+b*c+b*d
|
| ExpandPower |
Expands powers (a+b)^2 -> a^2+2*a*b+b^2
|
| RewriteVisitor |
A visitor which allows rewrite rules to be added and applied.
|
RewriteRuleI providing methods
boolean test(ASTFunNode node,Node children[])
and Node apply(ASTFunNode node,Node children[]).
The set of rewriting rules can be applied using the
RewriteVisitor.
For example
Jep jep = new Jep();
jep.setComponent(new DeepCopyVisitor());
jep.setComponent(new TreeUtils());
jep.setComponent(new SimplificationVisitor());
RewriteVisitor ev = new RewriteVisitor();
jep.setComponent(ev);
RewriteRuleI expand = new ExpandBrackets();
ev.add(expand); // Add the rule
jep.reinitializeComponents(); // reinitialize Jep
Node node = jep.parse("(a+b)*(c+d)");
Node expanded = ev.rewrite(node,false); // perform the rewriting
jep.println(expanded);
Copyright © 2018 Singular Systems http://www.singularsys.com/jep