距離を signed で持つか、unsigned で持つかという部分で悩んでみたものの、結局 signed にした。
さまざまな状態を表すには signed の方が良いし、そもそも long long でだめで、unsigned long long で大丈夫という状況を思い浮かべると、そもそも double にした方が良いといえる。
実行中に演算がオーバーフローしているか調べるのは、実行時間が増えるので行いたくないとすれば、
max_arclength x (#nodes - 1)
という形での実行前の確認しかなくなる。
このオーバーフローのチェックの方法では、結局どちらも大した差にはなくなってしまう。
ということで、double との対応をつけるためにも signed にした方がいいともいえる。
さまざまな状態を表すには signed の方が良いし、そもそも long long でだめで、unsigned long long で大丈夫という状況を思い浮かべると、そもそも double にした方が良いといえる。
実行中に演算がオーバーフローしているか調べるのは、実行時間が増えるので行いたくないとすれば、
max_arclength x (#nodes - 1)
という形での実行前の確認しかなくなる。
このオーバーフローのチェックの方法では、結局どちらも大した差にはなくなってしまう。
ということで、double との対応をつけるためにも signed にした方がいいともいえる。