Posted By: Rat (ctyri mozkove bunky) on 'CZprogram'
Title: Re: Zaokrouhlovani cisla typu Extendedyy
Date: Sat May 11 10:09:03 2002
> > Jestli vyse uvedene spravne chapu, tak tvrdis, ze if (abs(a-b) <
> KONST_EPS)
> > je spravny zpusob porovnani pro jakkoli velke/male a, b ? Presnost se ti
> > prave
> > ztraci v prvnim bitu za mantisou, ktera na exponentu zavisla je. Zkus
> > loadnout
> > double, ulozit ho dvakrat jako float, jednou pri nastavenem zaokrouhlovani
>
> > dolu, podruhe nahoru, loadni znovu a spocitej rozdil.
> Pokud jsou a,b 'ruzna' hodne od sebe, pak je jejich rozdil sam o sobe
> velkej,
> tutiz porovnani s E vyjde 'tak jak ma' (tedy to abs bude vetsi). Ztraci se
> vic nez jeden bit, neb interne je presnost 80 (intelovsky FPU). Co se tyce
> tohodle bitu, tak pri dodrzeni podminky ze M je <0.5-1) bude vzdy nejvissy
> bit mantisi 1ka a toho je v IEEE754 zneuzito k tomu (neni pouzivanej a pri
> vypoctech je doplnovanej automaticky) se zvojnasuboje presnost. Pokud se
> dostavas do oblasti nizkych exponentu (hodne malych cisel) tak prestava mit
> smysl neco porovnavat na presnost (ted sa bavime o cislech blizkych
> nejnizsimu vyjadritelnymu cislu). A samozrejmne ze to zavisi na
> zaokrouhlovani (a je jedno jesli je dvojita nebo normlani presnot, vzdy se
> bude zaokrouhlovat). Tedy ano, dovolim si trvdit ze je to spravne (minimalne
> podle IEEE normy kdyz ne podle mne :)
>
> Chyba pri vypoctu, vznikla zaokrouhlovanim je 'jina'. Ta se tady neimplikuje
> (kde ce treba ve vyse uvedem projevi ?) Neboli, tuhle chybu ja neberu v
> potaz,
> protoze uz jen ta "nepresnost" staci k tomu abys potreboval epsilon. A chybu
> v
> zaokrouhlovani nemuzes posuzovat obecne, ta zalezi uz na konkretni veci (co
> se pocita, jak, v jakym poradi, ....) Ad zaokrouhlovani - tak je to zavisli
> na
> VYSI cisla, to se shodneme. Ale nepresnot o ktery tu mluvime prameni nekde
> jinde (viz puvodni post kde bylo klasicky a,b,c=a+b a test na c). Nekde muze
> byt chyba (absolutne) 0.0000000000001% 'adekvatni' (a akceptovatelna), jinde
> to mzue byt uplne jinak.
>
> Nechapu proc sem pletes double a floaty (predpokladam ze mas na mysli
> 32/64).
> Napis vis co si tim myslel. Ja celou dobu mluvim o nepresnoti jako TAKOVY,
> ne
> nepresnosti vzikajici PRI vypoctu (opet odkazuji na puvodni post, presne na
> toto narazel).
Ja se jen snazim vyvratit tve tvrzeni, ze chyba neni zavisla na exponentu
operandu (jestli jsem to pochopil spravne) - ty double/floaty byl priklad,
problem je jednoduse v tom, ze se at uz pri vypoctu, ci pri konverzi z
desitkove soustavy ci pri konverzi z delsiho typu na kratsi, ztrati nekolik
poslednich n (pri konverzi z desitkove soustavy i nekonecno) bitu. A tyhle
bity pochopitelne jsou zavisle na exponentu, tot vse, co jsem chtel rict.
Takze pak na srovnani dvou cisel nelze pouzit jednotne epsilon. Ale jak rikam,
mozna nekde doslo k nepochopeni, co puvodnim "clankem" bylo mysleno ;)
> Pivson I a posledni, z bozi vule pivar
>
> A co budou delat cesi ???
> Deme na pivo !
Krysa
rat@atrey.karlin.mff.cuni.cz Jsem Krysa
http://atrey.karlin.mff.cuni.cz/~rat/