Как создать код C с помощью Mathlink

Я изучил примеры использования mathlink из Visual Studio. Вопрос в том, что у меня есть файл блокнота Mathematica, в котором выполняются необходимые вычисления. Теперь я хочу сделать то же самое, но из моей программы на C, используя Mathlink. Есть ли автоматический инструмент для преобразования файла записной книжки Mathematica в код C, чтобы они вызывались с помощью mathlink?


person maximus    schedule 15.12.2011    source источник
comment
Я не уверен, что полностью понимаю ваш вопрос. Вам нужно вызвать ядро ​​Mathematica из программы C или вызвать некоторые функции C из Mathematica?   -  person Szabolcs    schedule 15.12.2011
comment
Мне нужно вызвать ядро ​​mathematica из программы на C.   -  person maximus    schedule 15.12.2011
comment
Тогда это то, что вы ищете?   -  person Szabolcs    schedule 15.12.2011
comment
не совсем. если у вас есть большой файл блокнота Mathematica, то будет сложно преобразовать все операторы ввода внутри один за другим в программу C. вместо этого я хочу вызвать оценку всего файла записной книжки и получить результат этой оценки.   -  person maximus    schedule 18.01.2012
comment
Я думаю, вам стоит немного уточнить вопрос. Отсутствие ответов показывает, что люди на самом деле этого не понимают (я тоже). Если вы спрашиваете о преобразовании кода Mathematica в код C, ну, Compile[ ... , CompilationTarget -> "C"] делает это в некотором роде, но повторное использование выходного исходного кода совсем не будет тривиальным (поскольку он предназначен для загрузки ядром Mma после компиляции). ). Как правило: нет, преобразовать блокнот в код C невозможно.   -  person Szabolcs    schedule 18.01.2012


Ответы (1)


У меня есть файл блокнота Mathematica, в котором выполняются необходимые вычисления. Теперь я хочу сделать то же самое, но из моей программы на C, используя Mathlink.

Вероятно, вам следует прочитать ответы на https://stackoverflow.com/questions/8140869/minimal-effort-method-for-integrating-c-functions-into-mathematica

Есть ли автоматический инструмент для преобразования файла записной книжки Mathematica в код C, чтобы они вызывались с помощью mathlink?

Наиболее близким к автоматическому преобразованию, о котором я знаю, является использование Compile с < a href="http://reference.wolfram.com/mathematica/ref/CompilationTarget.html?q=CompilationTarget&lang=en" rel="nofollow noreferrer">CompilationTarget -> "C" в версии Mathematica 8.

Однако это, вероятно, не то, что вам нужно, потому что это потребует переписать ваш код таким образом, чтобы он мог быть обработан Compile. Кроме того, он автоматически связывает функцию, а не встраивает ее во внешнюю программу.

person Mr.Wizard    schedule 15.12.2011