Wolfram言語とWolframノートブックの決定的な経験
オリジナルの技術計算環境
複雑なシステムのマルチドメインモデリングおよびシミュレーション
その他のモバイルアプリ
シンボリック計算,データに基づく洞察,深い技術的専門知識を組み合せて,AI時代のソリューションをお届けします
Wolfram Consulting
その他のWolframソリューション
教育のためのその他のソリューション
計算,科学,生活,その他のコース
学び,問題を解決し,アイディアを共有
Wolframのニュース,視点,洞察
リソース
WolframConsulting.com
フィボナッチ関数の末尾再帰を制限することによって,コードを記号的に最適化する.
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]]] }]