研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

最短路ソルバ: ライブラリ書き直し2.

2010-02-20 04:50:49 | Weblog
まずは int argc, char **argv から、ソルバで使用する int optionid, char *filename を parse する部分。
typedef struct {
  char *grfile;
  char *cofile;
  ...
} option;
のように出現するファイルタイプをすべて含んだ構造体を定義するか非常に迷ったが、次のようにすることで落ち着いた。
int   arg_to_optionid(int argc, char **argv);
char *arg_to_filename(int argc, char **argv);
というのも、
int parse_graph_file(int grflag, char *grfile, graph *gr);
のような関数を思い浮かべたときに、結局は flag を使うことになるからで、一貫性を保つことを考えると後者の方がすっきりしていると感じる。この flag をライブラリ内で統一したものを使用することにしよう。