Je viens de me retaper la doc...
Donc en fait y a 2 autres cas qui sont lies a l'implementation de frcpa et frcsqrta, qui fournissent une approximation de la fonction inverse et racine:
- La definition de l'architecture garantie que ces deux instructions retournent une valeur approchee dont l'erreur maximale est fixee.
- Si la valeur est exacte un bit est mis a 1 pour signaler qu'il n'y a pas lieu d'affiner
- Si l'implementation (en gros une micro-architecture) ne peut pas fournir une valeur approchee satisfaisant l'erreur max, alors le proc doit faire un "Software Assist Fault" qui delegue a une implementation logicielle la tache de calculer la valeur reelle (ce qui mettre le but de precision a 1).
J'ai pas encore vu (mais j'ai pu le louper) d'implementations de l'Itanium qui ai eu besoin de demander assistance pour ces deux instructions.
Pour ce qui est des arrondis un peu assouplie (ou parfois plus stricte), c'est une affaire d'implementation logicielle des fonctions, pas du processeur.
[^] # Re: Ecrire du code avec des flottants
Posté par mdlh . En réponse au journal Comment les programmeurs écrivent du code flottant ?. Évalué à 2.
Donc en fait y a 2 autres cas qui sont lies a l'implementation de frcpa et frcsqrta, qui fournissent une approximation de la fonction inverse et racine:
- La definition de l'architecture garantie que ces deux instructions retournent une valeur approchee dont l'erreur maximale est fixee.
- Si la valeur est exacte un bit est mis a 1 pour signaler qu'il n'y a pas lieu d'affiner
- Si l'implementation (en gros une micro-architecture) ne peut pas fournir une valeur approchee satisfaisant l'erreur max, alors le proc doit faire un "Software Assist Fault" qui delegue a une implementation logicielle la tache de calculer la valeur reelle (ce qui mettre le but de precision a 1).
J'ai pas encore vu (mais j'ai pu le louper) d'implementations de l'Itanium qui ai eu besoin de demander assistance pour ces deux instructions.
Pour ce qui est des arrondis un peu assouplie (ou parfois plus stricte), c'est une affaire d'implementation logicielle des fonctions, pas du processeur.