Matikkakirjastojen lukujen formaatti

Saku-foorumi » Classic Amiga » Ohjelmointi » Viestit 2002 » Matikkakirjastojen lukujen formaatti « Edellinen Seuraava »

Kirjoittaja Viesti
 

Markus
Lauantaina, 13. heinäkuuta, 2002 - klo 13.37:   
Tarvitsisin neliöjuurta konekielisessä ohjelmassa, enkä viitsisi kokeilla toteuttaa itse mitään algoritmiä, mikä laskee neliöjuuren sekä haluasin saada ohjelmani toimimaan myös koneissa, joissa ei ole FPU:ta joten ratkaisuna tähän haluaisin käyttää jotain matikkakirjastoa. Millaista formaattia esim. mathieeesingtrans.library käyttää luvuissa?

 

itix
Keskiviikkona, 17. heinäkuuta, 2002 - klo 1.38:   
IEEE single precision floating point. En kyllä jaksa yhtään muistaa miltä tuo luku näyttää ulkoapäinkatsottuna... Mutta tuo ieeesing tuossa nimessä kertoo lukuformaatin. ieeedoub nimessä taas tarkoittaisi double precisionia.

 

Joanna
Keskiviikkona, 17. heinäkuuta, 2002 - klo 3.26:   
Jups. Tässä on yksi n+1 webbisivusta jotka selittää asiaa hieman. Tämän sivun perusteella ei kannata omia rutiineita tehdä vielä mutta ainakin tuosta saa selvää mistä suunnilleen on kyse.

Eli, kyseessä on 32bittinen luku josta on 1 bitti varattu etumerkille, 8 bittiä exponentille ja loput 23 mantissalle.

http://www.mathworks.com/access/helpdesk/help/toolbox/fixpoint/c3_bev12.shtml

Muistaakseni kirjastoissa on valmiit rutiinit lukujen muuttamiseen formaatista toiseen, kannattaisiko käyttää niitä ja unohtaa detaljit?

Sitäpaitsi neliöjuuren otto floattina koneessa jossa ei ole matikkaprossua ei ole mikään pikku juttu. En suosittele, tuollainen yleinen rutiini vie julmasti aikaa. Jos et tarvitse paljon tarkkuutta, suosittelen etsimään jonkin nerokkaan linaariaproksimaation joka ajaa asian alle 1/100 ajassa.

 

JPQ
Torstaina, 18. heinäkuuta, 2002 - klo 13.16:   
Löytyy myös Amigan RKRM Libraries (ainakin 2.0 versiosta) kirjasta myöskin. Double precisonkin luvut löytyv selitettynä. Tosin tuo nettisivu on selkeämpi.

 

Markus
Perjantaina, 19. heinäkuuta, 2002 - klo 13.37:   
Kiitoksia vastauksista. Päädyin nopeussyistä kiertämään neliöjuuren oton toisenlaisella ratkaisulla, millä sain tyydyttävän tuloksen...

Matikkakirjastoissa on muistaakseni rutiineja, jotka muuttavat lukuja formaatista toiseen, mutta ei kuitenkaan sellaista rutiinia, joka ottaisi tavallisen kokonaisluvun ja muuttaisin sen esim. IEEE single precision floating point-luvksi.

 

JPQ
Perjantaina, 19. heinäkuuta, 2002 - klo 18.35:   
MARKUS Tuota muutosta varten on helpohko ehkä tehdä oma koodi. Voisi vaikka itse c-kielellä yrtittää.

Lisää viestisi tähän
Viestisi:
Käyttäjätunnus: Postitus informaatiota:
Tämä on yksityinen keskustelupalsta. Vain rekisteröidyt käyttäjät ja moderaattorit voivat postittaa tänne.
Salasana:
valinnat: Aktivoi URL:t automaattisesti tässä viestissä
Toimenpide: