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ää.
|
|