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