作者dnol (舞秋風 憶白雲)
看板C_and_CPP
標題浮點數的計算誤差 是否會受其它因素影響
時間Tue May 22 09:27:52 2012
開發平台(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
→ cobrasgo:memory的部份不太可能,如果是在user space的話兩邊的 05/22 09:48
→ cobrasgo:address space是不同的 05/22 09:48
→ stupid0319:同一個Thread下,使用FPU可能會改到st暫存器吧 05/22 14:06
推 cobrasgo:你要不要把code po一下? 05/22 18:29