Diff for /rpl/src/calcul_integral.c between versions 1.42 and 1.43

version 1.42, 2013/02/27 17:11:39 version 1.43, 2013/03/20 17:11:43
Line 55  integrale_romberg(struct_processus *s_et Line 55  integrale_romberg(struct_processus *s_et
   
     struct_variable             s_variable;      struct_variable             s_variable;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
     unsigned long               k;      integer8                    k;
     unsigned long               n;      integer8                    n;
     unsigned long               p;      integer8                    p;
     unsigned long               nombre_elements;      integer8                    nombre_elements;
     unsigned long               nombre_termes;      integer8                    nombre_termes;
     unsigned long               taille_vecteur_precedent;      integer8                    taille_vecteur_precedent;
   
     /*      /*
      * Création d'une variable locale représentant la variable d'intégration       * Création d'une variable locale représentant la variable d'intégration
Line 137  integrale_romberg(struct_processus *s_et Line 137  integrale_romberg(struct_processus *s_et
   
     do      do
     {      {
         h = (b - a) / (nombre_elements = (1ULL << (++n)));          h = (b - a) / ((real8) (nombre_elements = (((integer8) 1) << (++n))));
   
         if (((unsigned long) nombre_elements) == 0)          if (nombre_elements == 0)
         {          {
             // Dépassement de capacité              // Dépassement de capacité
             n--;              n--;
Line 154  integrale_romberg(struct_processus *s_et Line 154  integrale_romberg(struct_processus *s_et
   
         t_tampon = t;          t_tampon = t;
   
         if ((t = (real8 **) malloc((n + 1) * sizeof(real8 *))) == NULL)          if ((t = (real8 **) malloc((((size_t) n) + 1) * sizeof(real8 *)))
                   == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 162  integrale_romberg(struct_processus *s_et Line 163  integrale_romberg(struct_processus *s_et
   
         for(i = 0; i <= n; i++)          for(i = 0; i <= n; i++)
         {          {
             if ((t[i] = (real8 *) malloc((n + 1) * sizeof(real8))) == NULL)              if ((t[i] = (real8 *) malloc((((size_t) n) + 1) * sizeof(real8)))
                       == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 188  integrale_romberg(struct_processus *s_et Line 190  integrale_romberg(struct_processus *s_et
          * Boucle principale           * Boucle principale
          */           */
   
         if ((vecteur = (real8 *) malloc((nombre_elements + 1) *          if ((vecteur = (real8 *) malloc((((size_t) nombre_elements) + 1) *
                 sizeof(real8))) == NULL)                  sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 266  integrale_romberg(struct_processus *s_et Line 268  integrale_romberg(struct_processus *s_et
         for(p = 1; p <= n; p++)          for(p = 1; p <= n; p++)
         {          {
             k = n - p;              k = n - p;
             t[p][k] = ((pow(4, p) * t[p - 1][k + 1]) - t[p - 1][k]) /              t[p][k] = ((pow(4, (real8) p) * t[p - 1][k + 1]) - t[p - 1][k]) /
                     ((real8) (pow(4, p) - 1));                      ((real8) (pow(4, (real8) p) - 1));
         }          }
     } while(((erreur = fabs(t[n][0] - t[n - 1][0])) > precision) &&      } while(((erreur = fabs(t[n][0] - t[n - 1][0])) > precision) &&
             ((*s_etat_processus).var_volatile_requete_arret == 0));              ((*s_etat_processus).var_volatile_requete_arret == 0));
Line 423  evaluation_romberg(struct_processus *s_e Line 425  evaluation_romberg(struct_processus *s_e
              */               */
   
             while((*s_etat_processus).hauteur_pile_operationnelle >              while((*s_etat_processus).hauteur_pile_operationnelle >
                     (unsigned long) hauteur_pile)                      hauteur_pile)
             {              {
                 if (depilement(s_etat_processus, &((*s_etat_processus)                  if (depilement(s_etat_processus, &((*s_etat_processus)
                         .l_base_pile), &s_objet) == d_erreur)                          .l_base_pile), &s_objet) == d_erreur)
Line 474  evaluation_romberg(struct_processus *s_e Line 476  evaluation_romberg(struct_processus *s_e
   
         if ((*s_objet).type == INT)          if ((*s_objet).type == INT)
         {          {
             (*valeur) = (*((integer8 *) (*s_objet).objet));              (*valeur) = (real8) (*((integer8 *) (*s_objet).objet));
             (*validite) = d_vrai;              (*validite) = d_vrai;
         }          }
         else if ((*s_objet).type == REL)          else if ((*s_objet).type == REL)

Removed from v.1.42  
changed lines
  Added in v.1.43


CVSweb interface <joel.bertrand@systella.fr>