使用mathematica,我可以计算一个函数的数学表示,然后我想用C ++编写代码。
说我得到类似的东西:
f=Log[2*x+3*y]+Sin[4*x+6*y]
在这种情况下进行计算显然是有道理的:
temp=2*x+3*y
f=Log[temp]+Sin[2*temp]
有没有办法在给定更复杂的数学表达式的情况下获得表达式,以减少表达式的执行时间/操作数/大小或任何好的度量标准?
答案 0 :(得分:0)
虽然它不适用于您的简单示例,但您可以尝试以下内容 Mathematica
Experimental`OptimizeExpression[{Log[(2*x^3 + 3*y)^2] + Sin[2 (2*x^3 + 6*y)^2]}]
结果你得到了
Experimental`OptimizedExpression[
Block[{Compile`$3, Compile`$4}, Compile`$3 = x^3;
Compile`$4 = 2 Compile`$3;
{Log[(Compile`$4 + 3 y)^2] + Sin[2 (Compile`$4 + 6 y)^2]}]]