double
型を用いること。
"%6.3lf"
などのフォーマット。
double elapsed_time(struct timeval tp[2]) { return tp[1].tv_sec-tp[0].tv_sec+1e-6*(tp[1].tv_usec-tp[0].tv_usec); }
-i FILE
」
の指定でLU分解する行列を入力できるようにすること。
FILEとして「-
」
(マイナス)が指定された場合は標準入力から,
それ以外は指定されたファイルから入力を得ること。
「-i
」指定がない場合は行列生成関数の結果をLU分解する。
-o FILE
」
の指定でLU分解した行列を出力できるようにすること。
FILEとして「-
」
(マイナス)が指定された場合は標準出力に,
それ以外は指定されたファイルに出力すること。
「-o
」指定がない場合は出力しない。
-d
」の指定で検算結果を表示すること。
-a N
」の指定でLU分解関数の選択ができるようにすること
N が 1, 2, 3 それぞれを,
right-looking法,left-looking法, Crout法とする。
未指定の場合は一番高速と期待できるものにしておく。
-i FILE
」の指定があった場合も同様に
LU分解に要した時間を表示すること。
この場合はコマンドライン引数の整数は無視する。