- 
 61. Data: 2012-11-06 10:46:22
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: "slawek" <h...@s...pl>
 Użytkownik "Tomasz Sowa" napisał w wiadomości grup 
 dyskusyjnych:k79hhh$26k$...@n...dialog.net.pl...
 
 >No właśnie nie wystarczy, unie zrobiłem specjalnie żeby obliczenie
 >dodawania zrobić odpowiednio w 32 bitach (float) i 64 bitach (double). W
 >twoim przypadku obliczenia będą przeprowadzone w 80 bitach lub więcej
 >(zależnie od opcji kompilacji).
 
 Ok, ale podążając za twoim pomysłem należałoby stwierdzić, że jakiekolwiek
 porównania a > b należy usunąć z programów i zastąpić je porównaniami (int)a
 > (int)b .
 
 Czyli - zamiast problemu "DBL_EPSILON jest podany z 50% błędem" - mamy
 problem "arytmetyka liczb double jest źle zaimplementowana". Miałem napisać
 "ROTFL", ale jak się głębiej zastanowić - nie ma się z czego śmiać.
 
 
- 
 62. Data: 2012-11-06 11:31:24
 Temat: Re: Bdny epsilon - this is not a bug, this is ?
 Od: "AK" <n...@n...com>
 Użytkownik "bartekltg" <b...@g...com> napisał: 
 
 > Obcinanie pośrednich wyników do double (przy wejściu/wyjśćiu funkcji)
 > kontra liczenie wszystkiego w rejestrach koprocesora, czy coś głębszego?
 
 Napewno to + mozliwa w tym przypadku (czyli funkcji inline) optymalizacja calosciowa
 wyrazenia (parse-tree, semikodu - i kodu wynikowego/maszynowego).
 
 Poniewaz inline to tylko sugestia a nie oblig, wiec w praktyce moga (i dzieja sie)
 "cuda" np. w debug sa inne wyniki fp niz w release, niektore funkcje po dodaniu
 niewinnej linijki daja daja nieco inne wyniki itp itd.
 W tym kontekscie "problem" buraka hrabiego (jak i on sam) z DBL_EPSILON jest
 po prostu smieszny.
 
 AK
 
 
- 
 63. Data: 2012-11-06 11:43:48
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: g...@s...invalid (Adam Wysocki)
 slawek <s...@h...pl> wrote: 
 
 > Panie Adamie, zadam takie osobiste pytanie:
 
 Nie do Ciebie piszę. Ty już pokazałeś w tym temacie swój poziom.
 
 --
 Gof
 http://www.chmurka.net/
 
- 
 64. Data: 2012-11-06 11:48:04
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: "AK" <n...@n...com>
 Użytkownik "slawek" <h...@s...pl> napisał w: 
 
 >>No właśnie nie wystarczy, unie zrobiłem specjalnie żeby obliczenie
 >>dodawania zrobić odpowiednio w 32 bitach (float) i 64 bitach (double). W
 >>twoim przypadku obliczenia będą przeprowadzone w 80 bitach lub więcej
 >>(zależnie od opcji kompilacji).
 >
 > Ok, ale podążając za twoim pomysłem należałoby stwierdzić, że jakiekolwiek
 porównania a > b należy
 > usunąć z programów i zastąpić je porównaniami (int)a
 > > (int)b .
 
 Nie buraku i (jak widac) niedouku.
 Takie porownania _zawsze_ robi sie np. w ten sposob.
 
 int fp
 a > b (a - b) > EPS
 a < b (a - b) > -EPS
 a >= b (a - b) >= -EPS
 a <= b (a - b) <= EPS
 a == b fabs(a - b) <= EPS
 a != b fabs(a - b) > EPS
 
 Wszedzie. W numeryce, nawet w bankowosci (nie wszedzie jest/byl decimal)
 slowem wszedzie gdzie wystepuja dzialania na fp
 
 W dodatku to EPS winno byc o wiele wieksze od DBL_EPSILON
 i innych maszynowych bebechow (czesto jest to zreszta EPS wzgledne).
 Owszem, masochistow sie nie uleczy wiec mozna im zezwolic
 na uzycie DBL_EPSILON jako EPS, tyle te to podwojone (2.22..) z
 naglowkow C z Pythona i Matlaba. Sam sobie odpowiedz dlaczego.
 Przy pojedynczym pojawiaja sie "male klopoty".
 
 AK
 
 
- 
 65. Data: 2012-11-06 11:50:50
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: Michoo <m...@v...pl>
 On 06.11.2012 10:46, slawek wrote: 
 > Użytkownik "Tomasz Sowa" napisał w wiadomości grup
 > dyskusyjnych:k79hhh$26k$...@n...dialog.net.pl...
 >
 >> No właśnie nie wystarczy, unie zrobiłem specjalnie żeby obliczenie
 >> dodawania zrobić odpowiednio w 32 bitach (float) i 64 bitach (double). W
 >> twoim przypadku obliczenia będą przeprowadzone w 80 bitach lub więcej
 >> (zależnie od opcji kompilacji).
 >
 > Ok, ale podążając za twoim pomysłem należałoby stwierdzić, że
 > jakiekolwiek porównania a > b należy usunąć z programów i zastąpić je
 > porównaniami (int)a > (int)b .
 >
 
 
 > Czyli - zamiast problemu "DBL_EPSILON jest podany z 50% błędem"
 
 NIE jest, nie trolluj. Już ci podawałem fragment standardu, w którym
 wyraźnie stoi, że DBL_EPSILON zawiera dodatnią różnicę między 1.0 a
 następną wartością reprezentowalną w typie double.
 
 
 > - mamy
 > problem "arytmetyka liczb double jest źle zaimplementowana".
 
 Czy ty kiedyś siedziałeś gdzieś w pobliżu numeryki?
 
 Jeżeli dokładność jest większa to nie jest to problem, chyba, że
 programista naprawdę coś zepsuł. Precyzja w punktach wynosi 100%,
 dlatego używa się ograniczeń worst-case. Nikt myślący nie zrobi w
 typowym przypadku relacji równoważności[*] w oparciu o DBL_EPSILON -
 zawsze to będzie jego wielokrotność.
 
 
 P.S.
 Skompiluj, uruchom, zrozum:
 
 #include <cstdio>
 double foo(double d){
 return d;
 }
 main()
 {
 double d1=1.0;
 double d2=1.5E-16;
 printf("%.18lf %.18lf\n",d1+d2-1.0,foo(d1+d2)-1.0);
 }
 
 [*] Wynika to z tego, że każda operacja wprowadza przynajmniej błąd z
 przedziału <0,DBL_EPSILON/2>, niektóre tak duży jak np
 sqrt(DBL_EPSILON/2) - np. sqrt ;)
 
 --
 Pozdrawiam
 Michoo
 
- 
 66. Data: 2012-11-06 12:02:50
 Temat: Re: Bdny epsilon - this is not a bug, this is ?
 Od: Michoo <m...@v...pl>
 On 06.11.2012 11:31, AK wrote: 
 > Poniewaz inline to tylko sugestia a nie oblig, wiec w praktyce moga (i
 > dzieja sie)
 > "cuda" np. w debug sa inne wyniki fp niz w release, niektore funkcje po
 > dodaniu
 > niewinnej linijki daja daja nieco inne wyniki itp itd.
 
 boost::Interval Arithmetic Library - wychodzi ~2x wolniej, ale pozwala
 całkiem nieźle oszacować, czy uzyskany wynik jest czymś więcej niż
 nagromadzeniem błędów obliczeniowych.
 
 --
 Pozdrawiam
 Michoo
 
- 
 67. Data: 2012-11-06 12:05:08
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: "AK" <n...@n...com>
 Autokorekta typo: 
 
 > a < b (a - b) > -EPS
 
 winno byc:
 a < b (a - b) < -EPS
 
 AK
 
 
 
- 
 68. Data: 2012-11-06 13:31:20
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: Roman W <r...@g...com>
 W dniu wtorek, 6 listopada 2012 10:48:21 UTC użytkownik AK napisał: 
 
 > Nie buraku i (jak widac) niedouku.
 >
 > Takie porownania _zawsze_ robi sie np. w ten sposob.
 >
 >
 >
 > int fp
 >
 > a > b (a - b) > EPS
 >
 > a < b (a - b) > -EPS
 >
 > a >= b (a - b) >= -EPS
 >
 > a <= b (a - b) <= EPS
 >
 > a == b fabs(a - b) <= EPS
 >
 > a != b fabs(a - b) > EPS
 
 Nie jestem przekonany do tego, ze tak sie powinno robic ZAWSZE. Jezeli mam kod:
 
 if (a >= 0) {
 b = sqrt(a);
 } else {
 // zglos blad ze a ujemne
 }
 
 to zastepowanie "a >= 0" przez "a >= EPS" nie ma sensu.
 
 RW
 
- 
 69. Data: 2012-11-06 13:32:31
 Temat: Re: B dny epsilon - this is not a bug, this is ?
 Od: Roman W <r...@g...com>
 W dniu wtorek, 6 listopada 2012 11:03:09 UTC użytkownik Michoo napisał: 
 > On 06.11.2012 11:31, AK wrote:
 >
 > > Poniewaz inline to tylko sugestia a nie oblig, wiec w praktyce moga (i
 >
 > > dzieja sie)
 >
 > > "cuda" np. w debug sa inne wyniki fp niz w release, niektore funkcje po
 >
 > > dodaniu
 >
 > > niewinnej linijki daja daja nieco inne wyniki itp itd.
 >
 >
 >
 > boost::Interval Arithmetic Library - wychodzi ~2x wolniej, ale pozwala
 >
 > całkiem nieźle oszacować, czy uzyskany wynik jest czymś więcej niż
 >
 > nagromadzeniem błędów obliczeniowych.
 
 Da sie to "wrzucic" do starego kodu bez zmudnego przepisywania kazdej linijki?
 
 RW
 
- 
 70. Data: 2012-11-06 14:36:50
 Temat: Re: Błędny epsilon - this is not a bug, this is ?
 Od: Michoo <m...@v...pl>
 On 06.11.2012 13:31, Roman W wrote: 
 >
 > Nie jestem przekonany do tego, ze tak sie powinno robic ZAWSZE. Jezeli mam kod:
 >
 > if (a>= 0) {
 
 Ale to jest porównanie ze stałą a nie porównanie dwóch liczb.
 
 --
 Pozdrawiam
 Michoo
 


 do góry
 do góry![Jak najkorzystniej wysyłać i odbierać przelewy walutowe w EURO [© Production Perig - Fotolia.com] Jak najkorzystniej wysyłać i odbierać przelewy walutowe w EURO](https://s3.egospodarka.pl/grafika2/przelewy-bankowe/Jak-najkorzystniej-wysylac-i-odbierac-przelewy-walutowe-w-EURO-205900-150x100crop.jpg) 
 
![Jak zwiększyć otwieralność mailingu? 6 sposobów na wysoki Open Rate [© jakub krechowicz - fotolia.com] Jak zwiększyć otwieralność mailingu? 6 sposobów na wysoki Open Rate](https://s3.egospodarka.pl/grafika2/mailing/Jak-zwiekszyc-otwieralnosc-mailingu-6-sposobow-na-wysoki-Open-Rate-222959-150x100crop.jpg) 
![Jaki podatek od nieruchomości zapłacą w 2026 r. właściciele mieszkań i domów? [© wygenerowane przez AI] Jaki podatek od nieruchomości zapłacą w 2026 r. właściciele mieszkań i domów?](https://s3.egospodarka.pl/grafika2/podatki-i-oplaty-lokalne/Jaki-podatek-od-nieruchomosci-zaplaca-w-2026-r-wlasciciele-mieszkan-i-domow-268193-150x100crop.png) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


