eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingNowoczesne procesory - jak to z nimi jest?Re: Nowoczesne procesory - jak to z nimi jest?
  • Data: 2013-03-26 22:11:45
    Temat: Re: Nowoczesne procesory - jak to z nimi jest?
    Od: Adam Klobukowski <a...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Tuesday, 26 March 2013 22:00:55 UTC+1, M.M. wrote:
    > W dniu wtorek, 26 marca 2013 19:02:08 UTC+1 użytkownik Adam Klobukowski napisał:
    >
    > > Każdy procesor który to implementuje (a ogromna większość implementacji
    > > matematyki zmiennoprzecinkowej implementuje ten standard) musi liczyć
    > > dokłądnie tak samo. Jak nie liczy tak samo, to masz np. słynny Pentium bug.
    >
    > Poniższy program na platformach sprzętowych jakie miałem pod ręką
    > zadziałał identycznie. Gdy wysłałem znajomemu żeby skompilował i
    > uruchomił u siebie, wyniki były inne. Ciekawe z czego to wynika.
    >
    > Implementacja tego drobiazgu w kompilatorze nie wydaje się
    > trudna, a póki co wszystko wskazuje na to, że winę za niedokładne
    > obliczenia ponosi kompilator. Jeśli nie jest trudna, to czemu
    > czasami traci dokładność po małej ilości pętli?
    >
    > int main( int argc, char *argv[] ) {
    > const double start = atof(argv[1]);
    > const double stop = atof(argv[2]);
    > const double p = atoi(argv[3]);
    >
    > for( double x=start ; x<=stop ; x+=1.0/1024.0 )
    > if( pow(x,p) != (x*x*x) ) {
    > printf("%lf\n",x);
    > break;
    > }
    >
    > return 0;
    > }
    >
    > Uruchomienie:
    >
    > ./nazwa_programu 0 1000000 3
    >
    > Mój wynik:
    > 92681.901367
    >
    > Szacując na oko, u mnie doszedł daleko, ale innych przerwał dużo
    > szybciej.

    U mnie ten sam wynik. Problemem może być choćby 1.0/1024.0 (bo to różnie może
    kompilator popracować) no i funkcje atof, atoi że nie wspomnę o rzutowaniu. Oprócz
    tego, przy matematyce zmiennoprzecinkowej pow(x,3) wcale nie musi być równe x*x*x.

    AdamK

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: