ツール¶
概要¶
精度保証に直接関係しない関数や、プログラムの生成を補助する関数などが含まれる。tools
ディレクトリにはMATLAB以外の言語で書かれたツールが、+tools
ディレクトリにはMATLABで書かれた関数が入っている。
toolsディレクトリ¶
-
get-vs-path.bat
Visual Studioがインストールされている場所を探すバッチファイル。複数のバージョンがインストールされている場合は一番新しいものを探し、Visual Studioが見つかればインストールされている場所を標準出力に書き出す。見つからなかった場合は何も出力しない。書き出されたパスに存在するはずの
vcvarsall.bat
を実行することでVisual C++のコンパイラcl.exe
が使えるようになる。
-
MATLAB2C++
コマンドライン引数にMATLABの式を与えると、その式を構文解析してC++の式に変換するプログラム。変換できなかった場合は
1
を返す。変換できた場合はBoost.uBLASを使うことを前提とした式を標準出力に出力する。MATLABの式としては間違っているものも変換できてしまう場合があるが、MATLABの式として正しい式は全て変換できるはず。
-
ReduceAffine
tools.reduce_affine()
が中で実行するプログラム。
+toolsディレクトリ¶
-
tools.
build_tools
([compiler])¶ tools
ディレクトリ内のプログラムをコンパイルする。make_kv_maffine2()
やmake_kv_qr_lohner()
が内部でこの関数を呼び出すので、自分でこの関数を呼び出す必要はない。引数compiler
が省略された場合は、tools.detect_compiler()
を使ってコンパイラを探す。
-
tools.
decomp_double
(d)¶ 倍精度の浮動小数点数
d
を符号(-1
か1
)、指数部、仮数部に分解する。
-
tools.
detect_compiler
()¶ コンピュータ内のコンパイラを探し、見つかったコンパイラと対応するコンパイラをラップした関数を返す。(Visual C++、)Clang、GCCの順で探す。見つからない場合はエラーを発生させる。
-
tools.
get_last_affine
(name)¶ kv_maffine2()
の戻り値のaffine
と同じものを返す。
-
tools.
get_latest_result
(name)¶ kv_maffine2()
やkv_qr_lohner()
で実行したプログラムの最新の実行結果を返す。kv_maffine2()
の戻り値のdata
と同じ構造。
-
tools.
plot_affine
(x, y[, z] [, 'PropertyName', propertyvalue...])¶ Affine多項式をプロットする。kv_maffine2()の利用例に呼び出しの例がある。
[]
で囲われた引数は省略可能である。- x -
\(x\)を表すAffine多項式。
kv_maffine2()
の戻り値のaffine
の各列と同じ構造のベクトルを渡せば良い。 - y - xと同様。
- z - xと同様。省略すると2次元でプロットし、zを渡すと3次元でプロットする。
- ‘PropertyName’, propertyvalue -
次の3つのうち指定したいプロパティの名前とその値を組にして渡す。
- ‘FaceColor’ - 2次元でプロットするときは内部の色、3次元でプロットするときは面の色を指定する。詳細はMATLABのドキュメントにある。
- ‘EdgeColor’ - 線の色を指定する。詳細はMATLABのドキュメントにある。
- ‘EpsilonLimit’ - ダミー変数を指定した数まで減らしてからプロットする。このプロパティを指定しない場合はダミー変数を減らさずにプロットしようとする。3次元でプロットする場合、このプロパティを指定しないと描画が終わらないことがある(自宅の環境ではダミー変数が18個以上あるとプロットが終わらなくなる)。
- x -
\(x\)を表すAffine多項式。
-
tools.
prepare
([compiler])¶ プログラムの生成の準備を行う。
make_kv_maffine2()
やmake_kv_qr_lohner()
が内部で呼び出す。- kvのバージョンチェックとダウンロード
tools.build_tools()
の実行
-
tools.
reduce_affine
(affine, limit)¶ affine
に渡されたAffine多項式のダミー変数の数をlimit
個まで減らす。affine
の構造はkv_maffine2()
の戻り値のaffine
と同じ。