-
Data: 2014-08-05 21:51:57
Temat: Re: szybki logarytm
Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Tomasz Kaczanowski" napisał w wiadomości grup
dyskusyjnych:53e083a0$0$2146$6...@n...neostrada
.pl...
>zakres, ale tego nie przeskoczy się również w intach :) Jak napisałem -
>zależy do czego się potrzebuje wyników, taka metoda będzie najlepsza.
IMO, trudno jest zrobić "lepszy logarytm" niż jest on w hardware FPU. Chyba
że nie ma FPU, albo mamy jakieś szczególne fochy.
Owszem, opłaca się np. stablicować logarytm... jeżeli np. wiemy że dane
wejściowe to liczby od 1.00 do 2.00 z krokiem 0.01. Bo "ogólna funkcja
logarytm" nijak nie wie o tym, że nie ma być ogólna. Nie potrafi zrozumieć
czego my chcemy. Wiec wtedy opłaca się coś samemu robić - może akurat będzie
lepiej dopasowane do wymagań.
Gdzieś na półce w bibliotece (ale w wakacje jest zamknięta) leży świetna
książeczka z lat 50-tych, której autorzy zachwycają się pracą jakiegoś
Anglika (chyba lata 30, może 40), który stablicował współczynniki
wielomianów niskiego stopnia dających "całkiem dobre przybliżenia" funkcji
elementarnych. Myślę, że po użyciu log(x) = log(y) + log(10^n) aby przejść
od dowolnego x do takiego y które należy do przedziału (1,10), a potem
podobna sztuczka aby mieć (5,10), można bez trudu np. znaleźć wielomian
Czebyszewa dostatecznie dobry aby udawał logarytm.
AFAIR, w biblioteczce CEPHES była i funkcja logarytm:
http://www.boutell.com/lsm/lsmbyid.cgi/000626
Intel oferował jakąś "szybką bibliotekę" Approximate Math Library:
https://software.intel.com/en-us/articles/avoid-bott
lenecks-in-simple-math-functions
Z drugiej strony, wbudowany w FPU logarytm i tak wystarcza w 99% (lub
bardziej), a szkoda tracić czas... który lepiej przyda się do czegoś innego
niż pisanie własnej implementacji logarytmu.
Problem z podziałką gdzieś kiedyś już mi wyskoczył: mocno się zdziwiłem
(swego czasu) że iterowanie x := x + dx potrafi się przecudnie rozjechać (na
double'ach!) dla nietypowych danych. Np. gdy się chce pokazać ma wykresie
jak wynik Czegoś-Tam asymptotycznie zbliża się do dokładnego: masz oś od
xmin do xmax, ale różnica pomiędzy nimi to np. 3*epsilon maszynowy.
Nota bene, miałem zawsze trudności z tabliczką mnożenia (mnożenie w słupkach
ma koszt O(N*M)), więc nauczyłem się na pamięć mantys logartymów: zamiast
mnożyć 2*5 dodajesz 3010 do 6990 i wychodzi 1. Po pewnym czasie nie chce ci
się już patrzeć na tablice (Wojtowicza), bo i tak wiesz co tam jest.
Kalkulator? No cóż, były arytmometry mechaniczne. Fajne, na korbkę, taki
steam-punk jakby dziś na to popatrzeć.
Następne wpisy z tego wątku
- 09.08.14 20:13 bartekltg
- 09.08.14 20:18 feldmarszałek tusk
- 09.08.14 21:53 slawek
- 09.08.14 22:09 slawek
- 11.08.14 10:39 slawek
- 11.08.14 10:49 slawek
- 11.08.14 11:00 slawek
- 11.08.14 11:40 bartekltg
- 11.08.14 15:36 slawek
- 11.08.14 16:10 bartekltg
- 11.08.14 17:48 slawek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-13 Zasięg Tesli przy szybszej jeździe
- 2025-01-13 Gdańsk => Application Security Engineer <=
- 2025-01-13 Białystok => System Architect (Java background) <=
- 2025-01-13 Warszawa => Konsultant ds. sprzedaży <=
- 2025-01-13 Warszawa => Key Account Manager <=
- 2025-01-13 Szczecin => Senior Field Sales (system ERP) <=
- 2025-01-13 Rzeszów => International Freight Forwarder <=
- 2025-01-13 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-13 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-13 Warszawa => Staż w dziale Sprzedaży B2B <=
- 2025-01-13 Wydajność klimy w obecnych temperaturach
- 2025-01-13 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-01-13 Kraków => UX Designer <=
- 2025-01-13 Katowice => Key Account Manager (ERP) <=
- 2025-01-13 Mińsk Mazowiecki => Spedytor Międzynarodowy <=