diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-10-11 20:32:55 -0500 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2010-10-11 20:32:55 -0500 |
commit | 8e1f20f46f07170786de75fae15ffee82149dfcf (patch) | |
tree | 0992b207543c7499241e61b121413f7e7e529ced /m/cse.m | |
parent | 15d57eb888fdcd68b873b02b0468e5508a02c581 (diff) |
Regenerate code
Diffstat (limited to 'm/cse.m')
-rw-r--r-- | m/cse.m | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/m/cse.m b/m/cse.m deleted file mode 100644 index f327f17..0000000 --- a/m/cse.m +++ /dev/null @@ -1,36 +0,0 @@ -expr = {a -> Sin[Sqrt[x]] + Cos[Sqrt[x]], - b -> Cos[Sqrt[x]]} - -pexpr = expr //. {a_, b__} -> CSequence[a, {b}] //. {a_} -> - a //. (a_ -> b_) -> CAssign[a, b] - -oexp = pexpr // Experimental`OptimizeExpression - -{locals, code} = - ReleaseHold[(Hold @@ oexp) /. - Verbatim[Block][vars_, seq_] :> {vars, Hold[seq]}] - -code1 = - code /. Hold[CompoundExpression[seq__]] :> Hold[{seq}] - -code2 = - First[code1 //. - Hold[{a___Hold, b_, c___}] /; Head[Unevaluated[b]] =!= Hold :> - Hold[{a, Hold[b], c}]] - -statements = - StringReplace[ToString[CForm[#]], - "Hold(" ~~ ShortestMatch[a___] ~~ ")" :> a] & /@ code2 - -mycsequence = StringJoin @@ Riffle[statements, ";\n"] - -replacevar = - Rule @@@ Transpose[{ToString[CForm[#]] & /@ locals, - StringReplace[StringReplace[ToString[#], {__ ~~ "`" ~~ a_ :> a}], - "$" -> "_"] & /@ locals}] - -mycsequence1 = StringReplace[mycsequence, replacevar] - -final = - "{\ndouble " <> StringJoin @@ Riffle[Last /@ replacevar, ","] <> - ";\n\n" <> mycsequence1 <> ";\n}\n" |