Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : La division ! [ Archives / Maths & Algorithmes ] (HCJarod)

vendredi 11 février 2005 à 08:40:36 | La division !

HCJarod

Slt,  programmant actuellement sur une cible embarqué avec quelque contrainte temps réel et accès concurents, je me demandai si quelqu'un (ou quelqu'une pas de discrimination) connait des technique d'optimisation de la division.
Je m'explique, je sais déja que si l'on divise pas une constante, mieux vaux multiplier par l'inverse (multiplication env 20 cycles division 40 cycles). Pour les division par puissance de 2 c'est le décalage qui interviens. Mais si je ne me trompe pas, il me semble me souvenir de technique pour les autres cas (notaments pour les divisions par 2^n -1 ).
Les factorisations pour diminuer le nombre de division c'est pas mal (ex bete : 2/5 +3/5 => (2+3)/5 )

Un lien ou n'importe quel info es la bien venues.

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+

vendredi 11 février 2005 à 18:59:13 | Re : La division !

yoyo269

Membre Club
Ben apparemment tu connais déjà qq trucs.
Ya autre chose que tu as dit implicitement avec ta factorisation.
C'est qu'il faut tjs essayé de mettre la division à la fin d'une opération, ce qui revient à mettre toute une fraction ou équation au même dénominateur.
Ca permet ainsi d'éviter un cumul d'erreurs trop important, dû aux arrondis.

J'espère avoir répondu à ta question.

YOYO, @+.
YOYO

samedi 12 février 2005 à 00:17:17 | Re : La division !

steve_clamage

tu peux également utiliser la fonction div (déclarée dans stdlib.h) qui permet d'avoir le quotient et le reste en appelant qu'une fois l'instruction div du cpu (qui calcul naturellement les deux). Peut êter que le compilateur fais lui même cette optimisation dans certains cas (appels succesifs de / et %).

TRES IMPORTANT: regarde dans la documentation du processeur cible, ce genre d'optimisations sont généralement énumèrées.

dimanche 13 février 2005 à 10:08:10 | Re : La division !

AlexMAN

Membre Club
steve_clamage > C justement ce que HCJarod veut eviter, car je rappelle que l'instruction 'div' est tres couteuse en terme de cycles (56-70 cycles sur un pentium 4 !). Je te conseille, si tu connais un peu l'asm, d'apprendre les instructions de la FPU, et pis de te faire une fonction de division !

Voila, ++

+2(p - n)



Cette discussion est classé dans : problème, quelqu, division, technique, cycles


Répondre à ce message

Sujets en rapport avec ce message

Problème de compréhension [ par deedflit ] Est ce que quelqu'un pourrait m'aider à comprendre un peu un programme qui se trouve sur le site, c'est un puissance 4 en C (code source n°30998), il Problème technique [ par Ben0007 ] Hello,J'ai un petit problème depuis qqes temps: quand je lance Visual 6.0 C/C++ j'arrive à l'écran de départ, mais celui-ci ne comporte qu'un barre bl Problème avec MapWindows et wxWidget [ par littlefish_66 ] Bonjour, Je débute actuellement un projet ou je dois utiliser MapWindows et wxWidget afin de réaliser une interface graphique qui me <span id="misp_c problème de link [ par micleb ] salut, lorsque je compile mon source l'erreur de link suivante apparait : "hib.lib contains invalid OMF record, type 0x21"Quelqu'un sait de quoi il s' Problème de division dans une boucle [ par Albanderuaz ] Bonjour,J'ai un problème dans une bloucle qui envoie un fichier de taille definie vers un serveur. L'envoi marche, mais une division pose problème. Je POO : problème d'objet [ par Kelm0 ] Bonjour tout le monde, pour ceux qui connaissent le C++, j'ai un petit problème : je voudrais poser des conditions en fonction du nom de tel ou tel ob Problème avec les float [ par nico_44 ] Bonjour à toutes et à tous, J'ai un problème avec les float. Je communique avec une base de données dans laquelle est stockée notamment un tarif. L'u creer vecteur de dimension indefinie [ par cadet1401 ] bonsoir tout le mondevoila mon problème: j'aimerais rentrer des nombres dans un vecteur et arreter d'en rentrer si le nombre entré est un négatifcomme problème mathématique [ par zut69 ] Bonjour,Je voudrais savoir comment mettre au carré une valeur, sans utilisé la fonction pow() et sans la multiplier par elle-même.Quelqu'un aurait une Problème avec PreTranslateMessage [ par robo84 ] Bonjour, d'abord désolée car je ne suis pas sûre de poster au bon endroit (pour du Visual C++)j'ai un problème, pour un projet je dois modifier un cod


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.