距離基準が満たされているかどうかを確認する計算をセットアップすることに興味があります。つまり、ベクトルとanベクトルx jの間の距離は、ある値r m a xよりも小さくなければなりません。データは、座標の直交グリッドに従って分割されています。私のカットオフは最近接座標の端点間の距離よりも小さいため、「オクタント」変数を追加して、正しくセットアップされているかどうかを確認します。
if octant[j] in allowed_list continue
「短絡」として
if dist(x[i], x[j]) < r_max
私の質問は、浮動小数点演算に対するブール検索と比較の計算効率はどれくらいですか?これは現代のアーキテクチャで行う価値がありますか?
3
コードを分岐させてテストしてもらえますか?私はこれらのほとんどに対する標準的な答えのように感じます。「それを(一方向)または(他の方法)コーディングする方が良いですか?」質問の種類は「試してみて、ベンチマーク」です。
—
ジェフオックスベリー
ちょうど私の2セント。Geoffが書いたように、この種のアドバイスは、C ++コードに関してstackoverflowで同様の質問をしたときにいつも得たものです:最初にすべてをコーディングし、モジュールを再利用できるようにコードを整理し、その後リファクタリングを開始します。80-20のルールがあります。ソフトウェアはコードの20%に時間の80%を費やします。構造が立ち上がるまで待ってから、変更、テスト、変更、テストを行います
—
。– tmaric
@GeoffOxberry:私の質問はそれほど具体的ではありません:浮動小数点演算を行うことと比較してブールチェックを行うことのハードウェアまたはコンパイラの利点があるかどうかを知りたいだけです。
—
aeismail
しかし、あなたの質問は一般的すぎます。誰も具体的なコードを見ずに見分けることはできません。最高のプログラマーでさえ、プロファイリングなしではコードのボトルネックがどこにあるのかわからない、という経験則があります。私は過去25年のプログラミングを費やしてきましたが、それが私にとって真実であることを知っています。
—
ウォルフガングバンガース