setenv MATXCPP /usr/local/lib/gcc-lib/cpp
また,インタプリタmatxの実行時には__MATX__が,
コンパイラmatcの実行時には__MATC__が自動的に1に
定義される。これらを用いるとプログラム中の実行される箇所を
インタプリタとコンパイラで容易に変更できる。例えば関数のデバッグ時に
その関数をmatxでスクリプトとして実行したいとき以下のようすれば良い。
この例では,matxを実行するとプログラムはスクリプトとして実行され,
A, B, Cは大域変数として定義されるので,コマンドライン
からそれらを参照できる。matcを実行すれば,関数afo()が定義さ
れる。
#ifdef __MATC__ Func void afo() { #endif Matrix A,B,C; A = [[1 2][3 4]]; B = [[5 6][7 8]]; C = A + B; print A,B,C; #ifdef __MATC__ } #endif
また,以下の例(関数がafo.mmというファイルに含まれるとする)
ではmatxをコマンドラインから
% matx afo.mm -e 'main();'
Func void afo() { Matrix A,B,C; A = [[1 2][3 4]]; B = [[5 6][7 8]]; C = A + B; print A,B,C; } #ifdef __MATX__ main(); #endif