Diff for /rpl/src/instructions_a1.c between versions 1.40 and 1.44

version 1.40, 2012/12/19 09:58:24 version 1.44, 2013/03/20 17:11:44
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.12    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2012 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 794  instruction_abs(struct_processus *s_etat Line 794  instruction_abs(struct_processus *s_etat
     struct_objet                        *s_objet_argument;      struct_objet                        *s_objet_argument;
     struct_objet                        *s_objet_resultat;      struct_objet                        *s_objet_resultat;
   
     unsigned long                       i;      integer8                            i;
     unsigned long                       j;      integer8                            j;
     unsigned long                       k;      integer8                            k;
     unsigned long                       nombre_elements;      integer8                            nombre_elements;
   
     void                                *accumulateur;      void                                *accumulateur;
   
Line 865  instruction_abs(struct_processus *s_etat Line 865  instruction_abs(struct_processus *s_etat
   
     if ((*s_objet_argument).type == INT)      if ((*s_objet_argument).type == INT)
     {      {
         if ((s_objet_resultat = allocation(s_etat_processus, INT)) == NULL)          if ((*((integer8 *) (*s_objet_argument).objet)) != INT64_MIN)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              if ((s_objet_resultat = allocation(s_etat_processus, INT)) == NULL)
             return;              {
                   (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   return;
               }
   
               (*((integer8 *) (*s_objet_resultat).objet)) = abs((*((integer8 *)
                       (*s_objet_argument).objet)));
         }          }
           else
           {
               if ((s_objet_resultat = allocation(s_etat_processus, REL)) == NULL)
               {
                   (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   return;
               }
   
         (*((integer8 *) (*s_objet_resultat).objet)) = abs((*((integer8 *)              (*((real8 *) (*s_objet_resultat).objet)) = abs((real8)
                 (*s_objet_argument).objet)));                      ((*((integer8 *) (*s_objet_argument).objet))));
           }
     }      }
   
 /*  /*
Line 930  instruction_abs(struct_processus *s_etat Line 944  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((*(((struct_vecteur *)          if ((accumulateur = malloc(((size_t) (*(((struct_vecteur *)
                 (*s_objet_argument).objet))).taille * sizeof(real8))) == NULL)                  (*s_objet_argument).objet))).taille) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 972  instruction_abs(struct_processus *s_etat Line 986  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((*(((struct_vecteur *)          if ((accumulateur = malloc(((size_t) (*(((struct_vecteur *)
                 (*s_objet_argument).objet))).taille * sizeof(real8))) == NULL)                  (*s_objet_argument).objet))).taille) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 1014  instruction_abs(struct_processus *s_etat Line 1028  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((*(((struct_vecteur *)          if ((accumulateur = malloc(((size_t) (*(((struct_vecteur *)
                 (*s_objet_argument).objet))).taille * sizeof(real8))) == NULL)                  (*s_objet_argument).objet))).taille) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 1055  instruction_abs(struct_processus *s_etat Line 1069  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((nombre_elements =          if ((accumulateur = malloc(((size_t) (nombre_elements =
                 (*(((struct_matrice *) (*s_objet_argument).objet)))                  (*(((struct_matrice *) (*s_objet_argument).objet)))
                 .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)                  .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)
                 .objet))).nombre_colonnes) * sizeof(real8))) == NULL)                  .objet))).nombre_colonnes)) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 1070  instruction_abs(struct_processus *s_etat Line 1084  instruction_abs(struct_processus *s_etat
             for(j = 0; j < (*(((struct_matrice *) (*s_objet_argument).objet)))              for(j = 0; j < (*(((struct_matrice *) (*s_objet_argument).objet)))
                     .nombre_colonnes; j++)                      .nombre_colonnes; j++)
             {              {
                 ((real8 *) accumulateur)[k++] =                  ((real8 *) accumulateur)[k++] = (real8)
                         ((integer8 **) (*((struct_matrice *)                          (((integer8 **) (*((struct_matrice *)
                         (*s_objet_argument).objet)).tableau)[i][j] *                          (*s_objet_argument).objet)).tableau)[i][j] *
                         ((integer8 **) (*((struct_matrice *)                          ((integer8 **) (*((struct_matrice *)
                         (*s_objet_argument).objet)).tableau)[i][j];                          (*s_objet_argument).objet)).tableau)[i][j]);
             }              }
         }          }
   
Line 1103  instruction_abs(struct_processus *s_etat Line 1117  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((nombre_elements =          if ((accumulateur = malloc(((size_t) (nombre_elements =
                 (*(((struct_matrice *) (*s_objet_argument).objet)))                  (*(((struct_matrice *) (*s_objet_argument).objet)))
                 .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)                  .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)
                 .objet))).nombre_colonnes) * sizeof(real8))) == NULL)                  .objet))).nombre_colonnes)) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 1151  instruction_abs(struct_processus *s_etat Line 1165  instruction_abs(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((accumulateur = malloc((nombre_elements =          if ((accumulateur = malloc(((size_t) (nombre_elements =
                 (*(((struct_matrice *) (*s_objet_argument).objet)))                  (*(((struct_matrice *) (*s_objet_argument).objet)))
                 .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)                  .nombre_lignes * (*(((struct_matrice *) (*s_objet_argument)
                 .objet))).nombre_colonnes) * sizeof(real8))) == NULL)                  .objet))).nombre_colonnes)) * sizeof(real8))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;

Removed from v.1.40  
changed lines
  Added in v.1.44


CVSweb interface <joel.bertrand@systella.fr>