La mise en œuvre efficace de logarithme naturel (ln) et l'exponentiation

En gros, je suis à la recherche pour la mise en œuvre de log() et exp() fonctions de la bibliothèque C <math.h>. Je travaille avec 8 bits microcontrôleurs (OKI 411 et 431). J'ai besoin de calculer Température Cinétique Moyenne. La condition est que nous devrions être en mesure de calculer MKT aussi vite que possible et avec aussi peu de mémoire pour le code que possible. Le compilateur est livré avec log() et exp() fonctions dans <math.h>. Mais l'appel de l'une de fonction et lier avec la bibliothèque causes de la taille du code à augmenter de 5 kilo-octets, ce qui ne rentre pas dans l'une des micro-nous travailler avec (OKI 411), parce que notre code a déjà été consommée ~12K de disponible ~15K code de la mémoire.

La mise en œuvre, je suis à la recherche ne doit pas utiliser les autres fonctions de la bibliothèque C (comme pow(), sqrt (), etc). C'est parce que toutes les fonctions de la bibliothèque sont emballés dans un la bibliothèque et même, si une fonction est appelée, l'éditeur de liens apportera toute la 5K bibliothèque de code de la mémoire.

MODIFIER

L'algorithme doit être correcte jusqu'à 3 décimales.

Lorsque vous avez de telles limitations, vous devriez aussi vous demander quelle est la précision, vous pouvez les accepter ? Alors, quelle est la marge d'erreur acceptable ?
oublié de l'ajouter. merci pour le rappel. j'ai édité ma question. 🙂
Aussi, ce sont l'entrée et la sortie des formats numériques? Point fixe comme 8.8? Il semble que vous aurait avantage à stocker un décalage par rapport à 273 kelvins, c'est à dire Celsius.
l'entrée/sortie n'est pas tout souci. qu'entendez-vous par "parti pris par rapport à 273K'?
Car 273 est un grand nombre par rapport à la valeur de la température en degrés Celsius, vous pouvez obtenir plus de précision à partir de la même bits en stockant Celsius au lieu de Kelvin. En fait, cette illustre pourquoi l'entrée/sortie est un sujet de préoccupation. Comme Alexei mentionne, la plage de température influe sur le choix de la formule.

OriginalL'auteur Donotalo | 2012-03-21