-
Data: 2012-11-02 15:54:31
Temat: Re: Błędny epsilon - this is not a bug, this is ?
Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "kenobi" napisał w wiadomości grup
dyskusyjnych:f1c06cb8-0345-44a8-8207-a4773d21ebf8@go
oglegroups.com...
>pozatym jednak niechybnie masz racje
>jesli okazuje sie ze ten 2.2 nie jest
>najmniejsza liczba, tylko 1.1 tez dziala;
No właśnie rzecz w tym, że mam-i-nie-mam. Spróbuję uporządkować, ale
potrzebna mi jest definicja op(a,b). Funkcję op(a,b) definiuję jako wynik
"dodawania" wykonywanej na danym komputerze. W ten sposób nie musi być nawet
op(2,2) == 4, bo op(a,b) nie jest sumą liczb a+b w sensie matematycznym.
I teraz mamy 3 "epsilony":
1. Liczbę x, która jest najmniejszą liczbą spełniającą nierówność op( 1.0,
x ) > 1.0 .
2. Liczbę y, która jest największą liczba spełniającą równanie op( 1.0, y )
== 1.0 .
3. Liczbę z, która wynosi z = q - 1.0, gdzie q jest najmniejszą liczbą
zapisywalną w określony sposób i spełniającą warunek q > 1.0 .
Uwaga: odejmowanie w pkt. 3. należy rozumieć abstrakcyjnie, czyli ściśle
matematycznie.
Liczby x oraz y są różne na n-tym miejscu po przecinku i dlatego traktuję
je - choć niesłusznie - jako ten sam epsilon. Gdyby zwiększać ilość bitów
mantysy do nieskończoności, to granicznie stałyby się identyczne (i równe
zeru).
Liczba z jest, w bardzo dobrym przybliżeniu, 2 razy większa niż z. I tę
właśnie liczbę Bartek nazywa epsilonem. Ok, też można. Choć jest to jednak
inna definicja niż np. w Numerical Recipes, czyli dość popularnym
podręczniku nt. metod numerycznych (takim sobie, ale znacznie lepszym niż
np. podręcznik Jankowskich) i niż "miał na myśli artysta" uwieczniający się
komentarzem we float.h.
Fakt, że z jest około dwukrotnie większy niż x jest trudno wytłumaczalny
bez - czego właśnie Bartek nie potrafił wyjaśnić - wiedzy o tym, że
obliczenia FPU są robione na 80 bitowych a nie 64 bitowych liczbach float
point. Tzn. normalne liczby double mają mantysę 53 bitową, ale wewnętrznie
FPU (zmutowany Intel 80287) liczy z mantysą 63 bitową. Zaokrąglanie op(1,x)
następuje "do najbliższej", więc w ten sposób w jako wynik osiągana jest
liczba q > 1.0 - "brakującą połówkę z" dostajemy w trakcie konwersji z
mantysy 63 bitowej na 53 bitową.
Przy "różnych opcjach kompilatora(ów)" da się wymusić czasem jakieś double
double, quarduple czy extended - oraz rygorystyczne obcinanie dokładności
FPU do 53 bitów. Istnieją też prawdziwe procesory 128 bitowe i takie tam.
Więc rzeczywiście nie jest bezpiecznie polegać na wstępnie ustalonym
DBL_EPSILON - a zwłaszcza (co już pisałem) brać dosłownie wszystkich cyferek
jakie tam we float.h są wypisane.
W Wikipedii jest jak wół epsilon 1.11E-16 (dla double), ale na tej samej
stronie WWW jest przykład w Phytonie z wynikiem 2.22E-16. Już samo to
wymagałoby sprostowania, przecież Wikipedia nie jest czymś czego nie można
poprawiać - zwłaszcza jeżeli się aspiruje do bycia - jak Bartek - ekspertem
w dziedzinie.
Następne wpisy z tego wątku
- 02.11.12 15:59 slawek
- 02.11.12 22:05 Michoo
- 03.11.12 10:14 slawek
- 03.11.12 11:48 Tomasz Sowa
- 03.11.12 12:54 slawek
- 03.11.12 14:07 Tomasz Sowa
- 03.11.12 16:10 slawek
- 03.11.12 17:59 Michoo
- 03.11.12 22:22 slawek
- 04.11.12 15:42 kenobi
- 04.11.12 22:50 AK
- 04.11.12 23:00 AK
- 05.11.12 08:26 Adam Wysocki
- 05.11.12 11:07 Michoo
- 05.11.12 11:52 slawek
Najnowsze wątki z tej grupy
- 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
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-09-18 pierwszy tel kupiłem za 1250zł
- 2025-09-17 jak się kupuje elektryczny?
- 2025-09-17 Kod zniżkowy w TME do 26.09.2025
- 2025-09-17 Ukraińcy uważają polski sys. antydronowy za najlepszy na Świecie, a rząd w III Rzeczy (pospolitej) woli sys. niemiecki
- 2025-09-17 Ukraińcy uważają polski sys. antydronowy za najlepszy na Świecie, a rząd w III Rzeczy (pospolitej) woli sys. niemiecki
- 2025-09-17 Warszawa => Dyrektor pionu IT <=
- 2025-09-17 Rzeszów => International Freight Forwarder <=
- 2025-09-16 China => Production Coordinator / Representant Product Dev <=
- 2025-09-16 Warszawa => Project Manager (AI and innovation) <=
- 2025-09-15 "Jeden telefon z Waszyngtonu i nasze samoloty nie wystartują" - czyli to co każdy koder wie
- 2025-09-15 UE chce uruchomić SI "Chat Control" na kompach wszystkich euroPejczyków
- 2025-09-15 Sejm odrzucił zakaz idelogii banderyzmu
- 2025-09-15 Nieprawidłowe parkowanie
- 2025-09-15 Poznań => Konsultant SAP HCM <=
- 2025-09-15 Warszawa => Specjalista rekrutacji IT <=