Mam wartości całkowite od 32-8191, które chcę odwzorować na zgrubnie skalę logarytmiczną. Gdybym używał bazy 2, mógłbym policzyć wiodące bity zerowe i zamapować je na 8 slotów, ale jest to zbyt jasne; Potrzebuję 32 slotów (i więcej byłoby lepiej, ale potrzebuję ich odwzorować na bity w 32-bitowej wartości), która wychodzi na bazę z grubsza 1,18-1,20 dla logarytmu. Czy ktoś ma jakieś sztuczki do obliczenia tej wartości lub rozsądnego przybliżenia, bardzo szybko?Logarytm Quick integer dla specjalnego przypadku
Moją intuicją jest przełamanie zakresu na 2 lub 3 podzakresy za pomocą warunków warunkowych i użycie małego tabelki odnośników dla każdego, ale zastanawiam się, czy jest jakaś sztuczka, którą mógłbym zrobić z zerami czołowymi, a następnie udoskonalić wynik, zwłaszcza, że wyniki nie muszą być dokładne, ale z grubsza logarytmiczne.
widziałem coś, co robiłem (dlmalloc przychodzi do głowy), ale nie wiem, czy mi się podoba, jak daleko odbiega od logarytmiczna .Może jednak nie jest tak źle. –
Zastanawiam się, czy mogę użyć zmiennoprzecinkowej, aby je ładnie ułożyć ... –