問題が自然対数スケールを持つプログラムに取り組んでいます。
unsigned int log2(uint64_t)
これまでのところ、ベース 2 を使用しており、 (C/C++ で)の優れた実装がここにあります。
しかし、底 2 は私の問題には大きすぎることがわかりました。分数の底、たとえば 3/2 を使用する必要があります。
この種の操作の実装を知っている人はいますか?
私の現在の解決策はround(log(x)/log(base))
、ラウンドが整数を返す場所ですが、少なくとも、ログの 2 つの評価を避けるためにホップしていました。