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