Wolfram
Mathematica
8의 신기능: SymbolicC
◄
이전
|
다음
►
소프트웨어 개발
C 코드의 기호적 최적화
피보나치(Fibonacci) 함수의 꼬리 재귀(tail recursion) 제한하여 기호적으로 코드를 최적화합니다.
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]=