Existe-t-il un truc (un cast ou je ne sais quoi) permettant d'eviter les
warnings du compilateur (independament du compilateur) tout en ayant la valeur
1.0/0.0 calculee a la compilation? J'ai essaye de decomposer le calcul via une
variable locale, mais il reconnait la division par 0.0 tot ou tard... Mon but
est biensur d'obtenir inf (en C89).
a+, ld.
--
[ Laurent Deniau -- Scientific Computing & Data Analysis ]
[ CERN -- European Center for Nuclear Research ]
[ Laurent.Deniau@cern.ch - http://cern.ch/Laurent.Deniau ]
[ -- One becomes old when dreams become regrets -- ]
"Jean-Marc" writes: | Par contre, la valeur 0.0 a t-elle un signe ? Gcc me dit oui:
Oui. Grace à IEEE-754, qui a inventé +0.0 et -0.0.
Grâce ? Pourquoi a t-on donné un signe à 0.0 ? J'ai parcouru la Faq (14.x) et n'y ai rien vu à ce sujet.
Merci.
A + Jean-Marc Gcc 2.81 68k
Gabriel Dos Reis
"Jean-Marc" writes:
| "Gabriel Dos Reis" a écrit: | > "Jean-Marc" writes: | > | Par contre, la valeur 0.0 a t-elle un signe ? Gcc me dit oui: | > | > Oui. Grace à IEEE-754, qui a inventé +0.0 et -0.0. | | Grâce ?
C'est ma façon polie de dire les choses...
| Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
En LIA-1 (Language Independent Arithmetic, Part I), il n'y a pas de zéro signé.
| J'ai parcouru la Faq (14.x) et n'y ai rien vu à ce sujet.
| "Gabriel Dos Reis" a écrit:
| > "Jean-Marc" writes:
| > | Par contre, la valeur 0.0 a t-elle un signe ? Gcc me dit oui:
| >
| > Oui. Grace à IEEE-754, qui a inventé +0.0 et -0.0.
|
| Grâce ?
C'est ma façon polie de dire les choses...
| Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
En LIA-1 (Language Independent Arithmetic, Part I), il n'y a pas de
zéro signé.
| J'ai parcouru la Faq (14.x) et n'y ai rien vu à ce sujet.
| "Gabriel Dos Reis" a écrit: | > "Jean-Marc" writes: | > | Par contre, la valeur 0.0 a t-elle un signe ? Gcc me dit oui: | > | > Oui. Grace à IEEE-754, qui a inventé +0.0 et -0.0. | | Grâce ?
C'est ma façon polie de dire les choses...
| Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
En LIA-1 (Language Independent Arithmetic, Part I), il n'y a pas de zéro signé.
| J'ai parcouru la Faq (14.x) et n'y ai rien vu à ce sujet.
Il faudrait probablement l'étendre.
-- Gaby
Jean-Marc
"Gabriel Dos Reis" a écrit:
"Jean-Marc" writes: | Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
Pourquoi faire simple lorsqu'on peut faire compliqué ;)
Merci.
A + Jean-Marc
"Gabriel Dos Reis" a écrit:
"Jean-Marc" writes:
| Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
Pourquoi faire simple lorsqu'on peut faire compliqué ;)
"Jean-Marc" writes: | Pourquoi a t-on donné un signe à 0.0 ?
parce qu'ils le pouvaient :-)
Pourquoi faire simple lorsqu'on peut faire compliqué ;)
Merci.
A + Jean-Marc
Jean-Marc
"Vincent Lefevre" a écrit:
Jean-Marc écrit:
Pourquoi a t-on donné un signe à 0.0 ?
Parce qu'ils ont choisi d'avoir des infinis signés, et qu'un zéro signé évite d'avoir quelque chose de bancal quand on divise par 0 (qui peut provenir d'un underflow). Ceci dit, leur choix est mauvais, car le +0.0 est privilégié pour 0.0 - 0.0. Pour avoir un truc qui tienne au niveau des signes, il aurait fallu un vrai 0 et 3 epsilons (un positif, un négatif et un neutre).
Merci pour ces précisions.
A + Jean-Marc
"Vincent Lefevre" a écrit:
Jean-Marc écrit:
Pourquoi a t-on donné un signe à 0.0 ?
Parce qu'ils ont choisi d'avoir des infinis signés, et qu'un zéro
signé évite d'avoir quelque chose de bancal quand on divise par 0
(qui peut provenir d'un underflow). Ceci dit, leur choix est
mauvais, car le +0.0 est privilégié pour 0.0 - 0.0. Pour avoir un
truc qui tienne au niveau des signes, il aurait fallu un vrai 0 et
3 epsilons (un positif, un négatif et un neutre).
Parce qu'ils ont choisi d'avoir des infinis signés, et qu'un zéro signé évite d'avoir quelque chose de bancal quand on divise par 0 (qui peut provenir d'un underflow). Ceci dit, leur choix est mauvais, car le +0.0 est privilégié pour 0.0 - 0.0. Pour avoir un truc qui tienne au niveau des signes, il aurait fallu un vrai 0 et 3 epsilons (un positif, un négatif et un neutre).
Merci pour ces précisions.
A + Jean-Marc
Emmanuel Delahaye
In 'fr.comp.lang.c', Gabriel Dos Reis wrote:
Éric Lévénez writes:
| Affiche "Inf" avec GCC et pas de warning.
Cela dépend du niveau de warning et d'optimisation que tu spécifies.
-- Gaby
Borland C 3.1 :
D:CLCLLEVENEZ>bc proj.prj +INF
DEV-C++ (gcc 3.2.x)
Compilateur: Default compiler Building Makefile: "D:Dev-CppTest1Makefile.win" Exécution de make... make.exe -f "D:Dev-CppTest1Makefile.win" all gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall -O3 -stdÉ9 -ansi -fmessage-length=0
main.c: In function `main': main.c:6: warning: division: function singularity
gcc.exe main.o -o "Test1.exe" -L"C:/DEV-CPP/lib"
Exécution terminée Compilation OK
1.#INF Appuyez sur une touche pour continuer . . .
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
Éric Lévénez <eric@levenez.com> writes:
| Affiche "Inf" avec GCC et pas de warning.
Cela dépend du niveau de warning et d'optimisation que tu spécifies.
-- Gaby
Borland C 3.1 :
D:CLCLLEVENEZ>bc proj.prj
+INF
DEV-C++ (gcc 3.2.x)
Compilateur: Default compiler
Building Makefile: "D:Dev-CppTest1Makefile.win"
Exécution de make...
make.exe -f "D:Dev-CppTest1Makefile.win" all
gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall
-O3 -stdÉ9 -ansi -fmessage-length=0
main.c: In function `main':
main.c:6: warning: division: function singularity
gcc.exe main.o -o "Test1.exe" -L"C:/DEV-CPP/lib"
Exécution terminée
Compilation OK
1.#INF
Appuyez sur une touche pour continuer . . .
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Cela dépend du niveau de warning et d'optimisation que tu spécifies.
-- Gaby
Borland C 3.1 :
D:CLCLLEVENEZ>bc proj.prj +INF
DEV-C++ (gcc 3.2.x)
Compilateur: Default compiler Building Makefile: "D:Dev-CppTest1Makefile.win" Exécution de make... make.exe -f "D:Dev-CppTest1Makefile.win" all gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall -O3 -stdÉ9 -ansi -fmessage-length=0
main.c: In function `main': main.c:6: warning: division: function singularity
gcc.exe main.o -o "Test1.exe" -L"C:/DEV-CPP/lib"
Exécution terminée Compilation OK
1.#INF Appuyez sur une touche pour continuer . . .
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Gabriel Dos Reis
Emmanuel Delahaye writes:
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Éric Lévénez writes: | > | >| Affiche "Inf" avec GCC et pas de warning. | > | > Cela dépend du niveau de warning et d'optimisation que tu spécifies. | > | > -- Gaby | | Borland C 3.1 : | | D:CLCLLEVENEZ>bc proj.prj | +INF | | DEV-C++ (gcc 3.2.x) | | Compilateur: Default compiler | Building Makefile: "D:Dev-CppTest1Makefile.win" | Exécution de make... | make.exe -f "D:Dev-CppTest1Makefile.win" all | gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall | -O3 -stdÉ9 -ansi -fmessage-length=0 | | main.c: In function `main': | main.c:6: warning: division: function singularity
Il y a bien un changement entre 3.2.x et 3.3.x. Le premier a un fonctionnement cohérent (donne les warnings de manières cohérentes), le second est plus lunatique (donne les warnings selon l'appelation).
(aussi, tu devrais éviter le mélange des genres, -ansi et -stdÉ9). .
-- Gaby
Emmanuel Delahaye <emdelYOURBRA@noos.fr> writes:
| In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net> wrote:
|
| > Éric Lévénez <eric@levenez.com> writes:
| >
| >| Affiche "Inf" avec GCC et pas de warning.
| >
| > Cela dépend du niveau de warning et d'optimisation que tu spécifies.
| >
| > -- Gaby
|
| Borland C 3.1 :
|
| D:CLCLLEVENEZ>bc proj.prj
| +INF
|
| DEV-C++ (gcc 3.2.x)
|
| Compilateur: Default compiler
| Building Makefile: "D:Dev-CppTest1Makefile.win"
| Exécution de make...
| make.exe -f "D:Dev-CppTest1Makefile.win" all
| gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall
| -O3 -stdÉ9 -ansi -fmessage-length=0
|
| main.c: In function `main':
| main.c:6: warning: division: function singularity
Il y a bien un changement entre 3.2.x et 3.3.x. Le premier a un
fonctionnement cohérent (donne les warnings de manières cohérentes),
le second est plus lunatique (donne les warnings selon l'appelation).
(aussi, tu devrais éviter le mélange des genres, -ansi et -stdÉ9).
.
| In 'fr.comp.lang.c', Gabriel Dos Reis wrote: | | > Éric Lévénez writes: | > | >| Affiche "Inf" avec GCC et pas de warning. | > | > Cela dépend du niveau de warning et d'optimisation que tu spécifies. | > | > -- Gaby | | Borland C 3.1 : | | D:CLCLLEVENEZ>bc proj.prj | +INF | | DEV-C++ (gcc 3.2.x) | | Compilateur: Default compiler | Building Makefile: "D:Dev-CppTest1Makefile.win" | Exécution de make... | make.exe -f "D:Dev-CppTest1Makefile.win" all | gcc.exe -c main.c -o main.o -I"C:/DEV-CPP/include" -DDEVCPP -DTEST -W -Wall | -O3 -stdÉ9 -ansi -fmessage-length=0 | | main.c: In function `main': | main.c:6: warning: division: function singularity
Il y a bien un changement entre 3.2.x et 3.3.x. Le premier a un fonctionnement cohérent (donne les warnings de manières cohérentes), le second est plus lunatique (donne les warnings selon l'appelation).
(aussi, tu devrais éviter le mélange des genres, -ansi et -stdÉ9). .
-- Gaby
Emmanuel Delahaye
In 'fr.comp.lang.c', Gabriel Dos Reis wrote:
(aussi, tu devrais éviter le mélange des genres, -ansi et -stdÉ9).
Ok.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Gabriel Dos Reis <gdr@integrable-solutions.net>
wrote:
(aussi, tu devrais éviter le mélange des genres, -ansi et -stdÉ9).
Ok.
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/