Maison >développement back-end >C++ >Comment émuler l'arithmétique double précision à l'aide de flotteurs simple précision ?

Comment émuler l'arithmétique double précision à l'aide de flotteurs simple précision ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 12:24:30703parcourir

 How to Emulate Double-Precision Arithmetic Using Single-Precision Floats?

Émulation de l'arithmétique double précision avec des flotteurs

Dans certains scénarios, les systèmes matériels embarqués avec une prise en charge limitée des virgules flottantes peuvent rencontrer le besoin de doubles -fonctionnalité de précision. Cela soulève la question de savoir comment y parvenir en utilisant uniquement des opérations à virgule flottante simple précision.

Pour émuler une valeur double précision, l'approche consiste à utiliser une structure contenant un tuple de deux flotteurs simple précision, représentant les parties hautes et basses du double. La comparaison peut être effectuée à l'aide d'un ordre lexicographique.

Cependant, l'opération d'addition présente un défi. La base de l’ajout doit être soigneusement étudiée pour garantir l’exactitude. Il est recommandé d'utiliser un multiple de FLT_MAX (la valeur maximale représentable par un flotteur simple précision) pour éviter un débordement ou un débordement intermédiaire.

Pour détecter un report, on peut soustraire la somme des deux flotteurs du valeur attendue. Si le résultat est inférieur ou égal à zéro, un report s'est produit.

Les références ci-dessous fournissent des informations précieuses sur les techniques d'émulation double précision utilisant des flotteurs simple précision sur les architectures GPU :

  • https://hal.archives-ouvertes.fr/hal-00021443
  • http://andrewthall.org/papers/df64_qf128.pdf

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn