Thread: [Metil-lmtpp] probleme avec -O3
Status: Pre-Alpha
Brought to you by:
hugo_lec
From: Felipe B. W. <fel...@gm...> - 2009-07-04 14:16:15
|
le même code compilé avec -O0 et -O3: Vec<double> U ; U.resize(indice_i.size(),0); b = Get_K()(indice_b, indice_i)*U; PRINT(Get_K().nb_rows()); /// 2385 PRINT(Get_K().nb_cols()); /// 2385 PRINT(max(indice_b)); /// 2384 PRINT(max(indice_i)); /// 2210 PRINT(b); avec -O0: b -> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... correct :) avec -O3: b -> -2.09192e-316 -2.09192e-316 -2.09192e-316 -2.09192e-316 -2.09192e-316 -2.09192e-316 -2.09192e-316 ... et à chaque fois il donne une valeur différente. tres bizarre si U et vide [0 0 0 0 0 0 0...] comment on peut avoir un résultat non nul?? --------- avec: Mat<double,Sym<>,SparseLine<> >& Get_K() { return pb->K;}; et K une matrice élément finit bien définit et pb : FormulationAssembly<PB> *pb; ---- l'opérateur Mat * Vec a un bug???? ------------------------------------------------------------------------ Felipe Bordeu Weldt Doctorant - 3° année (3° year PhD student) ------------------------------------------------------------------------ LMT-Cachan (ENS Cachan/CNRS/UPMC/PRES UniverSud Paris) 61, av. du Président Wilson F-94230 Cachan France ------------------------------------------------------------------------ |
From: Pierre-Alain B. <pie...@lm...> - 2009-07-05 10:09:57
|
Perso, ça me choque pas plus que ça ;-) 1E-316 on va dire que c'est le zéro numérique ! Evidemment, ça peut vouloir dire que faire des tests sur le "zéro" c'est modifier un peu ce genre de tests. Quand au fait que ça puisse donner des valeurs un peu différentes, la encore pas forcément choquant : si on suppose que le code s'exécute avec un "état" du proc, de la mémoire, et des caches différents, cela peut changer un peu les choses. Un test sur un résultat qui donne 1 pourrait donner 1, parce que 1.E-316 devant 1... ca s'affiche pas ! PAB Le 4 juil. 09 à 16:10, Felipe Bordeu Weldt a écrit : > avec -O3: > b -> -2.09192e-316 -2.09192e-316 -2.09192e-316 -2.09192e-316 > -2.09192e-316 -2.09192e-316 -2.09192e-316 ... > > et à chaque fois il donne une valeur différente. > tres bizarre si U et vide [0 0 0 0 0 0 0...] comment on peut avoir un > résultat non nul?? -------------------------------------------------------------------- Pierre-Alain BOUCARD Professeur des Universités, IUT Cachan - Université Paris Sud XI ____________________________________________________________________ | LMT - ENS de CACHAN | IUT de Cachan - Département GMP | | 61 Av. du Président Wilson | 9 Av. de la Division Leclerc | | 94235 Cachan Cedex - France | 94234 Cachan Cedex - France | | tel : +33 1 47 40 22 33 | tel : +33 1 41 24 11 92 | | fax : +33 1 47 40 27 85 | fax : +33 1 41 24 11 99 | |________________________________|_________________________________| | http://www.lmt.ens-cachan.fr/boucard | | http://meca.iutcachan.free.fr | |__________________________________________________________________| |