salut,
je me demandais si il faut calculer les valeures tel que Pi ou e. Ou alors si on peut les trouver dans une bibliothèque...
salut,
je me demandais si il faut calculer les valeures tel que Pi ou e. Ou alors si on peut les trouver dans une bibliothèque...
Pourquoi ne pas simplement définir toi-même les constantes dont tu as besoin ? Pour ce qui est de les calculer, ce sont des constantes alors l'intérêt me paraît plutôt limité.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
ben comme je vais aborder une grosse phase de math. j aurais voulu savoir les habitudes en la matière, eventuellement des bibliothèques pour l'agèbre, etc...
pour ce qui est du pi, il est clair que je vais le redefinir plus precis que le PI existant. (quand je disais calculer, c'était pas forcement dans le programme...)
Perso, j'ai redéfini les constantes (mais plus par flemme de les chercher):
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 namespace rw::math { #define PI_VALUE 3.141592653589793238462643 const float32_t f32_pi = DECLARE_FLOAT32(PI_VALUE); const float64_t f64_pi = DECLARE_FLOAT64(PI_VALUE); const float80_t f80_pi = DECLARE_FLOAT80(PI_VALUE); }
A noter que c'est la précision maximale (à moins que je ne me sois gourré, mais le float64 a bien l'air de 'perdre' la derniere décimale).
Et c'est une librairie ou l'utilisateur peut choisir de tout faire en long double, double ou en float (et la constante de PI utilisée dépend de ce choix).
En même temps... ces constantes sont toujours limitées intraséquement par l'utilisation des flottants, et ca n'empêche pas les utilisateurs de devoir être "intelligents":
Par exemple, on incrémente pas un flottant sans arrêt pour simuler plusieurs tours sur lui même...
Et je crois que dans math.h il y a des constantes comme M_PI et autre. C'est du C mais bon.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
En C++, il y a l'header cmath... qui grosso modo ne fait que inclure que math.h.C'est du C mais bon.
Tu veux dire sur l'ensemble des implémentations que tu as eux l'occasion de voir ?Il n'y a que M_PI, et encore, pas toujours.
Parce que si j'en crois le lien, il y a aussi pas mal d'autre trucs...
Il veut dire que c'est une extension propriétaire.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Ha d'accord.
Pourtant un man math.h me donne les mêmes informations, et aussi man math.h
Ah! Au temps pour moi.
Je ne savais pas que c'était POSIX en fait.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Oui... probablement... Je ne vais pas exposer toute la problématique sur les types 32/64/80... mais le cahier des charge était:
- Toutes les fonctions utilisant des flottant doivent être disponibles dans les trois formats, et exportées (DLL).
- Chaque fonction possède une précision prédéfinie (1% d'erreur max par exemple).
Du coup on a été ammenés à faire 1 fonction pour chaque type dans 95% des cas.
Le template nous aurait été d'une utilité nulle (il aurait fallu spécialiser pour chaque type) sans compter les erreurs à ralonge additionelles, et les problêmes d'exportation en DLL.
Et ca marche tout aussi bien.... en C![]()
Partager