Diff for /rpl/src/depassements.c between versions 1.42 and 1.57

version 1.42, 2013/03/16 11:31:40 version 1.57, 2015/09/18 13:41:09
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.23
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2015 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 186  depassement_multiplication(integer8 *a, Line 186  depassement_multiplication(integer8 *a,
 logical1  logical1
 depassement_puissance(integer8 *a, integer8 *b, integer8 *resultat)  depassement_puissance(integer8 *a, integer8 *b, integer8 *resultat)
 {  {
     int                         decalage;  
   
     integer8                    i;      integer8                    i;
   
     logical1                    depassement;      logical1                    depassement;
   
     unsigned_integer8           r;      integer8                    r;
     unsigned_integer8           unite;  
   
     if ((*b) < 0)      if ((*b) < 0)
     {      {
Line 203  depassement_puissance(integer8 *a, integ Line 200  depassement_puissance(integer8 *a, integ
   
     if ((-1 <= (*a)) && ((*a) <= 1))      if ((-1 <= (*a)) && ((*a) <= 1))
     {      {
         r = abs((*a));  
   
         if ((*a) == 0)          if ((*a) == 0)
         {          {
             (*resultat) = 0;              (*resultat) = 0;
Line 225  depassement_puissance(integer8 *a, integ Line 220  depassement_puissance(integer8 *a, integ
     }      }
   
     depassement = d_faux;      depassement = d_faux;
       r = 1;
   
     for(i = 0; i < (*b); i++)      for(i = 0; i < (*b); i++)
     {      {
Line 242  depassement_puissance(integer8 *a, integ Line 238  depassement_puissance(integer8 *a, integ
     }      }
     else      else
     {      {
         decalage = (sizeof(unsigned_integer8) * 8) - 1;          (*resultat) = r;
         unite = 1;          return(d_absence_erreur);
   
         if (r <= ((unite << decalage) - 1))  
         {  
             f77puissanceii_(a, b, resultat);  
             return(d_absence_erreur);  
         }  
         else  
         {  
             (*resultat) = 0;  
             return(d_erreur);  
         }  
     }      }
 }  }
   

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


CVSweb interface <joel.bertrand@systella.fr>