-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!news-out.readnews.com!news-x
xxfer.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrad
a.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada
.pl.POSTED!not-for-mail
From: "slawek" <h...@s...pl>
Newsgroups: pl.comp.programming
References: <lqh403$k4t$1@node2.news.atman.pl> <lqmenj$s69$1@node2.news.atman.pl>
<d...@g...com>
<lqrkpc$r7t$1@node2.news.atman.pl> <lqs3ng$aps$1@node2.news.atman.pl>
<a...@n...v.pl>
<lrol5k$pvu$1@node2.news.atman.pl>
<a...@n...v.pl>
<53e072f9$0$2226$65785112@news.neostrada.pl>
<a...@n...v.pl>
<53e083a0$0$2146$65785112@news.neostrada.pl>
In-Reply-To: <53e083a0$0$2146$65785112@news.neostrada.pl>
Subject: Re: szybki logarytm
Date: Tue, 5 Aug 2014 21:51:57 +0200
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 15.4.3555.308
X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308
Lines: 53
Message-ID: <53e135df$0$2232$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 62.69.230.89
X-Trace: 1407268319 unt-rea-b-01.news.neostrada.pl 2232 62.69.230.89:50205
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.programming:206538
[ ukryj 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-15 serce boli
- 2025-01-14 Seicento vs Szydło, comes back :)
- 2025-01-14 CFM (airflow) AMD Wraitha
- 2025-01-14 16. Raport Totaliztyczny: Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- 2025-01-13 15. Raport Totaliztyczny: Średniowiecze Po,Zniszczeniu AmigaOS i Plan9
- 2025-01-14 Warszawa => Expert Recruiter 360 <=
- 2025-01-14 Warszawa => Starszy Konsultant AWS <=
- 2025-01-14 Warszawa => Specjalista ds. bezpieczeństwa informacji i ciągłości
- 2025-01-14 Katowice => Key Account Manager (ERP) <=
- 2025-01-14 Kraków => Kierownik ds. Kluczowych Klientów (transport morski i lotn
- 2025-01-14 Błonie => IT System Administrator <=
- 2025-01-14 Warszawa => Helpdesk - I linia wsparcia <=
- 2025-01-14 Kraków => Spedytor Międzynarodowy <=
- 2025-01-14 Gdańsk => Programista Delphi <=
- 2025-01-14 Gorzów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi