Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

sqrt1pm1

#include <boost/math/special_functions/sqrt1pm1.hpp>

namespace boost{ namespace math{

template <class T>
calculated-result-type sqrt1pm1(T x);

template <class T, class Policy>
calculated-result-type sqrt1pm1(T x, const Policy&);

}} // namespaces

返回 sqrt(1+x) - 1.

函數返回值的類型使用返回值推導法則:來確定,當x是整型的時候,返回值的類型是double,否則返回值是類型是T.

最後一個策略 參數是可選的並且可以用來控制函數的行為: 如何處理誤差, 使用哪種層次的精度等等. 參見策略文檔瞭解更多信息。

當x本身接近於1,而你又需要計算 sqrt(x) 與 1之間的差值的時候這個函數就很有用。

使用函數log1p 和 函數expm1來實現函數sqrt1pm1

下面的圖像顯示了 sqrt1pm1的特性:

精確度

對於內建的浮點類型,sqrt1pm1 具有近似於 3 epsilon(10的-5次方) 的精確度。

測試

使用1000-bits精度的NTL::RR庫生成的隨機的高精度測試數據。


PrevUpHomeNext