#include #include #include MODULE(Math); /* denominateur < 2^63 */ Div64 div64 (uint64 numerateur, uint64 denominateur) { uint64 reste = 0; uint64 quotient = 0; Div64 resultat; int i; for (i = 0; i < 64; i++) { quotient <<= 1; reste <<= 1; reste |= (numerateur & 0x8000000000000000L) ? 1 : 0; numerateur <<= 1; if (reste >= denominateur) { quotient |= 1; reste -= denominateur; } } resultat.quotient = quotient; resultat.reste = reste; return resultat; } void initMath (void** etat) { *etat = etatMath; } void deinitMath (void** etat) { *etat = NULL; }