fonctions sin(), cos() et cie. - C++ - Programmation
Marsh Posté le 26-06-2002 à 16:29:27
Ha bon donc les précalculer dans un tableau ca sert a rien ?
Marsh Posté le 26-06-2002 à 16:31:35
Pas le 386, le 387, le copro arithmetique du 386...
Autrement dit, avec un 386 sans copro tes tableaux sont peut-etre utiles, mais sur un 486 DX et sup... je ne pense pas que ce soit encore utile...
Marsh Posté le 26-06-2002 à 16:34:00
BENB a écrit a écrit : Ces fonction étaient déjà dans le 387 je crois... |
Hum je ne crois pas. Je suis sûr que les tables de divisions sont apparues avec le pentium (d'où le pataquès du fameux bug) mais pour sin/cos, il me semble bien que c'est avec l'extension MMX. En tout cas, moi aussi ça m'interesse de savoir si c'est exploité ou non par les compilo comme VC++ par exemple.
Marsh Posté le 26-06-2002 à 16:38:41
Smaragdus a écrit a écrit : Hum je ne crois pas. Je suis sûr que les tables de divisions sont apparues avec le pentium (d'où le pataquès du fameux bug) mais pour sin/cos, il me semble bien que c'est avec l'extension MMX. En tout cas, moi aussi ça m'interesse de savoir si c'est exploité ou non par les compilo comme VC++ par exemple. |
L'extention MMX ne concerne que les entiers, non ?
le 387 accepete les instructions FSIN FCOS...
http://www.quantasm.com/opcode_f.html
avec en plus le nombre de cycles...
Marsh Posté le 26-06-2002 à 16:42:41
BENB a écrit a écrit : L'extention MMX ne concerne que les entiers, non ? il me semble que le 387 accepete les instructions FSIN FCOS... |
ben oui il accepte mais après faut voir combien de cycle ça prend.
Marsh Posté le 26-06-2002 à 16:44:45
Smaragdus a écrit a écrit : ben oui il accepte mais après faut voir combien de cycle ça prend. |
Certes bcp sur le 387
nettement moins sur le 486
et encore moins sur le Pentium
a voir sur le liens au dessus...
Marsh Posté le 26-06-2002 à 17:02:13
Pour info on a fait des benchmark avec un pote. On gagne à précalculer les sinus les cosinus et les racine carrées à l'avance sur des proc intel. Par contre sur Mac on perd presque du temp.
Marsh Posté le 26-06-2002 à 17:04:31
Hé un truc tres intéressant dans le lien plus haut :
Citation : Additional cycles required if operand > pi/4 (~3.141/4 = ~.785) |
Marsh Posté le 26-06-2002 à 17:12:22
BENB a écrit a écrit : L'extention MMX ne concerne que les entiers, non ? le 387 accepete les instructions FSIN FCOS... http://www.quantasm.com/opcode_f.html avec en plus le nombre de cycles... |
Et il y a une instruction magique que l'on oublie souvent : fsincos qui calcul le sinus et le cosinus en même temps.
Marsh Posté le 26-06-2002 à 17:14:04
DarkOli a écrit a écrit : Et il y a une instruction magique que l'on oublie souvent : fsincos qui calcul le sinus et le cosinus en même temps. |
Et cela pour un sur-cout somme toute modique face au calcul du sinus...
Marsh Posté le 26-06-2002 à 16:25:11
Dans un programme, quand on doit faire beaucoup de fois des cosinus et des sinus, on a souvent interet a les calculer a l'avance dans un tableau et les reprendre ensuite autant de fois qu'on en a besoin.
Mais je sais plus ou j'ai lu ca mais il me semble que les proc de maintenant ont les fonctions sin et cos integrees (a partir du mmx je crois) et donc il se serait bien plus rapide de faire appel a ces fonctions que d'aller chercher la valeur dans le tableau précalculé. Encore faut-il que les fonction sin et cos de "math.h" utilisent ces fonctions du processeurs.
Enfin voilà je voulais savoir ce qu'il en était, donc si qqun a des renseignements a ce sujet, ca m'intéresse.