2010年9月19日日曜日

Sedumi on octave

今日試してみたところ、sedumi も octave で実行できることがわかった。
patch も作れるが、ここの blog ではファイルを添付できないので、作業内容をまとめておく。

まず、install_sedumi.m では、
[1] flags{1} = '-O'; を flags{1} = ''; に修正する
[2] 以下の2行は先頭に % をつけてコメントアウトする
flags{end+1} = '-DmwIndex=int';
flags{end+1} = '-DmwSize=int';
[3] BLAS,LAPACK を指定する。具体的には
libs = '-lmwblas';

libs = '-lmwlapack';
の行を
libs = '/usr/lib/atlas-base/atlas/liblapack.a /usr/lib/atlas-base/atlas/libblas.a';
にする。(libatlas-base-dev をインストールした場合)
[4] mex コマンドを修正する。具体的には
temp = [ 'mex ', flags, ' ', targets64{i}, ' "', libs ,'"'];

temp = [ 'mkoctfile --mex', flags, ' ', targets64{i}, ' "', libs ,'"'];
になる。

次に、givens.h の 40行目
#include "matrix.h"
をコメントアウトする(行頭に // をつける)

最後に、論理AND, 論理OR が &,|のひとつずつなのを &&,|| に修正する。
修正が入るファイルは、
SeDuMi_1_21/checkpars.m
SeDuMi_1_21/getsymbada.m
SeDuMi_1_21/install_sedumi.m
SeDuMi_1_21/optstep.m
SeDuMi_1_21/posttransfo.m
SeDuMi_1_21/pretransfo.m
SeDuMi_1_21/sedumi.m
SeDuMi_1_21/stepdif.m
SeDuMi_1_21/widelen.m
SeDuMi_1_21/wregion.m
である。

これらの修正を施すと、sedumi も octave で実行できるようになる。

0 件のコメント:

コメントを投稿