Skip to content

Commit

Permalink
KrancScript.m: Simplify and correct algebraic operations
Browse files Browse the repository at this point in the history
  • Loading branch information
ianhinder committed Mar 21, 2012
1 parent 15201cd commit 016b5dc
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions Tools/CodeGen/KrancScript.m
Expand Up @@ -148,13 +148,15 @@

process["expr"[mul_]] := process[mul];
process["expr"[]] := 0;
process["expr"[a_, "addop"["-"], b_,cs___]] := process[a] - process[b] + process["expr"[cs]];
process["expr"[a_, "addop"["+"], bs__]] := process[a] + process["expr"[bs]];

(* Addition, subtraction, multiplication and division are all left-associative *)
process["expr"[cs___, a_, "addop"["+"], b_]] := process["expr"[cs,a]] + process[b];
process["expr"[cs___, a_, "addop"["-"], b_]] := process["expr"[cs,a]] - process[b];

process["mul"[pow_]] := process[pow];
process["mul"[]] := 1;
process["mul"[a_, "mulop"["/"], b_,cs___]] := Times[process[a] / process[b],process["mul"[cs]]];
process["mul"[a_, "mulop"["*"], bs__]] := process[a] * process["mul"[bs]];
process["mul"[cs___, a_, "mulop"["*"], b_]] := process["mul"[cs,a]] * process[b];
process["mul"[cs___, a_, "mulop"["/"], b_]] := process["mul"[cs,a]] / process[b];

process["pow"[a_,b_]] := process[a]^process[b];
process["pow"[a_]] := process[a];
Expand Down

0 comments on commit 016b5dc

Please sign in to comment.