Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6044 connectés 

 


Dernière réponse
Sujet : [C] sortir une var des registres (ou la faire tomber à 32/64 bits..)
minusplus je m'en fous que ça prenne du temps, c pour faire un calcul de précision d'un algo (enfin d'un calcul quoi) je le fais une fois et basta. le truc c que je vois pas comment forcer le compilo à remettre les vars en mémoire quand je veux. même sans optimisation, comme tu dis, le compilo va me virer la ligne...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
minusplus je m'en fous que ça prenne du temps, c pour faire un calcul de précision d'un algo (enfin d'un calcul quoi) je le fais une fois et basta. le truc c que je vois pas comment forcer le compilo à remettre les vars en mémoire quand je veux. même sans optimisation, comme tu dis, le compilo va me virer la ligne...
bjone la précision interne du fpu est configurée par son registre de controle. il n'y a -pas- de manière standard en C/C++ pour switcher la précision interne...
 
tu doit attaquer la config du fpu en asm. (ou ptet des paramètres du compilo....)
 
il serait -sucidaire- au nivo perfo de stoquer de manière intermédaire le résultat dans un float/double (alloué par un pointeur, sinon le compilo utilisera un registre, on giclera carrément la ligne si c'est inutile).
 
qu'est tu veux gagner du temps (en baissant la précision interne) ou simuler un perte de qualité ?
 
de plus je ne sais po, et ne pense pas que les runtime des compilos mettent le fpu en 80 bits. (du moins 81 avec le J :??: sais plus)
 
donc attrape la doc de ton compilo, ptet un #pragma existe mais j'en doute.
minusplus

BENB a écrit a écrit :

   
80 bits c'est la tailles des registres d'un 387....  
generalement les compilo C ont un type long double qui correspond a cela... sur PC bien sur...  




 
je sais mais moi je veux effectuer un calcul particulier en 32 ou 64 bits (moins précis). pour ça j'avais pensé faire transférer au compilo les vars dans la mémoire entre deux pas de calcul par exemple. est-ce qu'avec des pointeurs c'est possible ?

BENB

Stef.D a écrit a écrit :

 
 
C'est pas très clair ce que tu dis ...
80 bits ? c'est un flottant de très haute précision, tu peux pas les utiliser directement avec un compilateur C classique.
Sinon tu peux caster avec (float) ou (double).  




80 bits c'est la tailles des registres d'un 387....
generalement les compilo C ont un type long double qui correspond a cela... sur PC bien sur...

Stef.D

minusplus a écrit a écrit :

bonjour.
 
Le problème : je fais des calculs sur une variable, le proco la met dans un de ses registres (logique) à 80 (ou je sais pu combien) bits et calcule dessus. Le problème c que je suis plus précis que la réprésentation mémoire qu'aura cette var quand elle y retournera. donc est-ce qu'en cours de calcul je peux dire au proco de la "flusher" en mémoire ? ou alors de descendre sa précision à la précision mémoire (32 ou 64 bits)  




 
C'est pas très clair ce que tu dis ...
80 bits ? c'est un flottant de très haute précision, tu peux pas les utiliser directement avec un compilateur C classique.
Sinon tu peux caster avec (float) ou (double).

minusplus bonjour.
 
Le problème : je fais des calculs sur une variable, le proco la met dans un de ses registres (logique) à 80 (ou je sais pu combien) bits et calcule dessus. Le problème c que je suis plus précis que la réprésentation mémoire qu'aura cette var quand elle y retournera. donc est-ce qu'en cours de calcul je peux dire au proco de la "flusher" en mémoire ? ou alors de descendre sa précision à la précision mémoire (32 ou 64 bits)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)