diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-27 18:06:27 -0600 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2012-01-27 18:06:27 -0600 |
commit | 0c73c04b26837465dea4db102e2585f40ca71b7d (patch) | |
tree | 328845f559c4ea96a5121627b0a0062694b06442 | |
parent | 23daf394e23c7a745aaa5b6263b6cdae075f9d92 (diff) |
KrancScript.m: Handle multi-argument functions
We still don't check the number of arguments
-rw-r--r-- | Tools/CodeGen/KrancScript.m | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Tools/CodeGen/KrancScript.m b/Tools/CodeGen/KrancScript.m index 7998e00..9d4bc67 100644 --- a/Tools/CodeGen/KrancScript.m +++ b/Tools/CodeGen/KrancScript.m @@ -138,11 +138,11 @@ process["indices"[inds_]] := _, ThrowError["Tensor indices must start with ^ or _"]]; is]; -process["func"["name"[name_],expr_]] := +process["func"["name"[name_],exprs__]] := Module[ {fns}, - fns = {"sin" -> Sin, "cos" -> Cos}; - If[MemberQ[First/@fns,name], (name/.fns)[process[expr]], + fns = {"sin" -> Sin, "cos" -> Cos, "if" -> IfThen}; + If[MemberQ[First/@fns,name], (name/.fns)@@Map[process,{exprs}], ThrowError["Unrecognised function: ", name]]]; process["expr"[mul_]] := process[mul]; |