研究日誌。

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

ダイクストラ法のループ - 3。

2008-11-11 20:01:34 | Weblog
距離を signed で持つか、unsigned で持つかという部分で悩んでみたものの、結局 signed にした。
さまざまな状態を表すには signed の方が良いし、そもそも long long でだめで、unsigned long long で大丈夫という状況を思い浮かべると、そもそも double にした方が良いといえる。

実行中に演算がオーバーフローしているか調べるのは、実行時間が増えるので行いたくないとすれば、
 max_arclength x (#nodes - 1)
という形での実行前の確認しかなくなる。

このオーバーフローのチェックの方法では、結局どちらも大した差にはなくなってしまう。
ということで、double との対応をつけるためにも signed にした方がいいともいえる。