PIPS
|
Go to the source code of this file.
Macros | |
#define | MODULO_MAX_A 5 |
#define | MODULO_MAX_B 5 |
Functions | |
Value | modulo_fast (Value a, Value b) |
package arithmetique More... | |
#define MODULO_MAX_A 5 |
#define MODULO_MAX_B 5 |
package arithmetique
INTLIBRARY int modulo_fast(int a, int b): calcul du modulo de a par b; le modulo retourne est toujours positif
Il y a quatre configuration de signe a traiter:
definition d'une look-up table pour les valeurs de a appartenant a [-MODULO_MAX_A..MODULO_MAX_A] et pour les valeurs de b appartenant a 1..MODULO_MAX_B Serait-il utile d'ajouter une test b==1 pour supprimer une colonne?
b == 1 2 3 4 5
a == - 5
a == - 4
a == - 3
a == - 2
a == - 1
a == 0
a == 1
a == 2
a == 3
a == 4
a == 5
supprime pour cause de look-up table if(a==1 || a== 0) return(a);
if(b==1) return(0);
Definition at line 48 of file modulo.c.
References assert, int_to_value, MODULO_MAX_A, MODULO_MAX_B, value_abs, value_ge, value_le, value_minus, value_mod, value_neg_p, value_notzero_p, and VALUE_TO_INT.