例題
This feature is not supported on the Wolfram Cloud.

Cコードの生成器を使って, Wolframのランタイムライブラリにリンクするスタンドアロンの実行ファイルを作成することができる.

ローパスフィルタ

この例題では,ローパスフィルタ用にスタンドアロンのCの実行ファイルを作成する.

実行ファイルの構築

まず出力用にターゲットディレクトリを作成する必要がある.

In[8]:=
Click for copyable input
Out[8]=

次に離散ローパスフィルタを実装するコンパイルされた関数を定義する:

In[2]:=
Click for copyable input

コード生成器を使ってターゲットディレクトリ内のCのソースファイルとヘッダファイルを保存する.

In[3]:=
Click for copyable input
Out[5]=

コードを実行するには,これを主要プログラムに埋め込む必要がある.以下は,生成されたコードを呼び出す適切なC関数である.

In[21]:=
Click for copyable input

主プログラムをターゲットディレクトリに書き込む.

In[7]:=
Click for copyable input
Out[8]=

これで以下のようにスタンドアロンの実行ファイルを構築することができる.これは静的な最小ライブラリでリンクされる.このことによってライブラリパスを設定することが不要になる.この実行ファイルはプラットフォームに依存しない名前を使うので,すべてのプラットフォームで使えるはずである.オプションがに設定されることに注意されたい.このオプションは,MWolfram Symbolic Transfer Protocol (WSTP)ライブラリがリンクの段階では含まれないようにする.

In[9]:=
Click for copyable input
Out[8]=

このスタンドアロンの実行ファイルはそれだけで使用したり,他に渡したり,他のシステムに統合したりすることができる.

スタンドアロンのプログラムの実行

これでスタンドアロンのプログラムを実行することができる.実際のアプリケーションでは,ここで行ったようにWolfram言語からプログラムを実行することはない.以下は例として示す目的だけのものである.

まずいくつかの周波数成分を含む入力信号を生成する必要がある.

In[11]:=
Click for copyable input
Out[14]=

スタンドアロンのプログラムは,以下の形式でその入力から読み込む.

nelems
elem #1
...
elem #n
dt
RC

今度は信号から適切な形式の入力ファイルを作成する.

In[15]:=
Click for copyable input
Out[8]=

スタンドアロンの実行ファイルを実行し,結果をWolfram言語にロードしなおす.

In[19]:=
Click for copyable input

結果はWolfram言語式に変換して検証することができる。最後に実際の数を抽出することができる.

In[21]:=
Click for copyable input

フィルタされた信号(赤)をもとの入力信号(青)と一緒にプロットする.

In[23]:=
Click for copyable input
Out[23]=

スタンドアロンのプログラムはWolfram言語から実行する必要はなく,どのような方法でも実行することができる.しかし,Wolfram言語からこれをテストして,その出力をこのように便利な方法で表示することができる.

最後に例題ディレクトリを削除してもよい.

In[24]:=
Click for copyable input

スタンドアロンのリフティングウェーブレット変換

スタンドアロンのコード生成を使う例は,LiftingFilterDataのドキュメントの 「アプリケーション」 のセクションに示されている.