-
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
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-29 KSeF - 13 wątpliwości
- 2026-01-29 A ja się pochwalę
- 2026-01-29 Warszawa => Mid/Senior IT Recruiter <=
- 2026-01-29 Warszawa => Senior Java Developer <=
- 2026-01-29 Warszawa => IT Recruiter <=
- 2026-01-28 Degradacja
- 2026-01-28 Wysoki Sąd poinstruował czego unikać wyzywając Owsiaka "Równiejszego"
- 2026-01-28 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-28 Białystok => Preseles Inżynier (background baz danych) <=
- 2026-01-28 Wrocław => Konsultant wdrożeniowy ERP <=
- 2026-01-28 Łódź => Microsoft Engineer <=
- 2026-01-28 Białystok => Tester manualny <=
- 2026-01-27 Tradycja ciągania posłów po sądach za wystąpienia w Sejmie będzie kontynuowana [Lepper 2]
- 2026-01-27 Pierwszy raz sprzedano więcej samochodów zeeletryfikowanych niż ice
- 2026-01-27 Elektryczny Kałasznikow




Jak kupić pierwsze mieszkanie? Eksperci podpowiadają