je viens de découvrir le concept des nombres flottants logarithmiques : une spécialisation des nombres en virgule flottante dont la mantisse est toujours à 1 (et est donc implicite) et pour lesquels seuls le bit de signe et l'exposant (représenté, pour plus de précision, sous la forme d'un nombre en virgule fixe) sont stockés.
L'exposant devient donc le logarithme (base 2) du nombre représenté en virgule flottante.
Cela permet d’utiliser quelques propriétés des logarithmes dans l'objectif de simplifier les calculs pour le processeur qui semble plus friand d'additions et de soustractions que de multiplications et de divisions : log(a*b) = log(a) + log(b) ou encore log(a/b) = log(a) - log(b).
Quelle utilisation pertinente puis-je faire de cette représentation ?
Dans quelles situations est-elle employée ? Pourquoi ne pas la généraliser ?
Le logarithme du nombre représenté en virgule flottante logarithmique n'a pas besoin d'être recalculé: c'est comme la virgule flottante classique (représentation sous la forme d’écriture scientifique ) , sauf que l'on ne stocke que le bit de signe et l'exposant (donc le logarithme) en virgule fixe et pas la mantisse (qui est implicite).
Hé, c'est pas bête ça ! Après tout, les logarithmes ont été inventés pour accélérer les calculs (en remplaçant les multiplications par des additions), donc autant travailer non pas avec les nombres mais leur logarithme.
Mais bon, ça n'est vraiment intéressant que lorsqu'on doit effectuer beaucoup de multiplications. Dans un contexte où on a surtout des additions, ou bien des calculs trigo, je vois moins l'intérêt.
Nombres flottants logarithmiques
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)