float VS long - C++ - Programmation
Marsh Posté le 09-05-2005 à 17:36:25
gni...
ça veux pas dire grand chose...
l'emploi n'est pas le même...
Marsh Posté le 15-05-2005 à 22:27:12
non, c'est plus lent
simplement sur p4 avec le SSE2 et l'instruction addsd (add scalar double) c'est plus rapide qu'en FPU (fadd, floating-point add)
le jour où un calcul FP sera plus rapide qu'un calcul avec entiers c'est qu'il y aura un problème.
Cela dit certains processeurs comme les GPU graphiques sont conçus pour fonctionner surtout avec des flottants.
Marsh Posté le 15-05-2005 à 23:08:54
toutafé, les calculs en flottants sont forcément plus complexes qu'en entier ça se payes forcément à un niveau (transistors, cycles par inst même en prenant en compte les recouvrements, latence)
Marsh Posté le 15-05-2005 à 23:09:42
mais bon l'emploi n'est pas le même, donc quand tu es obligé de faire du float ou double, tu te poses pas la question de savoir si en entier ce serait plus rentable.
Marsh Posté le 15-05-2005 à 23:22:40
pas forcement
soient :
double a, b;
quel est le mieux ?
((int)(a / b)) + 1;
ou
(int)((a + b) / b);
dans un cas addition double, dans l'autre cas addition int. Il est utile de se demander quelle écriture est la + rapide.
Je dirais que c'est la 1ere.
Marsh Posté le 16-05-2005 à 11:39:19
jesus_christ a écrit : pas forcement |
Dans ce cas là, autant faire la division en calcul entier aussi, non ?
Marsh Posté le 16-05-2005 à 15:56:52
je parles pas de cas ambigus, je parles de cas clairs: du traitement de géométrie 3D, des calculs de maths/physique....
oué c'est sûr on peut le faire en entier en virgule fixe dans certains cas, on peut utiliser une lib (qui peut même être plus précise que ce que le cpu offre nativement en virgule flottante)
etc... etc... mais bon oui le flottant c'est plus lourd que de l'entier, mais y'a des cas où t'as pas trop le choix...
Marsh Posté le 17-05-2005 à 07:12:18
jesus_christ a écrit : pas forcement |
L'important serait de savoir quand exactement l'algo supporte la perte de precision : il ne rime a rien ton exemple.
Marsh Posté le 27-05-2005 à 16:22:14
d'après mes propres tests, les calculs en FPU sont plus rapides avec des float qu'avec des entiers en CPU ...
Marsh Posté le 27-05-2005 à 17:28:41
Théoriquement, le passage en 64 bits n'a pas changé la longueur des float et des double, (32 bits et 64 bits).
il existe aussi les long double qui font 80 bits
Marsh Posté le 09-05-2005 à 17:32:14
Bonjour, j'aimerais savoir si de nos jours avec les P4 les opérations sur les float sont aussi, vopir plus rapide qu'avec les long ou les int !!!
Merci de votre aide