この前、内点法を実装してみて分かった、面白いところを列挙してみる。
1. UTF-8 の文字列を変数に使える。例えば
α = β + γ
なんて式が可能。
2. A ? B : C が使える。(C っぽい)
3. リスト内包が使える。(python っぽい)
これは、SDP のときに便利で、例えば内積の A_k \bullet X というのを A_1,...,A_m で行いたければ
float([ sum(A[:,:,k].*X) for k=1:m ])
とすれば一行で作れる。
(float をかけているのは、リスト内包で上のリストを作るとなぜか Any のリストになってしまって、その後に足し算引き算などができなくなってしまうので、float に型を強制変更している。)
4. Cell にできる。(Matlab っぽい)
たとえば、
Z = cell(3,2)
Z[1,2] = [3 4; 5 6]
Z[3,1] = spzeros(7,8)
のように違うデータを入れ込むことができる。
3 と 4 は SDP のときには相当便利で、これがあれば SDPA-M 入力と SeDuMi 入力の両方のアドバンテージを一つのデータでこなすことができる。
0 件のコメント:
コメントを投稿