New in Wolfram
Mathematica
8: SymbolicC
◄
previous
|
next
►
Software Development
Symbolically Optimize C Code
Optimize code symbolically by limiting tail recursion of a Fibonacci function.
In[1]:=
X
Needs["SymbolicC`"] code = CFunction[int, fib, {{int, i}}, CBlock[{ CIf[COperator[Equal, {i, 0}], CReturn[0], CIf[COperator[Equal, {i, 1}], CReturn[1], CReturn[ COperator[ Plus, {CCall[fib, {COperator[Minus, {i1, 1}]}], CCall[fib, {COperator[Minus, {i1, 2}]}]}]] ] ]}]]; ToCCodeString[code /. {CCall[fib, arg_] :> CConditional[COperator[Equal, Flatten@{arg, 0}], 0, CConditional[COperator[Equal, Flatten@{arg, 1}], 1, CCall[fib, arg]]] }]
Out[1]=