dfloat / float -- Problème avec NGD

dfloat / float -- Problème avec NGD - C++ - Programmation

Marsh Posté le 30-10-2008 à 22:03:25    

Bonjour
 
Pour un programme, j'utilise la librairie Newton Game Dynamics qui utilise des dfloat pour ses arguments
 
J'aurai voulu tout d'abord savoir quels étaient les spécificités de ce format parce que je n'arrive pas à le trouver sur le net
 
 
Ensuite, dans mon programme, je préfère utiliser les double, car je travaille sur des nombres qui peuvent etre assez grand (10 000 environ) et que j'ai besoin d'une précision assez grande (10^-3) environ
or NGD n'acceptant pas les doubles, comment puis je faire ?? (il accepte cependant les float car il sait faire la conversion float -> dfloat)
 
Merci d'avance
NC


Message édité par nisalon_caje le 31-10-2008 à 00:03:43

---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 30-10-2008 à 22:03:25   

Reply

Marsh Posté le 30-10-2008 à 22:42:14    

Citation :

je travaille sur des nombres qui peuvent etre assez grand (10 000 environ) et que j'ai besoin d'une précision assez grande (10^-3) environ

 

C'est tout petit ça. [:dawa]

 

Le range d'un float c'est -3.4*10^-38 à 3.4*10^38, celui d'un double c'est -1.7*10^-308 à 1.7*10^308.

 

T'as de quoi faire. [:god]

 

Pour ta question sur dfloat, sinon, c'est surement une surcharge propre à la bibliothèque (note : la traduction française de library c'est bibliothèque, et la traduction anglaise de librairie c'est bookshop). Donc jette un oeil sur la documentation de ta NGD, pour ma part je ne la connais pas.


Message édité par Elmoricq le 30-10-2008 à 22:43:06
Reply

Marsh Posté le 30-10-2008 à 23:27:36    

oui je sais que c'est "tout petit" mais l'étendu est sur 10^8 et c'est ca me semble-t-il que le float ne peux pas gérer ... enfin corrigez moi si je me trompe ...


---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 30-10-2008 à 23:40:41    

J'ai mis ci-des le range d'un float : ça va jusque 10^38

Reply

Marsh Posté le 31-10-2008 à 00:02:58    

ok merci
 
parce qu'en fait le problème est le suivant : j'ai des cubes qui tombent du ciel sur un sol plat (les cubes étant originellement horizontaux)
 
ils détectent la collision avec le sol, et après s'être immobiliés, lorsque je regarde le projeté des sommets du cube sur le sol plan et horizontal, je trouve par exemple ceci : (position du sommet en x et en z (les doublons sont supprimés))
 
-0.936267 - -6.86918
-0.936744 - -7.02718
-0.93712 - -6.87186
-0.937597 - -7.02986
-1.52026 - -6.86741
-1.52074 - -7.02541
 
et on voit qu'il y a 6 valeurs distinctes, alors que, le sol étant plat, on devrait en obtenir seulement 4.
 
on voit cependant que il y a des couples de valeurs relativement proches (à 10^-3 près) et c'est pour cela que je me demandais si je n'avais des problèmes avec les arrondis
 
Mais puisque les float supportent ceci, il n'y pas de raison
 
Connaîtriez vous la cause de mon problème ??
 
Merci d'avance :)


Message édité par nisalon_caje le 31-10-2008 à 00:03:27

---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 31-10-2008 à 08:09:38    

Fais une recherche sur l'imprécision des nombres flottants due à leur représentation en base 2.
Si t'as du courage, tu peux lire ce document : What Every Computer Scientist Should Know About Floating-Point Arithmetic


Message édité par Elmoricq le 31-10-2008 à 08:09:48
Reply

Marsh Posté le 31-10-2008 à 08:51:16    

Pourquoi tu te poses ce genre de problème maintenant ? t'as des soucis ?
double c'est le type naturel pour faire du calcul flottant.

Reply

Marsh Posté le 31-10-2008 à 09:40:59    

ben j'en avais lu une parti du document ...
 
et oui j'ai un soucis (cf mon dernier post :) ) et j'aimerai savoir si vous auriez pu m'aider :)


---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 31-10-2008 à 10:52:13    

Bah c'est ton algo, pas les flottants. Tu prends n'importe quel FAQ de C, ça te dit de comparer deux flottants à epsilon près.

Reply

Marsh Posté le 31-10-2008 à 16:49:57    

la comparaison, je la fais...
 
et mon algo, ben c'est pas le mien, la j'ai donné directement les valeurs que me retourne NGD


---------------
http://nisalon.labrute.com/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed