Я пытаюсь выяснить, как использовать Mathematica из C через Mathlink.
Если я просто хочу вычислить значение встроенной функции, я могу сделать
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 разобрать выражение, а не просто вызвать функцию ...есть лучший способ?