version 1.12, 2010/08/06 15:33:01
|
version 1.42, 2013/03/16 11:31:41
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.18 |
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 39 void
|
Line 39 void
|
instruction_moins(struct_processus *s_etat_processus) |
instruction_moins(struct_processus *s_etat_processus) |
{ |
{ |
integer8 tampon; |
integer8 tampon; |
integer8 tampon_2; |
|
|
|
logical1 depassement; |
logical1 depassement; |
logical1 drapeau; |
logical1 drapeau; |
Line 136 instruction_moins(struct_processus *s_et
|
Line 135 instruction_moins(struct_processus *s_et
|
if (((*s_objet_argument_1).type == INT) && |
if (((*s_objet_argument_1).type == INT) && |
((*s_objet_argument_2).type == INT)) |
((*s_objet_argument_2).type == INT)) |
{ |
{ |
tampon_2 = -(*((integer8 *) (*s_objet_argument_1).objet)); |
if (depassement_soustraction((integer8 *) (*s_objet_argument_2).objet, |
|
(integer8 *) (*s_objet_argument_1).objet, &tampon) == |
if (depassement_addition(&tampon_2, |
|
(integer8 *) (*s_objet_argument_2).objet, &tampon) == |
|
d_absence_erreur) |
d_absence_erreur) |
{ |
{ |
if ((s_objet_resultat = allocation(s_etat_processus, INT)) |
if ((s_objet_resultat = allocation(s_etat_processus, INT)) |
Line 161 instruction_moins(struct_processus *s_et
|
Line 158 instruction_moins(struct_processus *s_et
|
} |
} |
|
|
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) |
(*((real8 *) (*s_objet_resultat).objet)) = ((real8) |
(-(*((integer8 *) (*s_objet_argument_1).objet)))) |
(*((integer8 *) (*s_objet_argument_2).objet))) |
+ ((real8) (*((integer8 *) (*s_objet_argument_2).objet))); |
- ((real8) (*((integer8 *) (*s_objet_argument_1).objet))); |
} |
} |
} |
} |
|
|
Line 351 instruction_moins(struct_processus *s_et
|
Line 348 instruction_moins(struct_processus *s_et
|
for(i = 0; i < (*(((struct_vecteur *) (*s_objet_resultat) |
for(i = 0; i < (*(((struct_vecteur *) (*s_objet_resultat) |
.objet))).taille; i++) |
.objet))).taille; i++) |
{ |
{ |
tampon = -((integer8 *) (*((struct_vecteur *) (*s_objet_argument_1) |
if (depassement_soustraction(&(((integer8 *) (*((struct_vecteur *) |
.objet)).tableau)[i]; |
(*s_objet_argument_2).objet)).tableau)[i]), |
|
&(((integer8 *) (*((struct_vecteur *) (*s_objet_argument_1) |
if (depassement_addition(&(((integer8 *) (*((struct_vecteur *) |
.objet)).tableau)[i]), |
(*s_objet_argument_2).objet)).tableau)[i]), &tampon, |
|
&(((integer8 *) (*((struct_vecteur *) |
&(((integer8 *) (*((struct_vecteur *) |
(*s_objet_resultat).objet)).tableau)[i])) == d_erreur) |
(*s_objet_resultat).objet)).tableau)[i])) == d_erreur) |
{ |
{ |
Line 738 instruction_moins(struct_processus *s_et
|
Line 734 instruction_moins(struct_processus *s_et
|
for(j = 0; j < (*(((struct_matrice *) (*s_objet_resultat).objet))) |
for(j = 0; j < (*(((struct_matrice *) (*s_objet_resultat).objet))) |
.nombre_colonnes; j++) |
.nombre_colonnes; j++) |
{ |
{ |
tampon = -((integer8 **) (*((struct_matrice *) |
if (depassement_soustraction(&(((integer8 **) |
(*s_objet_argument_1).objet)).tableau)[i][j]; |
(*((struct_matrice *) (*s_objet_argument_2).objet)) |
|
.tableau)[i][j]), &(((integer8 **) (*((struct_matrice *) |
if (depassement_addition(&(((integer8 **) (*((struct_matrice *) |
(*s_objet_argument_1).objet)).tableau)[i][j]), |
(*s_objet_argument_2).objet)).tableau)[i][j]), &tampon, |
|
&(((integer8 **) (*((struct_matrice *) |
&(((integer8 **) (*((struct_matrice *) |
(*s_objet_resultat).objet)).tableau)[i][j])) |
(*s_objet_resultat).objet)).tableau)[i][j])) |
== d_erreur) |
== d_erreur) |
Line 5795 instruction_mant(struct_processus *s_eta
|
Line 5790 instruction_mant(struct_processus *s_eta
|
real8 base_reelle; |
real8 base_reelle; |
real8 reduction_reelle; |
real8 reduction_reelle; |
|
|
integer4 erreur; |
|
|
|
integer8 base_entiere; |
integer8 base_entiere; |
integer8 exposant; |
integer8 exposant; |
integer8 reduction_entiere; |
integer8 reduction_entiere; |
Line 5898 instruction_mant(struct_processus *s_eta
|
Line 5891 instruction_mant(struct_processus *s_eta
|
(*s_objet_argument).objet)))); |
(*s_objet_argument).objet)))); |
|
|
base_reelle = 10; |
base_reelle = 10; |
f77puissanceri_(&base_reelle, &exposant, &reduction_reelle, &erreur); |
f77puissanceri_(&base_reelle, &exposant, &reduction_reelle); |
|
|
if (erreur == -1) |
|
{ |
|
if (test_cfsf(s_etat_processus, 59) == d_vrai) |
|
{ |
|
liberation(s_etat_processus, s_objet_argument); |
|
liberation(s_etat_processus, s_objet_resultat); |
|
|
|
(*s_etat_processus).exception = d_ep_overflow; |
|
return; |
|
} |
|
else |
|
{ |
|
reduction_reelle = ((double) 1) / ((double) 0); |
|
} |
|
} |
|
|
|
(*((real8 *) (*s_objet_resultat).objet)) = |
(*((real8 *) (*s_objet_resultat).objet)) = |
(*((real8 *) (*s_objet_argument).objet)) / reduction_reelle; |
(*((real8 *) (*s_objet_argument).objet)) / reduction_reelle; |