我试图弄清楚如何通过 Mathlink 从 C 中使用 Mathematica。
如果我只想计算内置函数的值,我可以
MLPutFunction( lp, "RiemannSiegelZ", 1L);
MLPutDouble(lp, val);
一切都很好。
现在,如果我想要导数的值,事情会变得更糟:
MLPutFunction( lp, "RiemannSiegelZ'", 1L);
MLPutDouble(lp, val);
不起作用。我试图插入“D”功能,但我似乎无法让它工作。到目前为止我能找到的最好方法是这个
char query[128];
sprintf(query, "N[RiemannSiegelZ'[%.20lf]]", val);
MLPutFunction(lp, "ToExpression", 1);
MLPutString(lp, query);
它确实有效,但速度极慢,可能是因为我要求 Mathematica 解析表达式,而不是仅仅调用函数......有更好的方法吗?