diff options
author | Erik Schnetter <schnetter@gmail.com> | 2012-08-10 15:03:00 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2012-08-10 15:03:00 -0400 |
commit | aa5bcad276b4d82741fe4a6a259f3857f9e589fc (patch) | |
tree | 8f4c6afae42ed8908e31340b0125ce4175912957 /Tools/CodeGen/CodeGenCactus.m | |
parent | 2c2bde2690d7e422e85d4441dbed0000de9140f8 (diff) |
Delay converting integers to reals
Delay converting integers to reals, so that the simplification functions still act on integers. This improves the generated code.
Diffstat (limited to 'Tools/CodeGen/CodeGenCactus.m')
-rw-r--r-- | Tools/CodeGen/CodeGenCactus.m | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Tools/CodeGen/CodeGenCactus.m b/Tools/CodeGen/CodeGenCactus.m index 222b030..953b394 100644 --- a/Tools/CodeGen/CodeGenCactus.m +++ b/Tools/CodeGen/CodeGenCactus.m @@ -532,7 +532,8 @@ DefFn[ (* Constants *) expr = expr /. { - x_Integer -> ToReal[1.0*x], (* don't generate large integer constants *) + x_Integer -> ToReal[x], + x_Ratio -> ToReal[x], x_Real -> ToReal[x], E -> ToReal[E], Pi -> ToReal[Pi]}; @@ -664,6 +665,9 @@ DefFn[ undoVect[expr_] := expr //. { ToReal[x_] -> x, + x_Integer -> 1.0*x, (* don't generate large integer constants *) + x_Ratio -> N[x,30], + kneg[x_] -> -x, kadd[x_,y_] -> x+y, |