一般的 C++ 标准库实现中std::sqrt对double的重载是直接从 C 标准库拿来的。而 C++ 方面没什么好办法...
IEEE 标准要求std::sqrt为准确。其他要求为准确的运算只有算术运算符和函数std::fma。舍入到返回类型后(用默认舍入模式),std::sqrt的结果与无限精度结果不可辨别。换言之,误差小于 0.5 ulp 。其他函数,含std::pow,不受这种制约。 示例 运行此代码
IEEE 标准要求std::sqrt为准确。其他要求为准确的运算只有算术运算符和函数std::fma。舍入到返回类型后(用默认舍入模式),std::sqrt的结果与无限精度结果不可辨别。换言之,误差小于 0.5 ulp 。其他函数,含std::pow,不受这种制约。 示例 运行此代码
std::sqrt(std::valarray) 定义于头文件<valarray> template<classT> valarray<T>sqrt(constvalarray<T>&va); 对va中每个元素计算元素值的平方根。 参数 va-要应用操作到的值数组 返回值 含有va中值的平方根的值数组。 注解 用无限定函数 (sqrt) 进行计算。若该函数不可用,则因参数依赖查找使用std::sqrt。
std::sqrt,std::sqrtf,std::sqrtl 在标头<cmath>定义 (1) floatsqrt(floatnum); doublesqrt(doublenum); longdoublesqrt(longdoublenum); (C++23 前) /* 浮点数类型 */ sqrt(/* 浮点数类型 */num); (C++23 起) (C++26 起 constexpr)
The additional overloads are not required to be provided exactly as(A). They only need to be sufficient to ensure that for their argumentnumof integer type,std::sqrt(num)has the same effect asstd::sqrt(static_cast<double>(num)). ...
B*C)/sum(B)列中的公式不同,该列在您的第一个公式D = (sum_B / double(E))*std::sqrt(E...
std::function<Complex(constComplex&)> g = std::sqrt<double>; 有效,因为std::sqrt<double>它的模板版本std::sqrt接收Complex const &(std::complex<double> const &) 并返回Complex const & 但是当你写一些东西时 std::function<float(float)> b = std::sqrt<float>;std::function<double(double)> ...
不合格职能%28sqrt%29用于执行计算。如果没有这样的功能,std::sqrt由于参数相关查找而使用。 函数的返回类型与std::valarray在这种情况下,替换类型具有以下属性: 全const成员职能std::valarray提供。 std::valarray,,,std::slice_array,,,std::gslice_array,,,std::mask_array和std::indirect_array可以从替换类型...
std::sqrt是IEEE标准所要求的。 唯一需要精确的其他操作是算术运算符和函数std::fma。 舍入到返回类型后(使用默认舍入模式),std::sqrt的结果与无限精确的结果无法区分。 换句话说,误差小于0.5ULP。 其他函数,包括std::pow,则没有这样的约束。 (参考) ...