aboutsummaryrefslogtreecommitdiff
path: root/m/cse.m
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-10-11 20:32:55 -0500
committerErik Schnetter <schnetter@cct.lsu.edu>2010-10-11 20:32:55 -0500
commit8e1f20f46f07170786de75fae15ffee82149dfcf (patch)
tree0992b207543c7499241e61b121413f7e7e529ced /m/cse.m
parent15d57eb888fdcd68b873b02b0468e5508a02c581 (diff)
Regenerate code
Diffstat (limited to 'm/cse.m')
-rw-r--r--m/cse.m36
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"