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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

rendre un float positif (de la maniere la plus tordue)

n°1492964
Sve@r
Posté le 18-12-2006 à 21:00:31  profilanswer
 

Reprise du message précédent :

MagicBuzz a écrit :

où ai-je dit une connerie


peut-être quand tu as mis du try/catch dans un topic C...
 

MagicBuzz a écrit :

...avant de me faire agresser de la sorte ?


Il t'a pas agressé, il s'est juste un peu foutu de ta tronche avec beaucoup d'à propos. C'est pour le moins bizarre qu'un gars qui rode sur le topic C dise qu'il n'aime pas le C. Moi je n'aime pas Java et je n'y vais jamais et je reste cohérent avec moi-même.
 

MagicBuzz a écrit :

je parle de mon plaisir, pas du tiens. t'es dans ma tête pour dire que je suis incapable de prendre du plaisir à intervenir dans ce topic ?


On ne te reprochera absolument jamais de prendre plaisir à délirer en C. Tu auras donc la même politesse de ne pas reprocher aux autres de te vanner sur tes délires. Ainsi t'as tendu le baton et tu t'es fait fesser. C'est pas bien grave ni bien méchant et si t'as un peu d'humour tu acceptes, sinon de toute façon tout le monde se bat les balloches de tes jérémiades...

Message cité 2 fois
Message édité par Sve@r le 18-12-2006 à 21:55:25

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le 18-12-2006 à 21:00:31  profilanswer
 

n°1492981
red factio​n
Posté le 18-12-2006 à 21:54:27  profilanswer
 

tbp a écrit :

Célebrons donc la mort du bas niveau, qui par définition est bas et donc indigne,avec cette solution au problème qui satisfera tout le monde j'en suis sur.
 


a = sqrtf(a*a);



 
Laissez-moi donc vous proposer cette version, mon jeune ami, bien plus élégante! :

Code :
  1. float fabs(float a){
  2. char s[32];
  3. return sprintf(s,"%f",a),atof(s+1);
  4. }


 
Efficacité    -   simplicité    -  productivité  :o


Message édité par red faction le 18-12-2006 à 21:56:44
n°1493003
MagicBuzz
Posté le 18-12-2006 à 22:34:59  profilanswer
 

Sve@r a écrit :

peut-être quand tu as mis du try/catch dans un topic C...


ah bon, y'a pas de try en C ?
désolé, j'étais persuadé que si :/
(à la base, je croyais même que ça avait été introduit par le C. visiblement, mes souvenirs de fac sont très loins :sleep: )

n°1493004
red factio​n
Posté le 18-12-2006 à 22:36:09  profilanswer
 

try catch c poo a la base , ne serait ce que par le fait que lerreur est remontee de parent a parent jusqua etre captée......

n°1493009
MagicBuzz
Posté le 18-12-2006 à 22:44:11  profilanswer
 

bah au contraire, moi j'adore le late bouding :)
 
c'est ++ mieux (du coup, je déduis que c'est en C++ que c'est apparu :D)

n°1493017
++fab
victime du syndrome IH
Posté le 18-12-2006 à 22:52:35  profilanswer
 

tbp a écrit :

C'est exactement aussi portable que

Code :
  1. (u32)(*(u32*)&a) &= ~(1<<31);



Non. Si float n'est pas IEEE754, le hack ci dessus a peu de chance de marcher. fabs si -- sur une implémentation conforme.

Citation :

mais au moins ça ne chie pas dans les bottes du compilateur.


?

Citation :

Maintenant parlons du contexte. Disons que je suis en plein radix sort sur des flottants et qu'explicitement je ne veux pas que ces saletés de flottants touchent la fpu...


Enlève un peu de flou, ça fera pas de mal.

Message cité 1 fois
Message édité par ++fab le 18-12-2006 à 22:58:04
n°1493022
++fab
victime du syndrome IH
Posté le 18-12-2006 à 22:56:44  profilanswer
 

red faction a écrit :

try catch c'est poo à la base , ne serait-ce que par le fait que l'erreur est remontée de parent à parent jusqu'à être captée......


parent n'est clairement pas le terme qui convient.  

n°1493028
nyrk
Posté le 18-12-2006 à 23:06:38  profilanswer
 

red faction a écrit :

try catch c poo a la base , ne serait ce que par le fait que lerreur est remontee de parent a parent jusqua etre captée......


 
Euh ton dernier message laissait planer un doute quant à ton sérieux, mais là il n'y a plus aucun doute, t'es le futur Coluche. :o

n°1493029
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-12-2006 à 23:06:54  profilanswer
 

++fab a écrit :

parent n'est clairement pas le terme qui convient.


Appelant (caller) ?

 

Message cité 1 fois
Message édité par Emmanuel Delahaye le 18-12-2006 à 23:07:10

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1493032
red factio​n
Posté le 18-12-2006 à 23:13:37  profilanswer
 

nyrk a écrit :

Euh ton dernier message laissait planer un doute quant à ton sérieux, mais là il n'y a plus aucun doute, t'es le futur Coluche. :o


c'est peut etre pas le cas en theorie mais les seuls langages ou j'ai vu des try catch c'était des langages résolument poo avec comme exception lancee toujours un objet......

mood
Publicité
Posté le 18-12-2006 à 23:13:37  profilanswer
 

n°1493034
++fab
victime du syndrome IH
Posté le 18-12-2006 à 23:17:40  profilanswer
 

Sve@r a écrit :

peut-être quand tu as mis du try/catch dans un topic C...


Et tu ne fais jamais d'erreurs ?

Citation :

Il t'a pas agressé, il s'est juste un peu foutu de ta tronche avec beaucoup d'à propos. C'est pour le moins bizarre qu'un gars qui rode sur le topic C dise qu'il n'aime pas le C. Moi je n'aime pas Java et je n'y vais jamais et je reste cohérent avec moi-même.


Je ne vois pas de contradiction à ce que quelqu'un n'aime pas un langage et aime pourtant en discuter.
 

Citation :

On ne te reprochera absolument jamais de prendre plaisir à délirer en C. Tu auras donc la même politesse de ne pas reprocher aux autres de te vanner sur tes délires. Ainsi t'as tendu le baton et tu t'es fait fesser. C'est pas bien grave ni bien méchant et si t'as un peu d'humour tu acceptes


un soupçon de masochisme aussi pendant que tu y est.

n°1493038
++fab
victime du syndrome IH
Posté le 18-12-2006 à 23:20:40  profilanswer
 

red faction a écrit :

c'est peut etre pas le cas en theorie mais les seuls langages ou j'ai vu des try catch c'était des langages résolument poo avec comme exception lancee toujours un objet......


ça dépend de la définition de "objet" dans ton langage. En C++ par exemple, tu peux en particulier déclencher une exception avec n'importe quel type non class.

n°1493040
++fab
victime du syndrome IH
Posté le 18-12-2006 à 23:21:21  profilanswer
 

Emmanuel Delahaye a écrit :

Appelant (caller) ?


Oui, c'est ce que j'aurais dit.

n°1493044
nyrk
Posté le 18-12-2006 à 23:24:31  profilanswer
 

red faction a écrit :

c'est peut etre pas le cas en theorie mais les seuls langages ou j'ai vu des try catch c'était des langages résolument poo avec comme exception lancee toujours un objet......


 
Peut-être mais le mécanisme d'exception n'a vraiment rien à voir avec la POO et il existe des langages non OO qui possèdent des mécanismes d'exceptions.

n°1493048
0x90
Posté le 18-12-2006 à 23:40:52  profilanswer
 

nyrk a écrit :

Peut-être mais le mécanisme d'exception n'a vraiment rien à voir avec la POO et il existe des langages non OO qui possèdent des mécanismes d'exceptions.


 
Comme les montres suisses [:autobot]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1493065
tbp
Posté le 19-12-2006 à 01:55:19  profilanswer
 

++fab a écrit :

Non. Si float n'est pas IEEE754, le hack ci dessus a peu de chance de marcher. fabs si -- sur une implémentation conforme.


Bien évidement que cela ne marche pas sur les flottants non IEEE 754. Mais ils ne courrent pas les rues. Les IEEE 754 en big endian par contre si, et cela ne marche pas dans ce cas non plus.
Mon propos est que, un fois proprement écrit, ce machin a son utilité même si elle est extremement restreinte.
 

++fab a écrit :

Citation :

mais au moins ça ne chie pas dans les bottes du compilateur.


?


Comme écrit x posts plus tôt: A L I A S I N G
Puisque visiblement tu n'as pas la politesse de lire les posts précédents et que google n'est pas ton ami: http://www.cellperformance.com/mik [...] asing.html
 

++fab a écrit :


Citation :

Maintenant parlons du contexte. Disons que je suis en plein radix sort sur des flottants et qu'explicitement je ne veux pas que ces saletés de flottants touchent la fpu...


Enlève un peu de flou, ça fera pas de mal.


Flou? Un radix sort sur des flottants, qui ne sont que partiellemnt ordonnés lexicographiquement au niveau des bits, est typiquement le genre de contexte ou l'on traite des flottants sans jamais toucher la fpu.
 
Mais ce n'est pas le seul. Par exemple avant que de catégoriser un stream de flottants (avec des SIMD sur entiers), voilà comment je les redresse

Code :
  1. // val est un flottant
  2.    #ifdef __GNUC__
  3.       int32_t result;
  4.       asm(
  5.          "neg      %[reg];                     \n"
  6.          "lea      0x80000000(%[reg]), %[reg]; \n"
  7.          "cmovle   %[fp], %[reg];              \n"
  8.          : [reg] "=&r"(result)
  9.          : "[reg]"(val), [fp] "mr"(val)
  10.          : "cc"
  11.       );
  12.       return result;
  13.    #else
  14.       // pfff
  15.       __asm {
  16.          mov      eax, val;
  17.          neg      eax;
  18.          lea      eax, [eax+0x80000000];
  19.          cmovle   eax, val;
  20.       }
  21.    #endif


 
Donc si tu peux me dire ce que fait cette fonction (celà a aussi à voir avec +/- 0), j'entendrais ce que tu as a dire sur le flou de mes posts sur les IEEE 754.
 
Les flottants ne sont pas magiques, et il est parfois utile de se le rappeler.
 
 

n°1493102
Taz
bisounours-codeur
Posté le 19-12-2006 à 09:15:55  profilanswer
 

tbp a écrit :

C'est exactement aussi portable que

Code :
  1. (u32)(*(u32*)&a) &= ~(1<<31);

mais au moins ça ne chie pas dans les bottes du compilateur.


si justement.

n°1493204
Chaos Inte​stinal
Posté le 19-12-2006 à 10:52:36  profilanswer
 

MagicBuzz a écrit :

Mise à part en C, on met toujours en avant l'algo.


 
Non. Développer en C ne dispense pas de brancher le cerveau et de réfléchir à ses algos avant de pisser du code.
 

Taz a écrit :

Je vais vous proposer 3 réponses :
- une pomme
- touche à ton cul
- sens ton doigt


 
[:grinking]
 

n°1493214
MagicBuzz
Posté le 19-12-2006 à 10:55:16  profilanswer
 

red faction a écrit :

c'est peut etre pas le cas en theorie mais les seuls langages ou j'ai vu des try catch c'était des langages résolument poo avec comme exception lancee toujours un objet......


ouais, BASIC c'est POO :D

n°1493215
0x90
Posté le 19-12-2006 à 10:55:27  profilanswer
 

Chaos Intestinal a écrit :

Non. Développer en C ne dispense pas de brancher le cerveau et de réfléchir à ses algos avant de pisser du code.


 
C'est bien connu que le développeur C n'est qu'un frontend à GCC :o


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1493260
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-12-2006 à 11:09:57  profilanswer
 

un peu de calme sur ce topic, sinon je latte [:shakalagoons]

n°1493329
masklinn
í dag viðrar vel til loftárása
Posté le 19-12-2006 à 12:34:30  profilanswer
 

0x90 a écrit :

Comme les montres suisses [:autobot]


Haskell a des exceptions, mais elles sont limitées à une partie précise du langage (l'IO)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1493777
tbp
Posté le 19-12-2006 à 20:53:48  profilanswer
 

Taz a écrit :

si justement.


Vous dites n'importe quoi. Une fois le code proprement écrit, avec les unions, le compilateur a tout loisir d'effectuer l'operation comme bon lui semble, dans la limite des transformations qu'il est à même de faire (et heureusement aucun ne reconnait cette séquence particuliere pour resynthetiser un fabs()).
 
Encore une fois il existe des contextes d'execution rares mais parfaitement valides ou l'on veut soit garantir qu'il n'y aura pas de couteux transferts aller-retour entre classes de registre (GPR vs x87/SSE) soit faire du load-execute (typique du x86, par exemple pour cause de pression trop élevée sur les registres).
 
Un fabs() standard n'offre aucune garantie de ce coté.

n°1493802
++fab
victime du syndrome IH
Posté le 19-12-2006 à 22:09:38  profilanswer
 

tbp a écrit :

Comme écrit x posts plus tôt: A L I A S I N G
Puisque visiblement tu n'as pas la politesse de lire les posts précédents et que


Les cotes se sont perdus, mais tu répondais à une interro-négation d'Emmanuel, et du coup (comme Taz?), j'ai compris ta réponse à l'envers. En relisant, je ne crois pas que mon interprétation soit insensé -- mais j'ai compris ton point.
 

Citation :

Flou? Un radix sort sur des flottants, qui ne sont que partiellemnt ordonnés lexicographiquement au niveau des bits, est typiquement le genre de contexte ou l'on traite des flottants sans jamais toucher la fpu.
[...]
Donc si tu peux me dire ce que fait cette fonction (celà a aussi à voir avec +/- 0), j'entendrais ce que tu as a dire sur le flou de mes posts sur les IEEE 754.


(tu entendras ce que tu veux, et j'écrirai ce que je veux bien écrire)
Je me demande quelle est l'utilité d'esquiver la FPU. Que compte tu faire de tes flottants après ? Les embarquer dans un quelconque protocole de transport ? je ne vois pas :-/
 

n°1493819
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-12-2006 à 22:27:45  profilanswer
 

MagicBuzz a écrit :

ouais, BASIC c'est POO :D

 

Il n'y a pas de try-catch dans les version de bases du BASIC (le vrai, le poilu, le tatoué avec des numéros de lignes 10 GOTO 10, Sharp, Commodore, Apple II, BASICA, GWBASIC...), ni dans les version plus évoluées comme on trouve sur Atari, ou HP 9000 ou plus récemment sur PC avec QBASIC et QUICKBASIC (proches du [Turbo ]Pascal et du C).

 

Par contre, dans les versions récentes OO comme Visual BASIC ou VB.NET, oui, on trouve du try-catch...

 

http://msdn2.microsoft.com/en-us/library/fk6t46tz.aspx

 


Message édité par Emmanuel Delahaye le 22-12-2006 à 00:07:22

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1493823
MagicBuzz
Posté le 19-12-2006 à 22:36:02  profilanswer
 

Il me semble qu'il y avait quand même le "on error".
A moins que je ne me trompe...
Mais j'en doute.
 
Sinon pourquoi VB se serait fait chier à utiliser des labels pour le traîtement des erreurs (truc horrible à la base, que VB était justement là pour héradiquer) si ce n'est parcequ'il l'a hérité du QBASIC ?

n°1493834
tbp
Posté le 19-12-2006 à 23:45:41  profilanswer
 

++fab a écrit :


(tu entendras ce que tu veux, et j'écrirai ce que je veux bien écrire)
Je me demande quelle est l'utilité d'esquiver la FPU. Que compte tu faire de tes flottants après ? Les embarquer dans un quelconque protocole de transport ? je ne vois pas :-/


J'avoue m'être un peu emballé, mais visiblement tout comme toi la plupart des participants ne saisissent pas l'interêt de manipuler les flottants "bit à bit" hors marshalling.
 
Soyons concret. J'ai déjà évoqué le radix sort.
Dans une variante de http://www.sci.utah.edu/~wald/RT06 [...] 6-Hunt.pdf et http://www.mpi-inf.mpg.de/~popov/p [...] index.html disons que j'ai un énorme tas d'intervalles {min,max} sur plusieurs dimensions (en fait des bounding box pour des géometries plus complexes) et que je veux determiner l'emplacement ideal d'un plan de coupe: il me faut dénombrer les populations se trouvant à gauche et à droite de chacun des candidats. Je passe sur les details, mais il est possible, en fait plus rapide, de le faire en n'utilisant que des operations sur les entiers; et j'entends bien par la des operations bit à bit sur des flottants.
 
Ou encore avec un génerateur de nombres aleatoires (disons un Mersenne Twister), lorsqu'on souhaite produire un flottant en bout de course.
 
Plus tous les autres cas ou l'on peut exploiter la forme particuliere que revettent les flottants dans certains intervalles, notament [1, 2[.


Message édité par tbp le 19-12-2006 à 23:55:31
n°1494442
red factio​n
Posté le 20-12-2006 à 18:00:47  profilanswer
 

MagicBuzz a écrit :

ouais, BASIC c'est POO :D


tu peut me donner un exemple de code avec des try catch (ou lequivalent ) en basic???

n°1494505
MagicBuzz
Posté le 20-12-2006 à 19:55:03  profilanswer
 

10 on error goto 40
20 a = 1 / 0
30 goto 50
40 print "prout"
50 on error goto 0
60 print "fini"
 
 
je pense que ça marche en qbasic

Message cité 1 fois
Message édité par MagicBuzz le 20-12-2006 à 19:55:30
n°1495066
el muchach​o
Comfortably Numb
Posté le 21-12-2006 à 21:36:50  profilanswer
 

'tain mais on s'en tape, du basic.[:mlc]

n°1495124
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-12-2006 à 23:11:28  profilanswer
 

MagicBuzz a écrit :

10 on error goto 40
20 a = 1 / 0
30 goto 50
40 print "prout"
50 on error goto 0
60 print "fini"


http://www.smemoranda.it/files/esorcG_7053.jpg


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1495147
MagicBuzz
Posté le 21-12-2006 à 23:53:27  profilanswer
 

el muchacho a écrit :

'tain mais on s'en tape, du basic.[:mlc]


bah on me demande, je donne un exemple :spamafote:

n°1495156
nyrk
Posté le 22-12-2006 à 03:23:11  profilanswer
 


 
Il ressemble étrangement à Donald Knuth le monsieur. [:wam]

n°1496461
MagicBuzz
Posté le 27-12-2006 à 23:06:05  profilanswer
 

MagicBuzz a écrit :

j'excècre le C au plus haut point, et je n'ai aucune envie d'apprendre ce langage.
j'ai suffisament de notions pour prendre plaisir à mettre mon grain de sel dans ce topic, mais absolument aucune envie d'en apprendre la moindre instruction [:spamafote]


je chie toujours sur le C, mais ça m'empêche pas de juster terminer un patch pour un jeu écrit en C.
 
comme quoi, même dans mes loisirs il m'arrive de faire des trucs que j'excècre :spamafote:
 
j'ai le droit de participer aux masturbations collectives autour de ce langage maintenant ? [:magicbuzz]  
 
http://www.tt-forums.net/viewtopic.php?t=29269


Message édité par MagicBuzz le 27-12-2006 à 23:06:19
n°1496464
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-12-2006 à 23:17:40  profilanswer
 

fallait le faire en assembleur ton truc, ça aurait fait plus l33t [:kbchris]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1496474
MagicBuzz
Posté le 27-12-2006 à 23:46:11  profilanswer
 

Harkonnen a écrit :

fallait le faire en assembleur ton truc, ça aurait fait plus l33t [:kbchris]


ben si ça t'amuse de faire de l'ASM, tu peux bosser pour la Team de TTDPatch, dont OTTD est un clône.
TTDPatch, c'est des amélioration du jeu Transport Tycoon Deluxe. Et c'est tout écrit en ASM pour venir se greffer à l'exe d'origine :D


Message édité par MagicBuzz le 27-12-2006 à 23:46:59
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[CSS] Décalage IE/FF pour des floatRendre un décompte en image transparent (lib GD2)
Question sur une manière de modéliser mon problèmeRendre une image invisible -> visible
rendre un lien inactif[MFC][Résolu] Tab spécifiques (Comment rendre un bouton transparent)
Conversion d'un hh:mm:ss en un FLOAT[résolu] Rendre invisible la valeur d'un "submit"
Intégrer la javadoc dans un jar et la rendre visible sous eclipseFloat et allongement - pb sous Firefox
Plus de sujets relatifs à : rendre un float positif (de la maniere la plus tordue)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR