前回ちょこっと説明した新 SDPA Online Solver の途中経過出力機能だが、ブラウザによっては(IE や Firefox)正常、あるいは意図したように表示がされていない。IE は論外としても Firefox で動作しないのはまずいので、いろいろと修正することにした。Firefox と Javascript (Prototype.js)の相性なのか仕様なのかわからないが、テキストファイルの改行が空白として表示されるので、対策として SDPA の出力ファイルを HTML 形式で作る方法がある(改行部分は と置き換える)。
現在の SDPA 7.2.1 は本体が callable library 化(libsdpa.a)されているので、sdpa_exe.cpp というソースファイルから library の API を呼び出している。つまり sdpa_exe.cpp は callable library 使用のサンプルソースファイルでもある。この特性を生かして次のようなプログラムを作成する。
○SDPA の出力ファイルは以下の三つ部分で構成されている
A:各反復の情報(主問題、双対問題) B:統計情報(主用部分、関数の実行時間、比率など) C:最適解の解のデータ
A は実行時の各反復ごとに出力される。B と C は終了時に出力される。一般には元問題のサイズが大きいと C の出力データのサイズも大きくなる。C のデータはファイルとしては必要だが、ブラウザで見るときには不必要(むしろ邪魔?)
○SDPAから二種類の出力ファイル生成する
1:上記の A と B を含み HTML 形式で出力する
2:上記の A, B, C を含みテキスト形式で出力する(いままでと同じ)
1だけとブラウザで閲覧する対象とする
○これらの変更は SDPA 本体も一部変更する必要があるが、両者の切り替えについては sdpa_exe.cpp の部分で吸収が可能である
現在の SDPA 7.2.1 は本体が callable library 化(libsdpa.a)されているので、sdpa_exe.cpp というソースファイルから library の API を呼び出している。つまり sdpa_exe.cpp は callable library 使用のサンプルソースファイルでもある。この特性を生かして次のようなプログラムを作成する。
○SDPA の出力ファイルは以下の三つ部分で構成されている
A:各反復の情報(主問題、双対問題) B:統計情報(主用部分、関数の実行時間、比率など) C:最適解の解のデータ
A は実行時の各反復ごとに出力される。B と C は終了時に出力される。一般には元問題のサイズが大きいと C の出力データのサイズも大きくなる。C のデータはファイルとしては必要だが、ブラウザで見るときには不必要(むしろ邪魔?)
○SDPAから二種類の出力ファイル生成する
1:上記の A と B を含み HTML 形式で出力する
2:上記の A, B, C を含みテキスト形式で出力する(いままでと同じ)
1だけとブラウザで閲覧する対象とする
○これらの変更は SDPA 本体も一部変更する必要があるが、両者の切り替えについては sdpa_exe.cpp の部分で吸収が可能である