Je viens de voir que l'on peut utiliser des flottants complexes avec les
fonctions réelles (non complexes). Est-ce un comportement normalisé
(utilisation du module ou de la partie réelle) ?
float complex z;
float x;
x = sinf(z);
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Juste pour vérifier, j'ai rajouté ici cette ligne :
y = cosf((double)x);
Et j'obtiens bien le bon comportement avec gcc-4.3.0
" float.c: In function main¹: float.c:7: attention : conversion to float¹ from double¹ may alter its value "
mais pas avec les version antérieurs. Il semble donc, que cela soit un bug récurrent de gcc pré-4.3.0.
C'est ce qu'il me semblait.
J'ai testé sous Mac OS X/PPC avec gcc-3.3 (qui, accessoirement, ne reconnais pas -Wextra) et gcc-4.0.1 puis sous Linux/x86_64 avec gcc version 4.1.3, 4.2.3 et 4.3.0.
Merci d'avoir vérifié :-)
Bref, il te reste toujours la possibilité de compiler/installer la version 4.3.0 pour contrôler ton code, quitte à compiler au final sous la version native. AMHA, cela devrait être plus sûr que de hacker furieusement ton code à coup de "grep" et consorts (enfin, tout dépend du volume de code à traiter).
Je n'ai pas envie d'installer une version non officielle de gcc (selon Apple) sur mon Mac...
J'ai toute une partie de mon code qui utilise des floats (et pas des doubles), et là il est facile de grepper pour voir si il n'y a pas des cos qui traînent à la place de cosf (par exemple). Idem pour les fonctions complexes. J'ai vérifié tous les messages retournés avec "-Wconversion". Donc normalement tout va bien.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 27/01/08 15:57, dans <20080127155741.364e2fa3@thor.janville.org>,
« Kojak » <nntpspy@janville.Borg.invalid> a écrit :
Juste pour vérifier, j'ai rajouté ici cette ligne :
y = cosf((double)x);
Et j'obtiens bien le bon comportement avec gcc-4.3.0
"
float.c: In function main¹:
float.c:7: attention : conversion to float¹ from double¹ may alter its value
"
mais pas avec les version antérieurs. Il semble donc, que cela soit
un bug récurrent de gcc pré-4.3.0.
C'est ce qu'il me semblait.
J'ai testé sous Mac OS X/PPC avec gcc-3.3 (qui, accessoirement, ne
reconnais pas -Wextra) et gcc-4.0.1 puis sous Linux/x86_64 avec gcc
version 4.1.3, 4.2.3 et 4.3.0.
Merci d'avoir vérifié :-)
Bref, il te reste toujours la possibilité de compiler/installer la
version 4.3.0 pour contrôler ton code, quitte à compiler au final
sous la version native. AMHA, cela devrait être plus sûr que de
hacker furieusement ton code à coup de "grep" et consorts (enfin,
tout dépend du volume de code à traiter).
Je n'ai pas envie d'installer une version non officielle de gcc (selon
Apple) sur mon Mac...
J'ai toute une partie de mon code qui utilise des floats (et pas des
doubles), et là il est facile de grepper pour voir si il n'y a pas des
cos qui traînent à la place de cosf (par exemple). Idem pour les fonctions
complexes. J'ai vérifié tous les messages retournés avec "-Wconversion".
Donc normalement tout va bien.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Juste pour vérifier, j'ai rajouté ici cette ligne :
y = cosf((double)x);
Et j'obtiens bien le bon comportement avec gcc-4.3.0
" float.c: In function main¹: float.c:7: attention : conversion to float¹ from double¹ may alter its value "
mais pas avec les version antérieurs. Il semble donc, que cela soit un bug récurrent de gcc pré-4.3.0.
C'est ce qu'il me semblait.
J'ai testé sous Mac OS X/PPC avec gcc-3.3 (qui, accessoirement, ne reconnais pas -Wextra) et gcc-4.0.1 puis sous Linux/x86_64 avec gcc version 4.1.3, 4.2.3 et 4.3.0.
Merci d'avoir vérifié :-)
Bref, il te reste toujours la possibilité de compiler/installer la version 4.3.0 pour contrôler ton code, quitte à compiler au final sous la version native. AMHA, cela devrait être plus sûr que de hacker furieusement ton code à coup de "grep" et consorts (enfin, tout dépend du volume de code à traiter).
Je n'ai pas envie d'installer une version non officielle de gcc (selon Apple) sur mon Mac...
J'ai toute une partie de mon code qui utilise des floats (et pas des doubles), et là il est facile de grepper pour voir si il n'y a pas des cos qui traînent à la place de cosf (par exemple). Idem pour les fonctions complexes. J'ai vérifié tous les messages retournés avec "-Wconversion". Donc normalement tout va bien.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.