You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Librerie Matematiche Fast Floating<br />
Point<br />
Alberto Geneletti<br />
Analisi di un 'altra libreria<br />
Continua in questo articolo l'analisi delle lil~rerie del sisteina<br />
operativo di <strong>Amiga</strong>, del quale ci siamo già occupati a<br />
proposito della grapliic e della IIOS library. Questa volta<br />
volgere1110 la nostra attenzione alle librerie niateniaticlie. e<br />
in particolare alla inath.librasy e alla iiiathtrans.lilii-ai-~i,<br />
librerie adatte ad applicazioni che ricliiedono elevata velocità<br />
di calcolo al prezzo di una precisane non iilolto accw<br />
ra Va.<br />
Cominciamo, quindi, con qualclie precisazione fondainentale<br />
a proposito delle caratteristiche di ogni libreria, coniprese<br />
quelle conformi alle specificlie IEEE di cui non ci<br />
occupereiiio dettagliatamente in questa sede.<br />
Un primo approccio<br />
I1 sistema operativo di Aiiiiga dispone di ben quattro lit>rei-ie<br />
materiiatiche, piìl una lihreria di conversione disponibile<br />
come linker lihraiy nel file <strong>Amiga</strong>.lib.<br />
Libreria mathffp<br />
Coniprende le funzioni n~atematiclie di base (soiiiiiia,<br />
moltiplicazione. ecc.) nel forsuato fast floating point della<br />
Motorola (FFP). E' l'unica libreria iiiaternatica residente in<br />
KOM.<br />
Libreria mathtrans<br />
Contiene le funzioni trigonoriletriclie, logaritmiclie ed<br />
esponenziali FFP. Risiede nella directoiy LIHS: del dischetto<br />
Woi-kl>ench dal quale è stato effettuato il boot del sistema.<br />
Le iiiodalità di accesso sono tuttavia identiche a quelle<br />
che abt~ianio già visto a proposito delle altre librerie residenti<br />
in ROM. dal momento che il sisteiiia operativo gestisce<br />
questa differente collocazione in rnodo del tutto trasparente<br />
al programmatore. provvedendo a caricare in RAM le routine<br />
della libreria in questione e gli opportuni riferis~ienti<br />
quando viene invocata la relativa OpenLibrary.<br />
Libreria di conversione FFP<br />
Come al~biamo detto si tratta di una linker library, e non cli<br />
una vera e propria libreria di sistema; per questo presenta<br />
note\loli anomalie rispetto alle altre librerie. tanto per quanto<br />
riguarda le modalita di accesso. tanto per come è strutturata.<br />
Pur non prevedendo alcuna funzione iiiateniatica<br />
significativa il suo utilizzo è necessario, costituendo un'indispensabile<br />
interfaccia tra l'utente e il formato FFP.<br />
Libreria mathieeedoubbas<br />
Prevede funzioni analoghe a quelle di mathffp, questa volta<br />
in doppia precisione IEEE, un formato sviluppato dall'Insti-<br />
tute of Electric 2nd Electronic Engineering.<br />
Libreria mathieeedoubtrans<br />
Contiene le f~in~ioni IEEE trascendenti (analoglie alle FFP<br />
cli mathtrans).<br />
Entraiiil~e residenti su disco queste librerie mettono a disposizione<br />
una precisione molto piìl elevata e risultano piì~<br />
lente delle precedenti solo in iiiancanza di un coprocessore<br />
iiiateiiiatico.<br />
Potenziali utenti deiie librerie FFP<br />
Anche se può sembrare a pi-iii~a vista curioso. la conoscenza<br />
delle lil~rerie matematiche del sisteiiia operativo non è<br />
affatto indispensabile alla maggior parte dei programmatori;<br />
questo pei-clit. linguaggi ad alto livello come il BASIC, il<br />
C e il Modula-2 prevedono istnizioni o funzioni di libreria<br />
del coinpilatoi-e che costituiscono un'interfaccia più co111oda<br />
tra il prograiiiina e le routine n~atematiche del sistema<br />
operativo.<br />
Nella maggioranza dei casi i conipilatori prevedono, inoltre.<br />
iihrerie matematiche proprie. le cui routine vengono<br />
inserite a far parte del codice di un programsiia in fase di<br />
linking. In cluest'ultimo caso servirsi cielle librerie del<br />
coiiipilatore risulta piì~ conveniente per hen due motivi:<br />
innanzitutto. l'utilizzo di funzioni standard C o di iiiociuli di<br />
lihreria Modula-2 relativaniente standardizzati, contribuisce<br />
ad aumentare notevolinente la portabiliti del sorgente;<br />
in secondo luogo. il funzionaniento del codice generato<br />
risulterà indipendente dalla presenza o ineno dei file di<br />
libreria nella directory LIBS:, dal moiiiento che le routine del<br />
linker costituiscono parte integrante del programma eseguilile.<br />
Questo E~cilita l'installazione del programiiia e ne assicura<br />
il f~inzionaiiiento anclie in presenza di revisioni passate del<br />
sistema operativo.<br />
Per quanto t; stato detto le routine delle librerie matematiclie<br />
dovrebbero risultare patrimonio esclusivo dei pro-