Question bête est-ce que tu peux aller plus loin dans la compilation vers C++ ?
Je ne sais pas comment les fonctions mathématiques sont gérées en python, mais en C, math.h contient les définitions de code des fonctions usuels qui sont appelé par le code. Ces fonctions sont écrites avec des polynômes et des réductions de domaines.
Si ces fonctions étaient définit en template C++, et si tu génères des appels de template, le compilateur devrait pouvoir directement optimiser les opérations en les combinant (si présent dans la même unité de compilation).
A cause des restrictions de IEE754, Pythran aurait encore beaucoup de marge à faire l'optimisation lui-même. En gros, est-il possible de reprendre les définitions mathématiques des opérations lors de la génération de code, pour combiner ensuite le code généré. Cela ressemble au travail manuel qui est fait dans math.c pour chacune des opérations de base.
[^] # Re: Expliciter l'intérêt
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Pythran - 0.9.0 - kozhamzer. Évalué à 3.
Question bête est-ce que tu peux aller plus loin dans la compilation vers C++ ?
Je ne sais pas comment les fonctions mathématiques sont gérées en python, mais en C, math.h contient les définitions de code des fonctions usuels qui sont appelé par le code. Ces fonctions sont écrites avec des polynômes et des réductions de domaines.
Si ces fonctions étaient définit en template C++, et si tu génères des appels de template, le compilateur devrait pouvoir directement optimiser les opérations en les combinant (si présent dans la même unité de compilation).
A cause des restrictions de IEE754, Pythran aurait encore beaucoup de marge à faire l'optimisation lui-même. En gros, est-il possible de reprendre les définitions mathématiques des opérations lors de la génération de code, pour combiner ensuite le code généré. Cela ressemble au travail manuel qui est fait dans math.c pour chacune des opérations de base.
"La première sécurité est la liberté"