私は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に要求しているためです...もっと良い方法はありますか?