You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
FLOAT ApprossimazioneInteraEccesso,NumeroFFP;<br />
SPCmp - offset -$2a -42<br />
Perriiette di confrontare tra loro due numeri in formato fast<br />
floating point. Ricorciiamo che come l'operazione di soinma<br />
anche il semplice confronto tra diie numeri non è affatto<br />
un'operazione banale, dal riiornento che in una notazione<br />
che utilizza una rnantissa e un esponente lo stesso numero<br />
è suscettibile di piì~ rappresentazioni equivalenti: per questo<br />
non è sufficiente un se~nplice controllo logico sui bit. Per<br />
quanto riguarda l'influenza sui bit di stato tener presente<br />
che per il confronto viene effettuata la sottrazione PrirnoNumero<br />
- SecondoNumero.<br />
Risultatodelconfronto:<br />
tlsePrlmoNumero > SecondoNumero.<br />
-lsePrimoNumero< SecoridoNumero.<br />
O sePr~moNumero=SecondoNumero.<br />
SPDiv - offset -$54 -84<br />
Ritorna il quoziente tra due numeri in forinato FF1'.<br />
SPFix - offset -$le -30<br />
Converte un numero fast floating point in una normale long<br />
binaria. Risulta così necessario approssimare un numero<br />
decimale ad un intero, e il criterio scelto è stato quello di<br />
troncar via semplicemente la parte decimale.<br />
Se invocata da C verrà restituito un nulliero intero con<br />
segno.<br />
LONGNumeroInteroBinario;<br />
FLOATNumeroFFP;<br />
SPFloor - offset -$60 -90<br />
Restituisce il massimo numero intero piìi piccolo o uguale<br />
al parametro. sempre in formato fast floating point. I1 risul-<br />
tato è quindi analogo a quello di SPFix, ma in questo caso<br />
non viene effettuata alcuna conversione di formato.<br />
SPFlt - offset -$24 -36<br />
Effettua la conversione opposta a SPFix, trasformado un<br />
intero rappresentato nel solito forn~ato binario nel rispettivo<br />
intero in fast floating point.<br />
FLOATNumeroFFP;<br />
LONGNumeroInteroBinario:<br />
SPMul - offset -$4e -78<br />
Restituisce il prodotto dei due parametri.<br />
SPNeg - offset -$3c -60<br />
Cambia il segno dell'operando.<br />
SPSub - offset -$48 -72<br />
Effettua la sottraziotle tra due numeri in formato fast<br />
floating point.<br />
Resto = SPSub (M~nuendo, Sottraendo) ;<br />
DO DO D1<br />
FLOAT Resto,Mlnuendo,Sottraendo;<br />
SPTst - offset -$30 -48<br />
Confronta l'operando con il valore zero.<br />
~o~~~isultatoDelConEronto;<br />
FLOATNumeroFFP;<br />
R~sultatodelconfronto:<br />
t1 se NumeroFFP > 0.<br />
O se NumeroFFP = 0.<br />
-1 se NumeroFFP < 0.<br />
Libreria Matematica Fast Floating Point<br />
trascendente (mathtrans.librat-y)<br />
MaxIntero = SPFloor(NumeroFFP);<br />
DO DO SPAcos - offset -$78 -120<br />
Restituisce l'arcocoseno dell'argornento, passato in formato<br />
fast floating point. sotto forma di un nurnero nello stesso