#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&);
}}
Возвращает падающий факториалxиi:
Fall_factorial(x, i) = x(x-1)(x-2)(x-3)...(x-i+1)
Обратите внимание, что эта функция определена только для положительногоi, отсюда и второй аргумент<unsigned
>. Аргументхможет быть как положительным, так и отрицательным.
Конечный аргументПолитикаявляется необязательным и может использоваться для контроля поведения функции: как она обрабатывает ошибки, какой уровень точности использовать и т. д. См. документациюдля более подробной информации.
Может вернуть результатoverflow_error, если результат слишком велик для представления в типе T.
Тип возврата этих функций вычисляется с помощьюправил расчета типа результата: Тип результата<double
>, если T является целым типом, в противном случае тип результата является T.
Точность будет такой же, как функцияtgamma_delta_ratio.
Спот-тесты для падающих факториалов используют данные, генерируемые functions.wolfram.com.
Коэффициенты возрастания и падения реализуются как соотношения гамма-функций с использованиемtgamma_delta_ratio. Оптимизация для небольших целых аргументов обрабатывается внутри этой функции.