![]()  | 
![]() ![]() ![]() ![]()  | 
![]()  | 
Double FactorialBoost , Math Toolkit 2.5.0 , Factorials and Binomial Coefficients
  
  
   | 
||||||||||||
![]()  | 
Important | 
|---|---|
| 
 Описанные выше функции представляют собой шаблоны, где аргумент шаблона T не может быть выведен из аргументов, переданных функции. Если вы пишете что-то вроде: < Вы получите (возможно, озадачивающую) ошибку компилятора, обычно указывающую на то, что такой функции нет. Вместо этого вам нужно указать тип возврата и написать: < Так что тип возврата известен. Кроме того, аргумент шаблона должен быть действительно ценным типом, таким как< Исходным кодом< BOOST_STATIC_ASSERT(!boost::is_integral<T>::value); // factorial<unsigned int>(n) is not implemented // because it would overflow integral type T for too small n // to be useful. Use instead a floating-point type, // and convert to an unsigned type if essential, for example: // unsigned int nfac = static_cast<unsigned int>(factorial<double>(n)); // See factorial documentation for more detail.  | 
![]()  | 
Note | 
|---|---|
<  | 
В реализации используется тривиальная адаптация факториальной функции, поэтому частота ошибок должна быть не более пары эпсилон выше.
Спот-тестирование данных двойного факториального использования, генерируемых functions.wolfram.com.
Двойной факториал реализуется в терминах факториальной и гамма-функций с использованием отношений:
(2n)!! = 2n* n!
(2n+1)!! = (2n+1)! / (2nn!)
и
(2n-1)!! = Γ((2n+1)/2) * 2n/ sqrt(pi)
Статья Double Factorial раздела Math Toolkit 2.5.0 Factorials and Binomial Coefficients может быть полезна для разработчиков на c++ и boost.
:: Главная :: Factorials and Binomial Coefficients ::
реклама  |