基础R中:复杂向量是否有等价于all(is.finite(x))的O(1)分配表达式
基础R中是否存在O(1)内存的表达式等价于
all(is.finite(x))(针对复数向量) 对于逻辑型和整型向量,可使用!anyNA(x);对于双精度型向量,可使用length(x) == 0L || all(is.finite(range(x)))。那在基础R里,有没有类似的、O(1)内存分配的表达式,能等价于对复数向量执行all(is.finite(x))?
我试过用is.finite(sum(x)),但这个方法会因为超出DBL_MAX返回假阴性结果:
> r <- .Machine$double.xmax > x <- complex(2L, r, r) > all(is.finite(x)) [1] TRUE > is.finite(sum(x)) [1] FALSE
补充系统信息:
> str(.Machine) List of 19 $ double.eps : num 2.22e-16 $ double.neg.eps : num 1.11e-16 $ double.xmin : num 2.23e-308 $ double.xmax : num 1.8e+308 $ double.base : int 2 $ double.digits : int 53 $ double.rounding : int 5 $ double.guard : int 0 $ double.ulp.digits : int -52 $ double.neg.ulp.digits: int -53 $ double.exponent : int 11 $ double.min.exp : int -1022 $ double.max.exp : int 1024 $ integer.max : int 2147483647 $ sizeof.long : int 8 $ sizeof.longlong : int 8 $ sizeof.longdouble : int 8 $ sizeof.pointer : int 8 $ sizeof.time_t : int 8
内容的提问来源于Stack Exchange,提问作者Mikael Jagan
相关产品推荐
相关产品推荐

