Dans l'article ,
Kojak écrit:
> Essaye avec l'option "-ffloat-store", ça peut aider...
Attention, il faut alors stocker tous les résultats intermédiai res
dans des variables temporaires, e.g.
[...]
Mais attention, ça ne règle pas le problème du double arro ndi, donc
il peut y avoir encore des différences.
Dans l'article <20090325220358.296c1d97@thor.janville.org>,
Kojak <nntpspy@janville.borg.invalid> écrit:
> Essaye avec l'option "-ffloat-store", ça peut aider...
Attention, il faut alors stocker tous les résultats intermédiai res
dans des variables temporaires, e.g.
[...]
Mais attention, ça ne règle pas le problème du double arro ndi, donc
il peut y avoir encore des différences.
Dans l'article ,
Kojak écrit:
> Essaye avec l'option "-ffloat-store", ça peut aider...
Attention, il faut alors stocker tous les résultats intermédiai res
dans des variables temporaires, e.g.
[...]
Mais attention, ça ne règle pas le problème du double arro ndi, donc
il peut y avoir encore des différences.
Voilà, ce n'est pas tout, mais il faut que je termine de relire
le livre qu'on est en train d'écrire dans notre équipe, qui va
justement parler de tous ces problèmes et de plein d'autres choses
sur l'arithmétique virgule flottante.
Voilà, ce n'est pas tout, mais il faut que je termine de relire
le livre qu'on est en train d'écrire dans notre équipe, qui va
justement parler de tous ces problèmes et de plein d'autres choses
sur l'arithmétique virgule flottante.
Voilà, ce n'est pas tout, mais il faut que je termine de relire
le livre qu'on est en train d'écrire dans notre équipe, qui va
justement parler de tous ces problèmes et de plein d'autres choses
sur l'arithmétique virgule flottante.
Dans l'article <gqgg2j$tug$,
Antoine Leca écrit:Le 25/03/2009 11:14Z, lhommedumatch écrivit :float scale=0.1;
res = int (x/scale);
sur une machine 32bits j'obtiens 99
sur une machine 64bits j'obtiens 100
Quelqu'un pourrait m'éclairer.24 est pair et 63 est impair (c'est à l'envers, hein).
Et 1/5 en base 2 a un motif de répétition de 2 bits.
D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
éventuellement sous Linux, précision étendue) a été converti en float
(comme le veut la norme C) ou non (bug 323 de gcc).
Dans l'article <gqgg2j$tug$2@shakotay.alphanet.ch>,
Antoine Leca <root@localhost.invalid> écrit:
Le 25/03/2009 11:14Z, lhommedumatch écrivit :
float scale=0.1;
res = int (x/scale);
sur une machine 32bits j'obtiens 99
sur une machine 64bits j'obtiens 100
Quelqu'un pourrait m'éclairer.
24 est pair et 63 est impair (c'est à l'envers, hein).
Et 1/5 en base 2 a un motif de répétition de 2 bits.
D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
éventuellement sous Linux, précision étendue) a été converti en float
(comme le veut la norme C) ou non (bug 323 de gcc).
Dans l'article <gqgg2j$tug$,
Antoine Leca écrit:Le 25/03/2009 11:14Z, lhommedumatch écrivit :float scale=0.1;
res = int (x/scale);
sur une machine 32bits j'obtiens 99
sur une machine 64bits j'obtiens 100
Quelqu'un pourrait m'éclairer.24 est pair et 63 est impair (c'est à l'envers, hein).
Et 1/5 en base 2 a un motif de répétition de 2 bits.
D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
éventuellement sous Linux, précision étendue) a été converti en float
(comme le veut la norme C) ou non (bug 323 de gcc).
Le Thu, 26 Mar 2009 17:51:22 +0000 (UTC),
Vincent Lefevre a écrit :
> Dans l'article ,
> Kojak écrit:
>
> > Essaye avec l'option "-ffloat-store", ça peut aider...
>
> Attention, il faut alors stocker tous les résultats intermédiaires
> dans des variables temporaires, e.g.
>
> [...]
Tout à fait.
Le Thu, 26 Mar 2009 17:51:22 +0000 (UTC),
Vincent Lefevre a écrit :
> Dans l'article <20090325220358.296c1d97@thor.janville.org>,
> Kojak <nntpspy@janville.borg.invalid> écrit:
>
> > Essaye avec l'option "-ffloat-store", ça peut aider...
>
> Attention, il faut alors stocker tous les résultats intermédiaires
> dans des variables temporaires, e.g.
>
> [...]
Tout à fait.
Le Thu, 26 Mar 2009 17:51:22 +0000 (UTC),
Vincent Lefevre a écrit :
> Dans l'article ,
> Kojak écrit:
>
> > Essaye avec l'option "-ffloat-store", ça peut aider...
>
> Attention, il faut alors stocker tous les résultats intermédiaires
> dans des variables temporaires, e.g.
>
> [...]
Tout à fait.
Vincent Lefevre <vincent+ writes:
> Voilà, ce n'est pas tout, mais il faut que je termine de relire
> le livre qu'on est en train d'écrire dans notre équipe, qui va
> justement parler de tous ces problèmes et de plein d'autres choses
> sur l'arithmétique virgule flottante.
Tu l'annonceras ici STP (ou directement par mail -- mon adresse
est valide -- si tu crains qu'on t'accuse de spammer)?
Vincent Lefevre <vincent+news@vinc17.org> writes:
> Voilà, ce n'est pas tout, mais il faut que je termine de relire
> le livre qu'on est en train d'écrire dans notre équipe, qui va
> justement parler de tous ces problèmes et de plein d'autres choses
> sur l'arithmétique virgule flottante.
Tu l'annonceras ici STP (ou directement par mail -- mon adresse
est valide -- si tu crains qu'on t'accuse de spammer)?
Vincent Lefevre <vincent+ writes:
> Voilà, ce n'est pas tout, mais il faut que je termine de relire
> le livre qu'on est en train d'écrire dans notre équipe, qui va
> justement parler de tous ces problèmes et de plein d'autres choses
> sur l'arithmétique virgule flottante.
Tu l'annonceras ici STP (ou directement par mail -- mon adresse
est valide -- si tu crains qu'on t'accuse de spammer)?
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Le 27/03/2009 02:58Z, Vincent Lefevre écrivit :
> D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
> éventuellement sous Linux, précision étendue) a été converti en float
> (comme le veut la norme C) ou non (bug 323 de gcc).
Tu veux dire que après
float scale=0.1;
on peut trouver des versions/optimisations de GCC qui vont remplacer
scale par 0.1 (au lieu de 0.1f) dans des expressions ultérieures ?
Si on arrive à cela, il y a effectivement un bogue majeur... car on ne
respecte plus les prescriptions de la machine virtuelle, et je ne pense
pas que cela reste dans le cadre des sauf-conduits pour les flottants
établis dans C99.
Quoique...
... je viens de m'apercevoir que l'opération utilisée était int(),
inconnu chez nous, donc ici ce sont les règles de C++ qui s'appliquent
concernant les conversions de flottants (et cela dépend entre autres des
différentes surcharges disponibles pour int() et pour operator/).
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Le 27/03/2009 02:58Z, Vincent Lefevre écrivit :
> D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
> éventuellement sous Linux, précision étendue) a été converti en float
> (comme le veut la norme C) ou non (bug 323 de gcc).
Tu veux dire que après
float scale=0.1;
on peut trouver des versions/optimisations de GCC qui vont remplacer
scale par 0.1 (au lieu de 0.1f) dans des expressions ultérieures ?
Si on arrive à cela, il y a effectivement un bogue majeur... car on ne
respecte plus les prescriptions de la machine virtuelle, et je ne pense
pas que cela reste dans le cadre des sauf-conduits pour les flottants
établis dans C99.
Quoique...
... je viens de m'apercevoir que l'opération utilisée était int(),
inconnu chez nous, donc ici ce sont les règles de C++ qui s'appliquent
concernant les conversions de flottants (et cela dépend entre autres des
différentes surcharges disponibles pour int() et pour operator/).
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Le 27/03/2009 02:58Z, Vincent Lefevre écrivit :
> D'autre part, il n'est pas clair si le 0.1 (double précision, sauf
> éventuellement sous Linux, précision étendue) a été converti en float
> (comme le veut la norme C) ou non (bug 323 de gcc).
Tu veux dire que après
float scale=0.1;
on peut trouver des versions/optimisations de GCC qui vont remplacer
scale par 0.1 (au lieu de 0.1f) dans des expressions ultérieures ?
Si on arrive à cela, il y a effectivement un bogue majeur... car on ne
respecte plus les prescriptions de la machine virtuelle, et je ne pense
pas que cela reste dans le cadre des sauf-conduits pour les flottants
établis dans C99.
Quoique...
... je viens de m'apercevoir que l'opération utilisée était int(),
inconnu chez nous, donc ici ce sont les règles de C++ qui s'appliquent
concernant les conversions de flottants (et cela dépend entre autres des
différentes surcharges disponibles pour int() et pour operator/).
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Antoine Leca, le 27/03/2009 a écrit :Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Tiens, il y a quelques jours dans l'entête d'un wdfdio.cpp, je suis
tombé là-dessus:
// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with with all our drivers here at OSR,
because we've
// found the strong type-checking you get with the C++ compiler to be
very
// helpful in finding errors.
Je le gardais sous le coude pour une période encore plus calme sur
fclc, mais l'occasion, l'herbe tendre...
Antoine Leca, le 27/03/2009 a écrit :
Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Tiens, il y a quelques jours dans l'entête d'un wdfdio.cpp, je suis
tombé là-dessus:
// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with with all our drivers here at OSR,
because we've
// found the strong type-checking you get with the C++ compiler to be
very
// helpful in finding errors.
Je le gardais sous le coude pour une période encore plus calme sur
fclc, mais l'occasion, l'herbe tendre...
Antoine Leca, le 27/03/2009 a écrit :Donc, c'est complètement hors sujet dans ce groupe, en C on a déjà
suffisamment de mal avec <tgmath.h> pour devoir s'em***er avec un
langage 3× plus compliqué !
Tiens, il y a quelques jours dans l'entête d'un wdfdio.cpp, je suis
tombé là-dessus:
// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with with all our drivers here at OSR,
because we've
// found the strong type-checking you get with the C++ compiler to be
very
// helpful in finding errors.
Je le gardais sous le coude pour une période encore plus calme sur
fclc, mais l'occasion, l'herbe tendre...
On 2009-03-27, Pierre Maurette wrote:// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with all our drivers here at OSR, because we've
// found the strong type-checking you get with the C++ compiler to be
// very helpful in finding errors.
Et oui, l'incompétence...
autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
On 2009-03-27, Pierre Maurette wrote:
// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with all our drivers here at OSR, because we've
// found the strong type-checking you get with the C++ compiler to be
// very helpful in finding errors.
Et oui, l'incompétence...
autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
On 2009-03-27, Pierre Maurette wrote:// Why is this a .cpp file? This is a normal C language driver, with a
// .cpp file type. We do with all our drivers here at OSR, because we've
// found the strong type-checking you get with the C++ compiler to be
// very helpful in finding errors.
Et oui, l'incompétence...
autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
Le 27/03/2009 15:53Z, Marc Boyer écrivit :autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
Es-tu sûr ? Ai-je bien compris ta remarque ?
Je suis totalement incompétent en C++, domaine où je me borne à essayer
de comprendre petit à petit le bouquin^W pavé de Stroustrup, mais
d'après ce dernier cette démarche n'est pas aussi stupide que cela, un
des objectifs importants de C++ étant justement de pouvoir récupérer le
code C existant, il en découle donc que du code C « raisonnable » doit
pouvoir être recompilé en C++ sans quasiment aucun changement.
Le 27/03/2009 15:53Z, Marc Boyer écrivit :
autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
Es-tu sûr ? Ai-je bien compris ta remarque ?
Je suis totalement incompétent en C++, domaine où je me borne à essayer
de comprendre petit à petit le bouquin^W pavé de Stroustrup, mais
d'après ce dernier cette démarche n'est pas aussi stupide que cela, un
des objectifs importants de C++ étant justement de pouvoir récupérer le
code C existant, il en découle donc que du code C « raisonnable » doit
pouvoir être recompilé en C++ sans quasiment aucun changement.
Le 27/03/2009 15:53Z, Marc Boyer écrivit :autant écrire du C et le compiler avec un compilo C++ montre
une incompétence importante.
Es-tu sûr ? Ai-je bien compris ta remarque ?
Je suis totalement incompétent en C++, domaine où je me borne à essayer
de comprendre petit à petit le bouquin^W pavé de Stroustrup, mais
d'après ce dernier cette démarche n'est pas aussi stupide que cela, un
des objectifs importants de C++ étant justement de pouvoir récupérer le
code C existant, il en découle donc que du code C « raisonnable » doit
pouvoir être recompilé en C++ sans quasiment aucun changement.