Mi a double (számtípus) duplája?

 ( emberk | 2009. november 25., szerda - 17:41 )

Sziasztok.

1XXXX*1XXXX-es képeket kell feldolgoznom (fourier transzformáció + sok egyéb), és kénytelen vagyok 64bites double számokkal dolgozni, amit CV_64FC2-típusú opencv tömbökben tárolok, igen ám de elemenként műveleteket kell végrehajtanom, amit a CV_MAT_ELEM nevű függvény végez. aminek a formalizmosa:
CV_MAT_ELEM(tömb,számtípus,xkoordináta,ykoordináta).
De ezzel az a baj, hogy a legpontosabb számtípus amit be tudok írni az a double, ill a long double, ami meg már túl sok. Szóval biztosan trivialitás a megoldás, de nem tudom, hogy mi kell oda.

Jóra gondoltam, de rosszat írtam, nem akarom megmásítani amit írtam:
Szóval a long double is kevés, és attól hosszabb kelene mert a long double 96-bite-os, nekem 128-bite a számábrázolás. Ja még valamit, valójában 128 bite az azért 128, mert az eredmény komplex így az egyik csatornán a valós rész van a másikon az immaginárius.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Tudomásom szerint a double (64 bit), és a long double (96 bit) között nincs más.

Petya

Akkor megszívtam?
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

kíváncsiságból kérdem, miért nem elég a double?
eddigi tapasztalatom szerint amikor az volt a válasz hogy sok egymás utáni művelet miatt romlik a pontosság, mindig lehetett modell/implementálásbeli hibát találni (ez persze nem jelenti azt hogy a double mindenre elég, csak hogy a delikvens mindig túl kényelmes)

Részben igazad van, elvileg elegendő, de van minőségben különbség. Csak képen tudom megmutatni, amit a rekonstruált hologrammon nagyon jól látszik. Egyébként azért ennyire nagy pomtosságú számok kellenek mert egy nagyon nagy szám és nagyon kis szám szorzata a kimenet. nagyásgrendieg a 10^40-150 * minusz hatványban ennyi, és még komplex is, szóval van mit rajta mazsolázni a gépnek.Ja és a lényeg, hogy ez valójában 2*64 bit mert 2 csatornás, az egyik az immaginárius a másik a képzetes rész. A sima double méretű azaz 2*float, na az a kevés.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Vannak tetszoleges pontossagot eredmenyezo szamabrazolasok...

Igen erre én is gondoltam, a 128 bit bőven elég, a gond annyi, hogy iszonyat sok munkám van már az opencv-s részben, ráadásul a dft-t is teljesen előlről kellene akor irni. Gondoltam, csinálok egy 128-bites struktúra definíciót, és azt átadni sizeoffal, de nem jött be.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

a double 8 byte, a long double 10 byte (általában, x86-on)

mi lenne a kettő közt? 9 byte-os double ??
nem értem a problémát.

half long duble? :-)

--
Vittem a buliba egy üveg sósavat. Oldódjon a hangulat...

Lentebb válaszoltam hülyeséget írtam mindjárt javítom.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Mit jelent az, hogy a long double túl sok? Túl pontos az eredmény?

-----
Dropbox tárhely igénylése: https://www.getdropbox.com/referrals/NTI2MzM2MjA5

Igen hülyeséget írtam. De jól gondoltam. 128 byte-os a szám amit használok. A longdouble is kevés, nem sok.
------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

AFAIK x86-on az FPU nem tud 128 bites pontossagot, probald meg libgmp-vel.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

128 byte -os szám, KOMOLYAN? ez tuti? merthát akkor ugye:

-8,9884656743115795386465259539451e+307 tól +8,9884656743115795386465259539451e+307

terjed a skála (nagyjából)
Te a naprendszert akarod miliméter pontossággal ábrázolni?
Esetleg valami szubatomi mozgásmodelleket számolgatsz?

----
概略情報

hint1: olvasd el a többi hsz-t
hint2: legyen mm, ahogy mondtad, a szimulált időegységet is rád bízom, legyen egy üstökös ami most épp elvétette a földet, az adott pontossággal meg tudnád mondani hogy a következő visszatéréskor eltalálja-e?

"128 byte -os szám, KOMOLYAN? ez tuti?"

Egy szinttel feljebb. :)

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Nekem "majdnem" ez az arány X méteres tárgyakon mikrométerek. bár az csak 8-9 nagyságrend :).

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.