Leonardo Boselli ha scritto:
> avendo una macchina con problemi di carico CPU ma non di memoria è meglio
> usare:
>
> float m[16],mn;
> …
> m[0]=m[1];m[1]=m[2];m[2]=m[3];m[3]=m[4];m[4]=m[5];m[5]=m[6];m[6]=m[7];m[7]=m[8];m[8]=mn;
> e poi
> m[9]=m[8]-m[3]+m[7]-m[2]+m[6]-m[1]+m[5]-m[0])/4+m[8];
>
> oppure usare un array circolare
> m[i&0xf]=m[(i-5)&0xf]-m[(i-6)&0xf] ... e così via con una sola riga )i 1e
> la iterazione, ogni 15 secondi)
> usare:
>
> float m[16],mn;
> …
> m[0]=m[1];m[1]=m[2];m[2]=m[3];m[3]=m[4];m[4]=m[5];m[5]=m[6];m[6]=m[7];m[7]=m[8];m[8]=mn;
> e poi
> m[9]=m[8]-m[3]+m[7]-m[2]+m[6]-m[1]+m[5]-m[0])/4+m[8];
>
> oppure usare un array circolare
> m[i&0xf]=m[(i-5)&0xf]-m[(i-6)&0xf] ... e così via con una sola riga )i 1e
> la iterazione, ogni 15 secondi)
nessuno dei due.
Ipotizzando che le prime 9 interazioni siano trascurabili, puoi impostare,
una sola volta, i seguenti valori
m[0]=m[1]=m[2]=m[3]=m[4]=m[5]=m[6]=m[7]=m[8]=mn
m[9]=0
:-)
Non hai indicato che il valore di mn viene variato e come.
La variazione di mn potrebbe seguire una regola (formala matematica)
che potrebbe rendere quel calcolo superfluo, nel senso che il calcolo
indicato potrebbe essere sostituito da una semplice formula matematica.
Inoltre m[7]-m[2]+m[6]-m[1]+m[5]-m[0] corrisponde a
m[8]-m[3]+m[7]-m[2]+m[6]-m[1] del calcolo precedente...
Io direi che dipende molto dal linguaggio che stai usando e dai flag
di ottimizzazione che imposti per l'eventuale compilazione.
Dipende molto da come viene ottimizzato il codice e viene tradotto
in linguaggio macchina per poi essere eseguito.
Inoltre dipende molto dalle operazioni che fai successivamente,
penso che perlomeno ci sarà un accesso ad uno o più elementi.
Se vuoi limitare il carico di CPU, la strada ottimale potrebbe essere
quella di programmare in assembler, in modo da evitare tutto
quello che viene aggiunto "inutilmente".
Ciao
Davide
--
La mia privacy non è affar tuo
https://noyb.eu/it
- You do not have my permission to use this email to train an AI -
If you use this to train your AI than you accept to distribute under AGPL
license >= 3.0 all the model trained, all the source you have used to
training your model and all the source of the program that use that model
La mia privacy non è affar tuo
https://noyb.eu/it
- You do not have my permission to use this email to train an AI -
If you use this to train your AI than you accept to distribute under AGPL
license >= 3.0 all the model trained, all the source you have used to
training your model and all the source of the program that use that model

