floating-point-precision

    2熱度

    1回答

    我正在做A.I的博士研究。我已經到了必須開始爲我的測試平臺使用CUDA庫的部分。 我以前玩過CUDA,並且對GPGPU的工作原理有了基本的瞭解,但是我對浮點精度感到困擾。 看看GTX680我看到FP64:1/24 FP32,而特斯拉有完整的FP64 1.31 TFLOPS。我非常清楚一個是遊戲卡,另一個是專業卡。 我問的原因很簡單:我買不起特斯拉,但我可能會得到兩個GTX680。雖然主要目標是擁有

    4熱度

    4回答

    我正在嘗試使用一些UI按鈕將位置移動0.1或-0.1來影響3D模型的翻譯。 我的模型位置是一個三維浮點數,所以簡單地將0.1f添加到其中一個值會導致明顯的舍入誤差。儘管我可以使用BigDecimal之類的東西來保持精確度,但我仍然必須將其從浮點數轉換回浮點數,並且總會導致愚蠢的數字,導致我的UI看起來像一團糟。 我可以非常漂亮的顯示值,但舍入錯誤只會在更多編輯時變得更糟,並且使我的保存文件難以閱讀

    -1熱度

    2回答

    給定小數點(103993/33102),我需要在該小數點的小數點後找到50000個數字。 最初我在C++中使用了setprecision(k),但它在小數點後只有17位數。我也試過 sprintf (str, "%.500000f", num) 但結果是一樣的。 我需要一個算法,可以解決這個問題,它不會在小數點後的數字四捨五入,即它應該是精確的。

    21熱度

    2回答

    作爲單元測試的一部分,我需要測試一些邊界條件。一種方法接受System.Double參數。 有沒有辦法取得次小的雙重價值? (即將尾數減1個單位值)? 我認爲是使用Double.Epsilon,但這是不可靠的,因爲它只是從零開始的最小增量,所以不適用於較大的值(即9999999999 - Double.Epsilon == 9999999999)。 那麼,什麼是算法或代碼所需要這樣的: NextS

    4熱度

    1回答

    根據IEEE Std 754-2008標準,二進制64位雙精度浮點格式的指數字段寬度是11位,它由指數偏差1023進行補償。標準還規定,最大的指數是1023,最小值爲-1022。爲什麼是最大指數不: 2^10 + 2^9 + 2^8 + 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 - 1023 = 1024 和最小的指數不是: 0 - 1023

    1熱度

    1回答

    這是一個微不足道的問題,我只是想知道這裏發生了什麼。 以下是我的樣本數據,我想找到該行最大的stata x1 x2 x2 70001102 70001102 70001102 70001102 70001102 70001102 現在,我用下面的代碼找到row max: egen maxi rmax(x1 x2 x3) 然而,在數據表我發現第一行和第二行的rmax是70001

    2熱度

    2回答

    在這種情況下(對象 - ,的iOS): float a = 0.99999f; int b = 1000; int c = a + b; 在結果c = 1001。我發現它發生是因爲b轉換爲float(特定於iOS),因此a + b沒有足夠的精度來處理1000.9999和(爲什麼?)被四捨五入爲較高值。如果a是0.999f,我們得到c = 1000 - 理論上正確的行爲。 所以我的問題是爲什

    0熱度

    1回答

    假設我的計算機使用IEEE 754浮點編碼,我不知道什麼是它下面的函數返回false的最小數量: constexpr bool test(const unsigned long long int x) { return static_cast<unsigned long long int>(static_cast<double>(x)) == x; }

    1熱度

    2回答

    我知道這是一個非常愚蠢的問題,但我希望有人可以提供幫助。 我被迫使用MPIR出於精度原因,所以我必須翻譯我的所有C代碼。基本上我只需要更高精度的數字。然而,我真的很困惑我的變量使用的數據類型。我明白mpz_t是整數。由於我存儲的數字有很多小數位,這顯然是不合適的,因爲整數只是整數 mpq_t是有理數。因爲我認爲每個存儲的值都不是理性的數字,所以我不認爲這是合適的。 mpf_t用於浮點數。由於這具有

    1熱度

    1回答

    我試圖更好地瞭解實數行浮點值的分佈情況。 我寫這個代碼計數均勻分佈表示的值的範圍(-R,R)其中R是的的功率(也與2的冪試過)號: public class Foo { public static void main(String[] args) { for(int i=0; i<24; i++) { int count = 0;