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:00:55
    Temat: Re: Nowoczesne procesory - jak to z nimi jest?
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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.

    Pozdrawiam

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: