Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

遞增階乘(Rising Factorial)

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

namespace boost{ namespace math{

template <class T>
calculated-result-type rising_factorial(T x, int i);

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

}} // namespaces

返回xi的遞增階乘:

rising_factorial(x, i) = Γ(x + i) / Γ(x);

或者

rising_factorial(x, i) = x(x+1)(x+2)(x+3)...(x+i)

注意:xi 可以是正數也可以是負數:.

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

如果計算結果太大以至於T類型無法表示,那麼就可能返回溢出錯誤 .

函數返回值的類型使用返回值類型推導法則來確定:如果T是int型,那麼返回值的類型是double, 否則返回值類型為T.

精確性

這個函數的精確性與tgamma_delta_ratio 函數的精確性一樣.

測試

遞減階乘的的抽樣測試數據由 functions.wolfram.com生成

實現

遞增和遞減階乘函數以作為γ函數的比的形式使用tgamma_delta_ratio來實現。由tgamma_delta_ratio函數內部實現針對較小的參數的優化。


PrevUpHomeNext