.Machine
位於 base
包(package)。 說明
.Machine
是一個變量,保存有關機器數值特征的信息R正在運行,例如最大的雙精度或整數以及機器的精度。
用法
.Machine
細節
該算法基於 Cody (1988) 的子例程 MACHAR。由於當前所有的實現R使用 32 位整數並使用 IEC 60559 浮點(雙精度)算術,"integer"
和"double"
幾乎所有的相關值都是相同的R構建。
請注意,在大多數平台上,正值小於.Machine$double.xmin
可能會發生。在一個典型的R平台最小正雙精度約為5e-324
.
值
包含組件的列表
double.eps |
滿足 |
double.neg.eps |
一個小的正浮點數 |
double.xmin |
最小的非零標準化浮點數,基數的冪,即 |
double.xmax |
最大的標準化浮點數。通常,它等於 |
double.base |
浮點表示的基數:通常為 |
double.digits |
浮點尾數中的基數位數:通常為 |
double.rounding |
舍入動作,其中之一 |
double.guard |
截斷算術乘法的保護位數。如果浮點算術截斷且超過則為 1 |
double.ulp.digits |
最大負整數 |
double.neg.ulp.digits |
最大負整數 |
double.exponent |
為表示浮點數的指數(包括偏差或符號)而保留的位數(如果 |
double.min.exp |
最大的負整數 |
double.max.exp |
溢出的 |
integer.max |
可以表示的最大整數。始終 。 |
sizeof.long |
C |
sizeof.longlong |
C |
sizeof.longdouble |
C 中的字節數 |
sizeof.pointer |
C 中的字節數 |
sizeof.time_t |
的數量字節在C |
longdouble.eps, longdouble.neg.eps, longdouble.digits, ... |
引入於R4.0.0。什麽時候 |
注意
在(典型)情況下capabilities("long.double")
是真的,R使用long double
C 類型在內部相當多的地方用於累加器,例如sum
,將非整數數值常量讀入(二進製)雙精度數字,或算術,例如x %% y
;還,long double
可以通過以下方式讀取readBin
.
為此,在這種情況下,.Machine
還包含十個成分,longdouble.eps
,*.neg.eps
,*.digits
,*.rounding
*.guard
,*.ulp.digits
,*.neg.ulp.digits
,*.exponent
,*.min.exp
, 和*.max.exp
,完全類似於他們的計算double.*
同行們,請參閱那裏。
sizeof.longdouble
隻告訴您為 long double 分配的存儲量。通常存儲的是 IEC 60559 的 80 位擴展雙精度類型,填充到平台上使用的雙對齊 — 這似乎是常見的情況R使用 ix86 和 x86_64 芯片的平台。還有其他 long double 的實現,通常在軟件中,例如 Sparc Solaris 和 AIX 上。
請注意,平台擁有long double
C 型,與double
type — 這發生在 ARM cpu 上。在這種情況下capabilities("long.double")
將是錯誤的,但在版本上R在 4.0.4 之前,.Machine
可能含有"longdouble.<kind>"
元素。
例子
.Machine
## or for a neat printout
noquote(unlist(format(.Machine)))
來源
在參考中使用 Fortran 代碼的 C 翻譯,由 R 核心團隊修改以擊敗現代編譯器中的 over-optimization。
參考
Cody, W. J. (1988). MACHAR: A subroutine to dynamically determine machine parameters. Transactions on Mathematical Software, 14(4), 303-311. doi:10.1145/50063.51907.
也可以看看
.Platform
了解平台的詳細信息。
相關用法
- R .Device 打開/活動圖形設備列表
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
- R rank 樣本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 將文本推回連接
- R strsplit 分割字符向量的元素
- R seq.Date 生成規則的日期序列
- R invisible 將打印模式更改為不可見
- R noquote “無引號”字符串打印類
- R warning 警告信息
- R rapply 遞歸地將函數應用於列表
- R basename 操作文件路徑
- R with 評估數據環境中的表達式
- R formals 訪問和操縱形式參數
- R icuSetCollate 按 ICU 設置整理
- R search 給出 R 對象的搜索路徑
- R Defunct 將對象標記為已失效
- R gzcon 通過連接(解)壓縮 I/O
- R readRenviron 從文件設置環境變量
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Numerical Characteristics of the Machine。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。