Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2101 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Variable d'induction, réduction de force

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable d'induction, réduction de force

n°1337523
Chronoklaz​m
Posté le 03-04-2006 à 01:36:41  profilanswer
 

Hello,
 
 
  Voila je suis entrain d'essayer de comprendre certaines optimisations possibles sur une boucle
 
- variable d'induction simple  : dont la valeur suit une progression arithmetique dans une boucle par exemple i = i + 10
- variable d'induction dépendante : dont le calcul dans la boucle est une fonction linéaire d'une variable d'induction simple  i : i * k1 + k2
- réduction de force : si j= c1 * i + c2 et que i est une variable
d'induction simple i = i + c3 alors j progresse de c1 * c3
 
Bon alors voila un code on s'en fout de ce qu'il fait :

Code :
  1. int p, q, r, t, a, i, b, c, min, max;
  2.     p=1;
  3.     q=2;
  4.     r=3;
  5.     t = 1;
  6.     a = 10;
  7.     i = 1;
  8.     b = 1;
  9.     c = 1;
  10.     min = 1;
  11.     max = 4;
  12.    
  13.     // VERSION SANS OPT
  14.     for(i = min ; i <= max; i=i+3){
  15.      t = a * i;
  16.      p = p+t;
  17.      q = q+b*t;
  18.      r = r+c*p;
  19.      printf("t = %d, p = %d, q = %d, r = %d\n", t, p, q, r);
  20.     }
  21.     // VERSION OPT
  22.     if( min <= max )  {
  23.         t = a*min;
  24.       p = p + t;
  25.        q = q + b * t;
  26.         r = r + c * p;
  27.         for(i = min+3 ; i <= max ; i += 3) {
  28.       t += 3*a;
  29.               p = p + t;
  30.               q = q + b * t;
  31.               r = r + c * p;
  32.         }
  33.     }
  34.          
  35.     printf("t = %d, p = %d, q = %d, r = %d\n", t, p, q, r);


 
A priori ca à l'air bon ...
 
Bon ca c'était pour éviter de faire la multiplication a * i .
 
Par contre pour eviter les autres multiplications je sais pas si c'est possible ...


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
mood
Publicité
Posté le 03-04-2006 à 01:36:41  profilanswer
 

n°1337544
bjone
Insert booze to continue
Posté le 03-04-2006 à 08:53:16  profilanswer
 

for(i = min ; i <= max; i=i+3)
 {
    t = a * i;  
 }
 
=>
 
int t=min*a, delta_t=a*3;
 
 for(i = min ; i <= max; i=i+3)
 {
    t += delta_t;  
    ...
 }
:??:
 

n°1337568
Chronoklaz​m
Posté le 03-04-2006 à 09:39:23  profilanswer
 

bjone a écrit :

for(i = min ; i <= max; i=i+3)
 {
    t = a * i;  
 }
 
=>
 
int t=min*a, delta_t=a*3;
 
 for(i = min ; i <= max; i=i+3)
 {
    t += delta_t;  
    ...
 }
:??:


 
 
Oui pardon j'avais oublié de caler 3*a dans une variable.
 
Mais genre pour q = q + b * t; ? Je peux faire comment ?


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
n°1337607
bjone
Insert booze to continue
Posté le 03-04-2006 à 10:42:08  profilanswer
 

alors attends je réfléchi si c'est possible de faire quelque chose:
 
int q=....., b=....
 
for(i = min ; i <= max; i=i+3)
 {
    t += delta_t;  
    q = q + b * t;  
    ...
 }  
 
q = q + b * t;  
 
q+=b*t;
 
=>
 
int t = min*a,  delta_t =a*3;
 
int bt = b*t;
 
int delta_bt =  delta_t * b;
 
for( i = min ; i <= max ; i=i+3 )
 {
    t += delta_t;  
    bt + = delta_bt;
    q += bt;  
    ...
 }  
 
je pense que ça doit être bon....

n°1337614
bjone
Insert booze to continue
Posté le 03-04-2006 à 10:54:46  profilanswer
 

pareil pour
r = r + c * p;
 
tu dois pouvoir déterminer une forme:
r+=delta_r;
ou
cp += delta_cp;
r += cp;

n°1338891
bjone
Insert booze to continue
Posté le 04-04-2006 à 16:15:59  profilanswer
 

glup
 
ça te va ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Variable d'induction, réduction de force

 

Sujets relatifs
header et force download [resolu]Incrémenter le nom d'une variable (VBA-VB)
[ Résolu ] Passage de variable PHP > FlashBoucle for et indexation de variable
Alert et variable PHPVariable à la suite...AIDE
creer variable globale modifable par les sub[résolu] Enregistrer page.php interpretté dans un variable
echange de variable[MACRO VB] combox + variable
Plus de sujets relatifs à : Variable d'induction, réduction de force


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR