問題タブ [mathlink]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Mathematica の間違った $SystemID
mathematica で Mathlink ライブラリをリンクしようとしています。x86_64-suse-linux OS を使用していますが、Mathematica で $SystemID を確認すると、「Linux-x86-64」ではなく「Linux」を使用していると表示されます。
ライブラリを次のようにリンクしようとすると、これは問題です
(32 ビット バージョン - Linux/ で唯一のライブラリ)
次のエラーが表示されます。
ただし、次のようにリンクしようとすると
コンパイルは問題なく実行できますが、実行しようとすると次のエラーが発生します。
このファイルは、「locate libML64i3.so」を実行すると明らかに存在します。
問題は Mathematica が私が 32 ビットシステムを実行していないと判断したことにあると仮定して正しいでしょうか? もしそうなら、私は何をしますか?
wolfram-mathematica - Mathlink を使用して C コードを作成する方法
Visual Studio の mathlink の使用例を調べました。問題は、必要な計算が行われる Mathematica ノートブック ファイルがあることです。今、同じことをしたいのですが、Mathlink を使って C プログラムから作成します。mathlink を使用して呼び出されるように、Mathematica ノートブック ファイルを C コードに変換する自動ツールはありますか?
wolfram-mathematica - カーネルとフロントエンドの通信を理解する -- フロント エンドがフリーズするのはなぜですか?
編集:これを再現できるかどうかの確認だけでも役に立ちます。これを試すのに必要なコンピューターは 1 台だけです (リモート接続は必要ありません)。
更新他の人はこれを Mac または Win7 で再現できないようです。そのため、WinXP 固有または私のマシン固有のいずれかです。この時点で、私はあきらめています。
リモート カーネルの問題をデバッグできるように、フロント エンドとカーネルの通信方法に関するチュートリアルがあるとよいでしょう。そのような一般的な回答 (または他の場所のチュートリアルへのリンク) は大歓迎です。Sascha Kratky によるRemote Kernel Strategiesについては既に知っています。
ここで実際的な質問です。 リモート マシンに何らかの方法で接続すると (たとえば、リモート カーネル戦略を使用するなど)、フロント エンドは遅かれ早かれフリーズします。どうすればこれを防ぐことができますか?
単一のマシンで問題を再現する方法は次のとおりです (リモート接続は必要ありません)。
新しいカーネル構成を作成します (評価メニュー -> カーネル構成オプション...)。
詳細オプションを選択します。
MLOpen への引数:
(コンピュータの IP アドレスに置き換え
YOUR-IP-HERE
ます。Windows ではipconfig
、コマンド ウィンドウに入力することで取得できます。)カーネルを起動するシェル コマンド: 空のままにします (手動で行います)。
新しいノートブックを開き、ノートブックのカーネルを今セットアップしたものに設定し、何かを評価します (
1+1
)。ここで、接続がタイムアウトする前にカーネルを手動で起動する必要があります。
math
そのため、コマンド ライン モードで新しいカーネル ( ) を起動し、以下を評価します。これで接続が確立され、すべてが正しく機能しているように見えます (フロント エンドのピンク色のメッセージ ウィンドウの 1 つのメッセージを保存します)。
評価し
Manipulate[n, {n, 0, 100, 1}]
ます。まず、これもうまくいくようです。スライダーで遊んでみましょう。遅かれ早かれ、フロントエンドはフリーズし、強制終了する必要があります。私にとっては、スライダーを離さずに最大 10 秒間上下にドラッグするだけで十分です。
フロントエンドがフリーズするのはなぜですか? すべてが正しく機能するように、フロントエンドとカーネルの間に TCPIP モード接続を作成するにはどうすればよいですか?
いくつかのメモ:
- 私はWindows XPを使用しています。
- を使用すれば問題は発生しません
LinkProtocol -> "SharedMemory"
。 - Evaluation -> Abort Evaluation を使用して計算を中止すると、正しく機能します。
Links[]
私はそれを使用して確認しMathLink`$PreemptiveLink
、MathLink`$ServiceLink
作成してLinkConnectedQ[]
返品True
します。
Manipualate
繰り返しますが、フロント エンドはスライダーを数秒間ドラッグし続けた後にのみフリーズすることに注意してください。
wolfram-mathematica - Mathlink(Wolfram Mathematica)を使用したREPL(読み取り-評価-印刷ループ)
私はMathlinkを初めて使用し、コードに統合する前に、それに慣れるために小さなREPLを作成しようとしました。コードは次のとおりです(無関係な部分は省略されており、CとC ++のひどいブレンドについては申し訳ありません):
しかし、それはまったく機能していないようです。whileループを単一のMLNextPacket命令に置き換えようとしましたが、役に立ちませんでした。Mathlinkのドキュメントを検索するのに何時間も費やしましたが、それは大きな混乱です。私はそれを間違っているところですか?
vb.net - Mathematica なしで、Mathematica .NET/Link を使用した VB Windows アプリケーションを実行することは可能ですか?
VB.Net 2010 を使用してプログラムを開発し、.NET/Link 経由で Mathematica 3DPlot 関数を使用したいと考えています。私の問題は、Mathematica がインストールされていない別のコンピュータでそのプログラムを実行できるかということです. ありがとう
c++ - Mathematicaからc++へのリストの受け渡し(Mathlink)
整数のリストをC++で記述された関数に渡したいだけです。テンプレート(.tm)ファイルとすべてを設定し、スカラー引数を使用してテスト関数を正常に呼び出すことができます。list引数を使用して関数を呼び出すと、関数がまったく定義されていないかのように動作します。引数の型が一致していないのではないかと思います。
テンプレートのドキュメント(http://reference.wolfram.com/mathematica/ref/file/file.tm.html)では、リストのデータ型は「Int32List」のようなものです。これを使用する場合、C++関数にはリストの長さの非常に長いパラメーターが含まれている必要があります。リストを使用する唯一のサンプルコードは「sumalist.tm」です。この例では、IntegerList(dokuに表示されないタイプ)を使用しています。
Int32Listを使用する場合、mprepの結果には、追加の整数引数を持つ関数が必要です(dokuに記述されている限り)。文書化されていないIntegerList型を使用すると、余分な引数はlong型になります。
スカラー型を使った実験中に、同様の問題が発生しました。tmファイルで「Integer」を使用するとc ++関数が正しく呼び出され、「Integer32」では認識されませんでした。
「sumalist.tm」の例でも、ドキュメントが見つからなかった奇妙なパターン(list:{___ Integer})を使用しています。また、Evaluate行の意味を理解したいと思います(これを使用すると、リストを中括弧なしで関数を呼び出すことができるようになると思います)。
では、リストを使用してc++関数を呼び出すのに実際に適切なデータ型を誰が知っているのでしょうか。
python - Python プログラムで Mathematica 関数を使用するには?
Python から Mathematica 関数を呼び出す方法を知りたいです。
たとえば、 Mathematica 関数Primeを使用した例に感謝します。
MathLinkについて検索しましたが、Python でそれを使用する方法は、私には少しあいまいです。
私はpymlと呼ばれる Mathematica-Python ライブラリを使用しようとしましたが、おそらくこのライブラリが非常に古いように見えるため、成功しませんでした (チュートリアルでは Mathematica 2 または 3 と表示されています)。
ソースをコンパイルしようとしましWolfram/Mathematica/8.0/SystemFiles/Links/Python
たが、python 2.6 を使用しているときにいくつかのエラーで終了しました (ドキュメントでは、python 2.3 でのみ動作するはずです)。
Pythonika は興味深いですが、Mathematica ノートブックで使用するだけのようで、.py
Mathematica 関数を呼び出すファイルを作成したいと考えています。
それで、Mathematica 関数を使ったPythonプログラムを書く良い方法を知っている人がいて、例を教えてくれませんか?
c++ - Visual Studio 2010 Express LNK2019 エラーで Mathlink コードをコンパイルする
Mathematica で使用する単純な C ファイルをコンパイルしようとしています。(注: 残りの手順に従って、空の addtwotm.c ファイルを作成し、addtwo.tm を追加しました)
ただし、ビルド時に、次の出力が得られます。
Wolfram の MathLink 開発者ガイドに記載されているすべての指示に従い、[Linker] > [Input] > [Additional Dependencies] に「ml32i3m.lib」を追加したことを確認しました。ml32/ml64 lib ファイルには、MlMain の情報が含まれていると思われます。どんな助けでも大歓迎です:)
c# - コマンド「nb=NotebookCreate []」はMathematica内で失敗しますか?
Mathematicaでノートブックを開き、「nb = NotebookCreate []」と入力すると、期待どおりに新しいノートブックウィンドウが作成されます。
ただし、C#内から同じコマンドを実行しようとすると失敗し、新しいノートブックウィンドウが開きません。
「2+2」を渡すと「4」が返されることに注意してください。これは、Mathematicaカーネルへのリンクが完全に機能していることを証明しています。
wolfram-mathematica - Mathematica 8.0のCUDA Mathlinkがインストールされない
ここの Web サイトに基づいて、CUDA と Mathlink の簡単な例を作成しました。
http://hpc.nomad-labs.com/archives/3
「Install[...]」を使用して Mathematica に関数をインストールしようとすると、Mathematica はその関数のインストールを完了しません。関数なしで Mathematica にインストールできる単純な C 関数を作成してテストしました。
ファイルにCUDA関数がなくても、CUDAライブラリにリンクするとエラーが発生するようです。
明確にするために、パッケージCUDALinkを使用したくありません。Mathematica で CUDA 関数を C 関数としてロードしたいと考えています。CUDALink を使用するプログラムの作業バージョンがありますが、CUDALink でスタックとヒープ サイズを制御できません。C プログラムを作成し、"Install[...]" コマンドを使用することで、スタック サイズとヒープ サイズを制御できます。
ここで何か不足していますか?
CUDA 4.2 で Ubuntu 12.04 を使用しています。
Mathematica 8.0でCUDAとMathlinkの実際の例を持っている人はいますか?