eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Błędny epsilon - this is not a bug, this is ?
Ilość wypowiedzi w tym wątku: 181

  • 41. Data: 2012-11-05 11:07:52
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: Michoo <m...@v...pl>

    On 03.11.2012 22:22, slawek wrote:
    > Użytkownik "Michoo" napisał w wiadomości grup
    > dyskusyjnych:k73isd$sfj$...@m...internetia.pl...
    >
    >> Nie chce mi się sprawdzać, ale oidp jest to zaokrąglanie do
    >> najbliższego. Zresztą tylko taka forma by miała sens przy tej dyskusji
    >> o dokładności.
    >
    > Czyli jednak są zaokrąglane - a nie przycinane?

    Są przycinane do 64 bitów afaik na 4 sposoby:
    - down
    - up
    - near
    - trunc

    Domyślne jest near.

    Wolę słowo "przycinane", niż zaokrąglane, bo inaczej mamy "zaokrąglanie
    przez obcięcie bitów", a tak jest "przycięcie bitów (z zaokrągleniem)".

    > Wiem, marudzę.

    Marudzisz, zwłaszcza, że najpierw błędnie napisałeś o zaokrąglaniu w górę.

    >
    >> Tak. I jak Ci już wspomniano - w praktyce nie interesuje programisty
    >> dokładność maszynowa a odległość między dwiema liczbami, czyli 2*e.
    >> Komentarz jest błędny w nagłówku a dobry w matlabie.
    >
    > Po drugie - czyli jednak mam rację - jest błąd w float.h ? Jest!

    Jest, ale wynika z czego innego niż myślisz.

    >
    > Po pierwsze - właśnie sam napisałeś, że to co jest równe 2.2E-16 to
    > odległość między dwiema liczbami i nie jest to epsilon. I znowu mam
    > rację?! Dziwne.

    Nie epsilon _maszynowy_ na FPU x86, które jak już wspomniano jest 80
    bitowe. To, że dodanie ~połowy tej wartości wystarcza dla uzyskania
    1.0+e!=1.0 wynika z tych 80 bitów i polityki near. W szerszym typie
    wynik masz bliżej (1.0+2.2E-16) niż 1.0 więc jest zaokrąglane do
    (1.0+2.2E-16) w momencie przycięcia do double. Jeżeli byś operował na
    czystym double (64 bit) to zabraknie ci bitów na reprezentację tej sumy
    i afaik nadal dostaniesz 1.0.

    W związku z tym:
    - 2.2E-16 nie jest najmniejszą wartością jaka na FPU x86 spowoduje
    zajście nierówności. Jest najmniejszą taką wartością w typie double.

    >
    > Po trzecie - zamiast napisać, cyt., "nie interesuje programisty" -
    > powinieneś napisać, iż ciebie nie interesuje. (Czyli po prostu nie
    > uogólniać swoich opinii jako opinii wszystkich programistów, bo są to -
    > być może nawet bardzo celne - ale wyłącznie twoje własne spostrzeżenia.)

    float.h jest częścią standardu i odnosi się do standardowych typów
    float(32 bit) i double (64 bit). Gdyby ten nagłówek oparto o corner-case
    x86 to programista piszący np na VFP by się bardzo zdziwił, że ten
    epsilon nie działa.

    Na którymś z egzotycznych procesorów (niagara? alfa?) można było
    ustawiać zaokrąglanie dla każdego rozkazu fpu. Wyobrażasz sobie, że w C
    trzeba by przy każdej operacji float/double podawać prefix jak to
    zaokrąglić?


    >
    > Podsumowując - dobrze jeżeli jest już poprawka w Wikipedii - to
    > pozytywny rezultat dyskusji. A problem jest dużo bardziej poważny, niż
    > mi się wydawało - po prostu nie wiadomo ile bitów mantysy jest naprawdę
    > użyte (tj. czy będą użyte 64 bitowe liczby double, czy 80 bitowe
    > rejestry FPU, zależy od humoru kompilatora).

    I zazwyczaj nie ma to znaczenia. Nikt nie robi poważnej numeryki
    opierając się o to, że na x86 połowa epsilona double wystarcza.

    --
    Pozdrawiam
    Michoo


  • 42. Data: 2012-11-05 11:52:16
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "AK" <n...@n...com> napisał w wiadomości grup
    dyskusyjnych:k76nvs$vn2$...@n...task.gda.pl...
    > Przy zlym algorytmie (nie dbajacym o to aby ta kumulacja sie znosila)
    > pomnozenie "maszynowego"
    > epsilona nawet przez przyslowiowy milion nie wystarczy :)

    O, to czekam na program przewidujący kumulację w Lotto. ;)

    > Ja sie juz na tym (numeryce/matmie) neistety nie znam (numeryka zajmowalem
    > sie rowno 25lat temu),
    > ale skupainie sie na maszynowym epsilonie chyba jednak i dzis
    > charakretyzuje (przynajmniej powinno)
    > numeryczne zbureczanie.

    A konkretnie czym się zajmowałeś 25 lat temu?

    Rozumiem, że za takie samo "zbureczanie" (pisownię pozostawiłem bez zmian)
    uważasz np. CFL?



  • 43. Data: 2012-11-05 12:14:41
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "AK" <n...@n...com> napisał w wiadomości grup
    dyskusyjnych:k76ois$1r3$...@n...task.gda.pl...
    > Glupi zburaczaly palancie :)

    Nie pisz opinii na swój temat - to zdecydowanie NTG.

    > Odra 1325/1305 to byl klon rodziny jak najbardziej angielskiego komputera
    > (a wlasciwie calej rodziny) ICL 1900 :)

    Delikatnie ujmując - kopia. Używane bywało tu i owdzie (ba, nawet był
    program robiący papier toaletowy - maketape się nazywał).

    > PS: I nie wyjezdzaj mi tu z komunizmem, bo moje inicjaly nie sa
    > przypadkowe.

    Oczywiście że nie są - inicjały to pierwsze litery z imienia i nazwiska,
    nazwisko jest z dużym prawdopodobieństwem po ojcu ew. matce, imię to albo
    jaki święty, albo inna tradycja. Gdzie tu przypadkowość? Chyba tylko w tym,
    że kiedyś gdzieś była taka organizacja itd. - no, łatwiej i przyjemniej mieć
    inicjały AK niż ZAIKSS czy UPA (np. Urszula Partycja A.).



  • 44. Data: 2012-11-05 12:48:37
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
    dyskusyjnych:k783go$q3k$...@m...internetia.pl...
    > Jest, ale wynika z czego innego niż myślisz.

    Pożycz szklanej kuli - tej dzięki której wiesz co ja myślę. ;)

    > W związku z tym:
    > - 2.2E-16 nie jest najmniejszą wartością jaka na FPU x86 spowoduje zajście
    > nierówności. Jest najmniejszą taką wartością w typie double.

    Typ double (tj. zmienne tego typu) sam z siebie się nie potrafią dodawać.

    > float.h jest częścią standardu i odnosi się do standardowych typów

    Tj. o jakim standardzie piszesz?

    > ustawiać zaokrąglanie dla każdego rozkazu fpu. Wyobrażasz sobie, że w C
    > trzeba by przy każdej operacji float/double podawać prefix jak to
    > zaokrąglić?

    Owszem. I to jest /nieco/ dziwaczne uczucie, że chyba tak się powinno robić.

    > I zazwyczaj nie ma to znaczenia. Nikt nie robi poważnej numeryki opierając
    > się o to, że na x86 połowa epsilona double wystarcza.

    Wyznanie, że mało znasz ludzi robiących obliczenia numeryczne, a w
    szczególności wśród tych osób nikogo takiego co przykłada jakiekolwiek
    znaczenie do wartości epsilon?


  • 45. Data: 2012-11-05 13:04:18
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Adam Wysocki" <g...@s...invalid> napisał w wiadomości grup
    dyskusyjnych:g...@n...chmurka.net...
    > Czy ty się kiedyś ośle nauczysz wycinać cytaty? Czy przerasta to twoje
    > zdolności intelektualne?

    Panie Adamie, zadam takie osobiste pytanie: czy kiedykolwiek nauczy się pan
    zachowywać cywilizowany poziom dyskusji, czy też przekracza to pana
    możliwości w sensie tzw. kompetencji miękkich?

    > Wycinać cytaty i zawijać wiersze.

    Panie Adamie, czy mamy panu pomóc skonfigurować czytnik news'ów, czy jednak
    potrafi sam pan to zrobić? Bo z pańskiej, dość panicznie brzmiącej (gdy
    odczytać ją na głos), korespondencji wynika, iż niezawinięte wiersze są dla
    pana źródłem niewyobrażalnej udręki. A jako ludzie dobrego serca chętnie
    pomożemy.



  • 46. Data: 2012-11-05 13:10:38
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: Michoo <m...@v...pl>

    On 05.11.2012 12:48, slawek wrote:
    >
    > Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
    > dyskusyjnych:k783go$q3k$...@m...internetia.pl...
    >> Jest, ale wynika z czego innego niż myślisz.
    >
    > Pożycz szklanej kuli - tej dzięki której wiesz co ja myślę. ;)
    >
    >> W związku z tym:
    >> - 2.2E-16 nie jest najmniejszą wartością jaka na FPU x86 spowoduje
    >> zajście nierówności. Jest najmniejszą taką wartością w typie double.
    >
    > Typ double (tj. zmienne tego typu) sam z siebie się nie potrafią dodawać.

    Ale można je dodać zgodnie ze standardem i niezgodnie ze standardem.

    >
    >> float.h jest częścią standardu i odnosi się do standardowych typów
    >
    > Tj. o jakim standardzie piszesz?

    ISO/IEC 9899:TC3

    Tu jest nawet napisane znacznie dobitniej co ma być w EPS_DOUBLE:

    The values given in the following list shall be replaced by constant
    expressions with implementation-defined (positive) values that are less
    than or equal to those shown:

    - the difference between 1 and the least value greater than 1 that is
    representable in the given floating point type, b1- p

    Więc powyższe nie zostawia już chyba wątpliwości, która wartość jest
    poprawna?

    >
    >> I zazwyczaj nie ma to znaczenia. Nikt nie robi poważnej numeryki
    >> opierając się o to, że na x86 połowa epsilona double wystarcza.
    >
    > Wyznanie, że mało znasz ludzi robiących obliczenia numeryczne,

    Nie aż tak dużo - to fakt.

    > a w
    > szczególności wśród tych osób nikogo takiego co przykłada jakiekolwiek
    > znaczenie do wartości epsilon?

    Nie. Epsilon jako dokładność obliczeń (do czego się odwoływałeś) używa
    się ewentualnie w opisie algorytmu. Jako wartość w programie przyjmuje
    się różne EPS (odległość miedzy wartościami) zależnie od zakresu na
    którym się pracuje, zazwyczaj do określenia relacji równoważności i są
    to setki albo tysiące razy większe wartości niż EPS_DOUBLE podczas
    liczenia na double.

    W niektórych przypadkach gdy obliczenia są robione w okolicy "granic"
    typów aby zachować informację o rozmiarze błędu używa się przedziałów.

    --
    Pozdrawiam
    Michoo


  • 47. Data: 2012-11-05 16:17:41
    Temat: [off] Re: Błędny epsilon - this is not a bug, this is ?
    Od: "AK" <n...@n...com>

    Użytkownik "slawek" <s...@h...pl> napisał:

    > Nie pisz opinii na swój temat - to zdecydowanie NTG.

    Nie. Ja pisze o Tobie.

    Burakiem (tak tak, mimo ze "hrabią" to jednak burakiem), chamem
    i palantem zaczales byc dla mnie od momentu przeczytania tych
    twych slow do Bartka:

    "
    @bartekltg
    >Będziesz miał syf. To nie sa integery, nie powinno się działać
    >na 'ostatnich bitach'.

    @slawek
    Nie będę miał. Nie znam twojej siostry. Te zdania mają tyle ze sobą
    wspólnego, co podany przykład z liczbami integer.
    "
    i pozostaniesz dopóki nie przeczytam slow twych przeprosin do Bartka.
    Nie trac czasu na sazniste "tlumaczace" cie epistoly jak poprzednio.
    Mnie nie przekonaly kompletnie (mam nadzieje ze wiekszosci grupowiczow tez nie).
    Tym bardziej, ze (jak sam sie chwalisz), masz "niebieska krew".
    Do momentu ew. przeprosin bede dalej w stosunku do ciebie uzywal
    tych zasadnych epitetow.
    Co nie znaczy, ze bede sie jeszcze do ciebie odzywal.

    AK


  • 48. Data: 2012-11-05 16:33:32
    Temat: Re: [off] Re: Błędny epsilon - this is not a bug, this is ?
    Od: Marek Borowski <m...@...borowski.com>

    On 2012-11-05 16:17, AK wrote:
    > Użytkownik "slawek" <s...@h...pl> napisał:
    >
    >> Nie pisz opinii na swój temat - to zdecydowanie NTG.
    >
    > Nie. Ja pisze o Tobie.
    >
    > Burakiem (tak tak, mimo ze "hrabią" to jednak burakiem), chamem
    > i palantem zaczales byc dla mnie od momentu przeczytania tych
    > twych slow do Bartka:
    >
    > "
    > @bartekltg
    >> Będziesz miał syf. To nie sa integery, nie powinno się działać
    >> na 'ostatnich bitach'.
    >
    > @slawek
    > Nie będę miał. Nie znam twojej siostry. Te zdania mają tyle ze sobą
    > wspólnego, co podany przykład z liczbami integer.
    > "
    > i pozostaniesz dopóki nie przeczytam slow twych przeprosin do Bartka.
    > Nie trac czasu na sazniste "tlumaczace" cie epistoly jak poprzednio.
    > Mnie nie przekonaly kompletnie (mam nadzieje ze wiekszosci grupowiczow
    > tez nie).
    > Tym bardziej, ze (jak sam sie chwalisz), masz "niebieska krew".
    > Do momentu ew. przeprosin bede dalej w stosunku do ciebie uzywal
    > tych zasadnych epitetow.
    > Co nie znaczy, ze bede sie jeszcze do ciebie odzywal.
    >
    Daj spokoj, osoba o ktorej piszesz to jakis malutki czlowiek,
    odreagowujacy swoje frustracje z realu w necie, ktory w kazdym poscie
    obraza ludzi. Bardzo dziwie sie ze wogole ktos chce z nim wspolpracowac.
    Napisze cos co moze powiekszyc jego rozdete ego (o ile wogole da sie
    takiemu bufonowi je powiekszyc) - w jednym jest wyjatkowy, udalo mu sie
    jako jedynej osobie przekonac mnie do dopisania jej do KF, co zreszta
    polecam wszystkim.

    Pozdrawiam

    Marek





  • 49. Data: 2012-11-05 19:38:58
    Temat: Re: [off] Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Marek Borowski" <m...@...borowski.com> napisał w wiadomości grup
    dyskusyjnych:k78m8t$6v7$...@n...icm.edu.pl...
    > takiemu bufonowi je powiekszyc) - w jednym jest wyjatkowy, udalo mu sie
    > jako jedynej osobie przekonac mnie do dopisania jej do KF, co zreszta

    Bardzo mądre zalecenie - jeżeli ktoś jest bufonem i/lub lemingiem - to od
    razu powinien mnie dopisać do KF.



  • 50. Data: 2012-11-05 19:53:06
    Temat: Re: Błędny epsilon - this is not a bug, this is ?
    Od: "slawek" <s...@h...pl>


    Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości grup
    dyskusyjnych:k78amt$rth$...@m...internetia.pl...
    > ISO/IEC 9899:TC3

    Ok. Trzeba będzie sprostować w kilku miejscach - i powołanie się na
    /konkretny/ standard ułatwi sprawę.



strony : 1 ... 4 . [ 5 ] . 6 ... 19


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: