[zxspectrum] Re: Situazione disegno frattale

  • From: Stefano Bodrato <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 9 Mar 2015 21:39:48 +0100

> 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.:
>> parallelo magari utilizzando direttamente i registri
>No, non ci sono numeri interi in un calcolo di frattale.
In maggioranza no, ma forse riconoscere lo ‘0’ o moltiplicare un FP per valori 
interi noti in modo specifico potrebbe essere utile.


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

Sto parlando un po’ a vanvera, in effetti con la mantissa non credo abbia senso 
controllare se è divisibile per due.
Però forse se ne può “pesare” la precisione e scegliere una scorciatoia quando 
possibile ?


>> - 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... :-(

certo.. ma di RAM ne hai da vendere per il tuo frattale ..


>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?


La ROM dello zx (4 byte di mantissa, ma immagino la conoscessi già):
http://www.wearmouth.demon.co.uk/zx82.htm
si inizia dalla RST 28h

z88dk (5 byte di mantissa, + veloce):
http://z88dk.cvs.sourceforge.net/viewvc/z88dk/z88dk/libsrc/math/genmath/



Steafano

PNG image

Other related posts: