From 6e5f6775d16e9730ccf1edbecf14da52d0ef134a Mon Sep 17 00:00:00 2001 From: Pixel Date: Thu, 3 May 2001 00:20:43 +0000 Subject: Indentation --- lib/scalaires.c | 249 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 142 insertions(+), 107 deletions(-) (limited to 'lib/scalaires.c') diff --git a/lib/scalaires.c b/lib/scalaires.c index ee44304..857faab 100644 --- a/lib/scalaires.c +++ b/lib/scalaires.c @@ -13,171 +13,206 @@ #define _(x) x #endif -/* Cette précision est utilisée dans le cas où nous devons convertir un double en rationnel */ +/* + * Cette precision est utilisee dans le cas ou nous devons convertir un double en rationnel + */ #define PRECISION 1E6 typedisplay display; -/* Fonction interne uniquement */ +/* + * Fonction interne uniquement + */ static unsigned long long pgcd(unsigned long long a, unsigned long long b) { - if (a < b) - return pgcd(b, a); - if (!b) - return a; - return pgcd(b, a % b); + if (a < b) + return pgcd(b, a); + if (!b) + return a; + return pgcd(b, a % b); } -/* Les quelques fonctions utiles à tout le monde... Juste pour éviter de taper du code en n exemplaire */ +/* + * Les quelques fonctions utiles a tout le monde... Juste pour eviter de taper du code en n + * exemplaire + */ rationnel rat_constr_zero(void) -{ /* renvoie 0 */ - rationnel temp; - - temp.num = 0; - temp.denom = 1; - return temp; +{ /* + * renvoie 0 + */ + rationnel temp; + + temp.num = 0; + temp.denom = 1; + return temp; } - rationnel rat_constr(unsigned long long num, unsigned long long denom) -{ /* cree une fraction */ - rationnel temp; - int sgnnum = 1, sgndenom = 1; - - if (num < 0) { - sgnnum = -1; - num = -num; - } - - if (denom < 0) { - sgndenom = -1; - denom = -denom; - } - if (!num) { - temp.num = 0; - temp.denom = 1; - } else if (denom) { - temp.num = sgnnum * sgndenom * num / pgcd(num, denom); - temp.denom = denom / pgcd(num, denom); - } else { - exception(2, _("rat_constr: division by zero")); - } - return temp; +{ /* + * cree une fraction + */ + rationnel temp; + int sgnnum = 1, sgndenom = 1; + + if (num < 0) { + sgnnum = -1; + num = -num; + } + + if (denom < 0) { + sgndenom = -1; + denom = -denom; + } + if (!num) { + temp.num = 0; + temp.denom = 1; + } else if (denom) { + temp.num = sgnnum * sgndenom * num / pgcd(num, denom); + temp.denom = denom / pgcd(num, denom); + } else { + exception(2, _("rat_constr: division by zero")); + } + return temp; } -/* Cette fonction est là pour faire beau. En fait, aucune routine ne l'utilise. Elle est écrite "au cas où" */ +/* + * Cette fonction est la pour faire beau. En fait, aucune routine ne l'utilise. Elle est ecrite "au + * cas ou" + */ rationnel rat_constr_from_double(double flt) -{ /* cree une fraction a partir d un double */ - return rat_constr(floor(flt * PRECISION), PRECISION); +{ /* + * cree une fraction a partir d un double + */ + return rat_constr(floor(flt * PRECISION), PRECISION); } void rat_destruct(rationnel rat) -{ /* destructeur */ +{ /* + * destructeur + */ } double rat_to_double(rationnel rat) -{ /* obtention du double correspondant a un rationnel */ - return ((double) rat.num / (double) rat.denom); +{ /* + * obtention du double correspondant a un rationnel + */ + return ((double) rat.num / (double) rat.denom); } rationnel rat_addition(rationnel rat1, rationnel rat2) -{ /* addition */ +{ /* + * addition + */ - return rat_constr(rat1.num * rat2.denom + rat2.num * rat1.denom, rat1.denom * rat2.denom); + return rat_constr(rat1.num * rat2.denom + rat2.num * rat1.denom, rat1.denom * rat2.denom); } rationnel rat_soustraction(rationnel rat1, rationnel rat2) -{ /* soustraction */ +{ /* + * soustraction + */ - return rat_constr(rat1.num * rat2.denom - rat2.num * rat1.denom, rat1.denom * rat2.denom); + return rat_constr(rat1.num * rat2.denom - rat2.num * rat1.denom, rat1.denom * rat2.denom); } rationnel rat_moinsunaire(rationnel rat1) -{ /* moins unaire */ +{ /* + * moins unaire + */ - return rat_constr(-rat1.num, rat1.denom); + return rat_constr(-rat1.num, rat1.denom); } rationnel rat_multiplication(rationnel rat1, rationnel rat2) -{ /* multiplication */ +{ /* + * multiplication + */ - return rat_constr(rat1.num * rat2.num, rat1.denom * rat2.denom); + return rat_constr(rat1.num * rat2.num, rat1.denom * rat2.denom); } rationnel rat_division(rationnel rat1, rationnel rat2) -{ /* division */ - if (!rat2.num) - exception(2,_("division by zero")); - return rat_constr(rat1.num * rat2.denom, rat1.denom * rat2.num); - +{ /* + * division + */ + if (!rat2.num) + exception(2, _("division by zero")); + return rat_constr(rat1.num * rat2.denom, rat1.denom * rat2.num); + } -/* On choisit délibérément de faire une puissance 'lente' pour éviter de faire des overflow -trop facilement */ +/* + * On choisit deliberement de faire une puissance 'lente' pour eviter de faire des overflow trop + * facilement + */ rationnel rat_pow(rationnel rat, unsigned int p) -{ /* puissance */ - for (; p; p--) { - rat = rat_multiplication(rat, rat); - } - return rat; +{ /* + * puissance + */ + for (; p; p--) { + rat = rat_multiplication(rat, rat); + } + return rat; } -/* On convertit un rationnel en une chaîne. Le booléen first indique si on le rationnel devra être placé en début de chaîne (pour -les signes) */ +/* + * On convertit un rationnel en une chaine. Le booleen first indique si on le rationnel devra etre + * place en debut de chaine (pour les signes) + */ char *rat_to_string(rationnel rat, int first) { - static char resultat[128]; - char temp[64]; - - resultat[0] = '\0'; - - if (rat.num<0) { - rat.num=-rat.num; - if (first) { - strcat(resultat,"-"); - } else { - strcat(resultat,"- "); - } + static char resultat[128]; + char temp[64]; + + resultat[0] = '\0'; + + if (rat.num < 0) { + rat.num = -rat.num; + if (first) { + strcat(resultat, "-"); } else { - if (!first) { - strcat(resultat,"+ "); - } + strcat(resultat, "- "); } - - switch(display) { - case DEC: - if (rat.denom==1) - sprintf(temp,"%qd", rat.num); - else - sprintf(temp,"%qd/%qd", rat.num, rat.denom); - break; - case HEX: - if (rat.denom==1) - sprintf(temp,"0x%qx", rat.num); - else - sprintf(temp,"0x%qx/0x%qx", rat.num, rat.denom); - break; - case OCT: - if (rat.denom==1) - sprintf(temp,"0%qo", rat.num); - else - sprintf(temp,"0%qo/0%qo", rat.num, rat.denom); - break; - case FLT: - sprintf(temp,"%g", rat_to_double(rat)); - break; + } else { + if (!first) { + strcat(resultat, "+ "); } - - strcat(resultat, temp); - return resultat; + } + + switch (display) { + case DEC: + if (rat.denom == 1) + sprintf(temp, "%qd", rat.num); + else + sprintf(temp, "%qd/%qd", rat.num, rat.denom); + break; + case HEX: + if (rat.denom == 1) + sprintf(temp, "0x%qx", rat.num); + else + sprintf(temp, "0x%qx/0x%qx", rat.num, rat.denom); + break; + case OCT: + if (rat.denom == 1) + sprintf(temp, "0%qo", rat.num); + else + sprintf(temp, "0%qo/0%qo", rat.num, rat.denom); + break; + case FLT: + sprintf(temp, "%g", rat_to_double(rat)); + break; + } + + strcat(resultat, temp); + return resultat; } -- cgit v1.2.3