factorial2#
- scipy.special.factorial2(n, exact=False, extend='zero')[source]#
- Double factorial. - This is the factorial with every second value skipped. E.g., - 7!! = 7 * 5 * 3 * 1. It can be approximated numerically as:- n!! = 2 ** (n / 2) * gamma(n / 2 + 1) * sqrt(2 / pi) n odd = 2 ** (n / 2) * gamma(n / 2 + 1) n even = 2 ** (n / 2) * (n / 2)! n even- The formula for odd - nis the basis for the complex extension.- Parameters:
- nint or float or complex (or array_like thereof)
- Input values for - n!!. Non-integer values require- extend='complex'. By default, the return value for- n < 0is 0.
- exactbool, optional
- If - exactis set to True, calculate the answer exactly using integer arithmetic, otherwise use above approximation (faster, but yields floats instead of integers). Default is False.
- extendstring, optional
- One of - 'zero'or- 'complex'; this determines how values- n<0are handled - by default they are 0, but it is possible to opt into the complex extension of the double factorial. This also enables passing complex values to- n.- Warning - Using the - 'complex'extension also changes the values of the double factorial for even integers, reducing them by a factor of- sqrt(2/pi) ~= 0.79, see [1].
 
- Returns:
- nfint or float or complex or ndarray
- Double factorial of - n, as integer, float or complex (depending on- exactand- extend). Array inputs are returned as arrays.
 
 - References [1]- Complex extension to double factorial https://en.wikipedia.org/wiki/Double_factorial#Complex_arguments - Examples - >>> from scipy.special import factorial2 >>> factorial2(7, exact=False) array(105.00000000000001) >>> factorial2(7, exact=True) 105