Il 08/03/2015 13:24, Stefano Bodrato ha scritto:
Considerata la maggior precisione e quindi il maggior numero di operazioni non mi sembra un cattivo risultato.
Che cosa intendi con "precisione"? Le mie routine sono a precisione variabile e nei miei test ho usato una precisione di 9 cifre significative (4 bytes) esatte e 3 cifre frazionarie. Se aumento rallenta anche il calcolo. In effetti con 3 sole cifre frazionarie il frattale non viene esattamente uguale come avevo scritto. Veniva bene, ad esempio, nel test con 19 cifre significative esatte (8 bytes) e 8 cifre frazionarie ma così era addirittura più lento del Basic.
Conosco trucchi che si basano su casi particolari, ma può non portare benefici, dipende dalla frequenza con cui si presentano i casi particolari.: - Identificare i valori interi o molto piccoli e seguire un percorso parallelo magari utilizzando direttamente i registri
No, non ci sono numeri interi in un calcolo di frattale.
- fare bit-shifting quando possibile
Puoi essere più preciso, per favore? Che vuoi dire? Gli algoritmi che uso si basano già sul bit-shifting ma forse intendevi altro...
- tabelle precalcolate (ad esempio x tutti i risultati della divisione di una word per 3 o per 7)
Ci avevo pensato ma, oltre alla maggiore occupazione di memoria, non capisco come applicarle... :-(
Quasi quasi mi vado a studiare l'algoritmo usato nella ROM dello Spectrum per fare moltiplicazioni e divisioni. Sai se e dove si può trovare quel materiale commentato?
EMG -- EMAG Software Homepage: http://www.emagsoftware.it The EMG Music page: http://www.emagsoftware.it/emgmusic The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum The Best of Spectrum Games: http://www.emagsoftware.it/tbosg