Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

遞減階乘(Falling Factorial)

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

namespace boost{ namespace math{

template <class T>
calculated-result-type falling_factorial(T x, unsigned i);

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

}} // namespaces

返回xi的遞減階乘:

falling_factorial(x, i) = x(x-1)(x-2)(x-3)...(x-i+1)

注意:這個函數只針對於正數i進行了定義, 也就是第二個unsigned 參數 . 而參數 x 可以是正的,也可以是負的。.

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

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

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

精確性

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

測試

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

實現

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


PrevUpHomeNext