[問題] 浮點數的計算誤差 是否會受其它因素影響

看板C_and_CPP (C/C++)作者 (舞秋風 憶白雲)時間14年前 (2012/05/22 09:27), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) x86_64-redhat-linux, gcc 4.1.2 問題(Question): 我最近在開發一套軟體,其中一個function A有大量的float運算。 另一個function B 除了有大量的運算外,還有大量的memory malloc和free。 A和B的運算是完全獨立的,互相不影響。 但是我最近在修改B的時候,發現A的結果有些微的改變(小數點三位以下不太一樣)。 我不禁懷疑,是不是B存取了不該使用的memory,導至A受到影響。 我除了自己仔細的檢查程式外,我還用valgrind進行檢驗。 經過檢驗後,B應該是沒有更動到A的memory。 所以我想請問,當其它function在做memory malloc或free時, 有可能會影響到A中浮點數運算的誤差值嗎? 或是,在什麼情況下,浮點數運算的誤差值可能會被影響。謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 98.223.67.212

05/22 09:48, , 1F
memory的部份不太可能,如果是在user space的話兩邊的
05/22 09:48, 1F

05/22 09:48, , 2F
address space是不同的
05/22 09:48, 2F

05/22 14:06, , 3F
同一個Thread下,使用FPU可能會改到st暫存器吧
05/22 14:06, 3F

05/22 18:29, , 4F
你要不要把code po一下?
05/22 18:29, 4F
文章代碼(AID): #1FkkkRvO (C_and_CPP)
文章代碼(AID): #1FkkkRvO (C_and_CPP)