Diff for /rpl/src/statistiques.c between versions 1.4 and 1.41

version 1.4, 2010/03/04 10:17:55 version 1.41, 2013/03/21 11:30:31
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.12    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 47  sommation_statistique(struct_matrice *s_ Line 47  sommation_statistique(struct_matrice *s_
   
     struct_vecteur              *s_vecteur;      struct_vecteur              *s_vecteur;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
   
     if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)      if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)
     {      {
Line 61  sommation_statistique(struct_matrice *s_ Line 61  sommation_statistique(struct_matrice *s_
   
     if ((*s_matrice).type == 'I')      if ((*s_matrice).type == 'I')
     {      {
         if ((cumul_entier = (integer8 *) malloc((*s_matrice).nombre_colonnes *          if ((cumul_entier = (integer8 *) malloc(((size_t) (*s_matrice)
                 sizeof(integer8))) == NULL)                  .nombre_colonnes) * sizeof(integer8))) == NULL)
         {          {
             free(s_vecteur);              free(s_vecteur);
             return NULL;              return NULL;
Line 103  sommation_statistique(struct_matrice *s_ Line 103  sommation_statistique(struct_matrice *s_
   
             free(cumul_entier);              free(cumul_entier);
   
             if (((*s_vecteur).tableau = malloc((*s_matrice).nombre_colonnes *              if (((*s_vecteur).tableau = malloc(((size_t) (*s_matrice)
                     sizeof(real8))) == NULL)                      .nombre_colonnes) * sizeof(real8))) == NULL)
             {              {
                 free(s_vecteur);                  free(s_vecteur);
                 return NULL;                  return NULL;
             }              }
   
             if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *              if ((colonne = (real8 *) malloc(((size_t) (*s_matrice)
                     sizeof(real8))) == NULL)                      .nombre_lignes) * sizeof(real8))) == NULL)
             {              {
                 free(s_vecteur);                  free(s_vecteur);
                 return NULL;                  return NULL;
Line 149  sommation_statistique(struct_matrice *s_ Line 149  sommation_statistique(struct_matrice *s_
   
     else if ((*s_matrice).type == 'R')      else if ((*s_matrice).type == 'R')
     {      {
         if (((*s_vecteur).tableau = malloc((*s_matrice).nombre_colonnes *          if (((*s_vecteur).tableau = malloc(((size_t) (*s_matrice)
                 sizeof(real8))) == NULL)                  .nombre_colonnes) * sizeof(real8))) == NULL)
         {          {
             free(s_vecteur);              free(s_vecteur);
             return NULL;              return NULL;
         }          }
   
         if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *          if ((colonne = (real8 *) malloc(((size_t) (*s_matrice).nombre_lignes) *
                 sizeof(real8))) == NULL)                  sizeof(real8))) == NULL)
         {          {
             free(s_vecteur);              free(s_vecteur);
Line 205  sommation_statistique(struct_matrice *s_ Line 205  sommation_statistique(struct_matrice *s_
   
 struct_vecteur *  struct_vecteur *
 sommation_produits_colonnes_statistiques(struct_matrice *s_matrice,  sommation_produits_colonnes_statistiques(struct_matrice *s_matrice,
         unsigned long position_1, unsigned long position_2)          integer8 position_1, integer8 position_2)
 {  {
     integer8                    *cumul_entier;      integer8                    *cumul_entier;
     integer8                    tampon;      integer8                    tampon;
Line 217  sommation_produits_colonnes_statistiques Line 217  sommation_produits_colonnes_statistiques
   
     struct_vecteur              *s_vecteur;      struct_vecteur              *s_vecteur;
   
     unsigned long               i;      integer8                    i;
   
     if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)      if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)
     {      {
Line 281  sommation_produits_colonnes_statistiques Line 281  sommation_produits_colonnes_statistiques
                 return NULL;                  return NULL;
             }              }
   
             if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *              if ((colonne = (real8 *) malloc(((size_t) (*s_matrice)
                     sizeof(real8))) == NULL)                      .nombre_lignes) * sizeof(real8))) == NULL)
             {              {
                 free(s_vecteur);                  free(s_vecteur);
                 return NULL;                  return NULL;
Line 325  sommation_produits_colonnes_statistiques Line 325  sommation_produits_colonnes_statistiques
             return NULL;              return NULL;
         }          }
   
         if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *          if ((colonne = (real8 *) malloc(((size_t) (*s_matrice).nombre_lignes) *
                 sizeof(real8))) == NULL)                  sizeof(real8))) == NULL)
         {          {
             free(s_vecteur);              free(s_vecteur);
Line 370  sommation_produits_colonnes_statistiques Line 370  sommation_produits_colonnes_statistiques
 */  */
   
 struct_vecteur *  struct_vecteur *
 sommation_colonne_statistique(struct_matrice *s_matrice, unsigned long position)  sommation_colonne_statistique(struct_matrice *s_matrice, integer8 position)
 {  {
     integer8                    *cumul_entier;      integer8                    *cumul_entier;
   
Line 381  sommation_colonne_statistique(struct_mat Line 381  sommation_colonne_statistique(struct_mat
   
     struct_vecteur              *s_vecteur;      struct_vecteur              *s_vecteur;
   
     unsigned long               i;      integer8                    i;
   
     if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)      if ((s_vecteur = (struct_vecteur *) malloc(sizeof(struct_vecteur))) == NULL)
     {      {
Line 439  sommation_colonne_statistique(struct_mat Line 439  sommation_colonne_statistique(struct_mat
                 return NULL;                  return NULL;
             }              }
   
             if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *              if ((colonne = (real8 *) malloc(((size_t) (*s_matrice)
                     sizeof(real8))) == NULL)                      .nombre_lignes) * sizeof(real8))) == NULL)
             {              {
                 free(s_vecteur);                  free(s_vecteur);
                 return NULL;                  return NULL;
Line 481  sommation_colonne_statistique(struct_mat Line 481  sommation_colonne_statistique(struct_mat
             return NULL;              return NULL;
         }          }
   
         if ((colonne = (real8 *) malloc((*s_matrice).nombre_lignes *          if ((colonne = (real8 *) malloc(((size_t) (*s_matrice).nombre_lignes) *
                 sizeof(real8))) == NULL)                  sizeof(real8))) == NULL)
         {          {
             free(s_vecteur);              free(s_vecteur);
Line 533  moyenne_statistique(struct_matrice *s_ma Line 533  moyenne_statistique(struct_matrice *s_ma
   
     struct_vecteur              *s_vecteur;      struct_vecteur              *s_vecteur;
   
     unsigned long               i;      integer8                    i;
   
     if ((s_vecteur = sommation_statistique(s_matrice)) == NULL)      if ((s_vecteur = sommation_statistique(s_matrice)) == NULL)
     {      {
Line 574  moyenne_statistique(struct_matrice *s_ma Line 574  moyenne_statistique(struct_matrice *s_ma
         {          {
             tampon = (*s_vecteur).tableau;              tampon = (*s_vecteur).tableau;
   
             if (((*s_vecteur).tableau = malloc((*s_vecteur).taille *              if (((*s_vecteur).tableau = malloc(((size_t) (*s_vecteur).taille) *
                     sizeof(real8))) == NULL)                      sizeof(real8))) == NULL)
             {              {
                 return NULL;                  return NULL;
Line 616  variance_statistique(struct_matrice *s_m Line 616  variance_statistique(struct_matrice *s_m
   
     logical1                        erreur_memoire;      logical1                        erreur_memoire;
   
     unsigned long                   i;      integer8                        i;
     unsigned long                   j;      integer8                        j;
   
     real8                           *cumul;      real8                           *cumul;
   
Line 633  variance_statistique(struct_matrice *s_m Line 633  variance_statistique(struct_matrice *s_m
      * Le résultat de cette fonction est toujours réel.       * Le résultat de cette fonction est toujours réel.
      */       */
   
     if ((cumul = (real8 *) malloc((*s_matrice).nombre_lignes * sizeof(real8)))      if ((cumul = (real8 *) malloc(((size_t) (*s_matrice).nombre_lignes) *
             == NULL)             sizeof(real8))) == NULL)
     {      {
         return NULL;          return NULL;
     }      }
Line 649  variance_statistique(struct_matrice *s_m Line 649  variance_statistique(struct_matrice *s_m
     {      {
         tampon = (*s_moyenne).tableau;          tampon = (*s_moyenne).tableau;
   
         if (((*s_moyenne).tableau = malloc((*s_moyenne).taille * sizeof(real8)))          if (((*s_moyenne).tableau = malloc(((size_t) (*s_moyenne).taille) *
                 == NULL)                  sizeof(real8))) == NULL)
         {          {
             return NULL;              return NULL;
         }          }
Line 664  variance_statistique(struct_matrice *s_m Line 664  variance_statistique(struct_matrice *s_m
         free(tampon);          free(tampon);
     }      }
   
     if (((*s_variance).tableau = malloc((*s_matrice).nombre_colonnes *      if (((*s_variance).tableau = malloc(((size_t) (*s_matrice).nombre_colonnes)
             sizeof(real8))) == NULL)              * sizeof(real8))) == NULL)
     {      {
         return NULL;          return NULL;
     }      }
Line 763  ecart_type_statistique(struct_matrice *s Line 763  ecart_type_statistique(struct_matrice *s
 {  {
     struct_vecteur                  *s_vecteur;      struct_vecteur                  *s_vecteur;
   
     unsigned long                   i;      integer8                        i;
   
     if ((s_vecteur = variance_statistique(s_matrice, type)) == NULL)      if ((s_vecteur = variance_statistique(s_matrice, type)) == NULL)
     {      {
Line 794  ecart_type_statistique(struct_matrice *s Line 794  ecart_type_statistique(struct_matrice *s
   
 real8  real8
 correlation_statistique(struct_matrice *s_matrice,  correlation_statistique(struct_matrice *s_matrice,
         unsigned long colonne_1, unsigned long colonne_2, logical1 *erreur)          integer8 colonne_1, integer8 colonne_2, logical1 *erreur)
 {  {
     logical1                erreur_memoire;      logical1                erreur_memoire;
   
Line 804  correlation_statistique(struct_matrice * Line 804  correlation_statistique(struct_matrice *
     real8                   numerateur;      real8                   numerateur;
     real8                   *vecteur;      real8                   *vecteur;
   
     unsigned long           i;      integer8                i;
     unsigned long           nombre_observations;      integer8                nombre_observations;
   
     (*erreur) = d_absence_erreur;      (*erreur) = d_absence_erreur;
   
     if ((vecteur = (real8 *) malloc((nombre_observations =      if ((vecteur = (real8 *) malloc(((size_t) (nombre_observations =
             (*s_matrice).nombre_lignes) * sizeof(real8))) == NULL)              (*s_matrice).nombre_lignes)) * sizeof(real8))) == NULL)
     {      {
         (*erreur) = d_erreur;          (*erreur) = d_erreur;
         return 0;          return 0;
Line 827  correlation_statistique(struct_matrice * Line 827  correlation_statistique(struct_matrice *
         }          }
   
         moyenne_colonne_1 = sommation_vecteur_reel(vecteur,          moyenne_colonne_1 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 841  correlation_statistique(struct_matrice * Line 842  correlation_statistique(struct_matrice *
         }          }
   
         moyenne_colonne_2 = sommation_vecteur_reel(vecteur,          moyenne_colonne_2 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 908  correlation_statistique(struct_matrice * Line 910  correlation_statistique(struct_matrice *
         }          }
   
         moyenne_colonne_1 = sommation_vecteur_reel(vecteur,          moyenne_colonne_1 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 923  correlation_statistique(struct_matrice * Line 926  correlation_statistique(struct_matrice *
         }          }
   
         moyenne_colonne_2 = sommation_vecteur_reel(vecteur,          moyenne_colonne_2 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 1004  correlation_statistique(struct_matrice * Line 1008  correlation_statistique(struct_matrice *
 */  */
   
 real8  real8
 covariance_statistique(struct_matrice *s_matrice,  covariance_statistique(struct_matrice *s_matrice, integer8 colonne_1,
         unsigned long colonne_1, unsigned long colonne_2,          integer8 colonne_2, unsigned char type, logical1 *erreur)
         unsigned char type, logical1 *erreur)  
 {  {
     logical1                erreur_memoire;      logical1                erreur_memoire;
   
Line 1016  covariance_statistique(struct_matrice *s Line 1019  covariance_statistique(struct_matrice *s
     real8                   numerateur;      real8                   numerateur;
     real8                   *vecteur;      real8                   *vecteur;
   
     unsigned long           i;      integer8                i;
     unsigned long           nombre_observations;      integer8                nombre_observations;
   
     (*erreur) = d_absence_erreur;      (*erreur) = d_absence_erreur;
   
     if ((vecteur = (real8 *) malloc((nombre_observations =      if ((vecteur = (real8 *) malloc(((size_t) (nombre_observations =
             (*s_matrice).nombre_lignes) * sizeof(real8))) == NULL)              (*s_matrice).nombre_lignes)) * sizeof(real8))) == NULL)
     {      {
         (*erreur) = d_erreur;          (*erreur) = d_erreur;
         return 0;          return 0;
Line 1033  covariance_statistique(struct_matrice *s Line 1036  covariance_statistique(struct_matrice *s
   
     if (type == 'E')      if (type == 'E')
     {      {
         denominateur = nombre_observations - 1;          denominateur = ((real8) nombre_observations) - 1;
     }      }
     else      else
     {      {
         denominateur = nombre_observations;          denominateur = ((real8) nombre_observations);
     }      }
   
     if ((*s_matrice).type == 'R')      if ((*s_matrice).type == 'R')
Line 1048  covariance_statistique(struct_matrice *s Line 1051  covariance_statistique(struct_matrice *s
         }          }
   
         moyenne_colonne_1 = sommation_vecteur_reel(vecteur,          moyenne_colonne_1 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 1062  covariance_statistique(struct_matrice *s Line 1066  covariance_statistique(struct_matrice *s
         }          }
   
         moyenne_colonne_2 = sommation_vecteur_reel(vecteur,          moyenne_colonne_2 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 1095  covariance_statistique(struct_matrice *s Line 1100  covariance_statistique(struct_matrice *s
         }          }
   
         moyenne_colonne_1 = sommation_vecteur_reel(vecteur,          moyenne_colonne_1 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {
Line 1110  covariance_statistique(struct_matrice *s Line 1116  covariance_statistique(struct_matrice *s
         }          }
   
         moyenne_colonne_2 = sommation_vecteur_reel(vecteur,          moyenne_colonne_2 = sommation_vecteur_reel(vecteur,
                 &nombre_observations, &erreur_memoire) / nombre_observations;                  &nombre_observations, &erreur_memoire) /
                   ((real8) nombre_observations);
   
         if (erreur_memoire == d_vrai)          if (erreur_memoire == d_vrai)
         {          {

Removed from v.1.4  
changed lines
  Added in v.1.41


CVSweb interface <joel.bertrand@systella.fr>