maths.double_factorial

Functions

double_factorial_iterative(→ int)

Compute double factorial using iterative method.

double_factorial_recursive(→ int)

Compute double factorial using recursive method.

Module Contents

maths.double_factorial.double_factorial_iterative(num: int) int

Compute double factorial using iterative method.

To learn about the theory behind this algorithm: https://en.wikipedia.org/wiki/Double_factorial

>>> from math import prod
>>> all(double_factorial_iterative(i) == prod(range(i, 0, -2)) for i in range(20))
True
>>> double_factorial_iterative(0.1)
Traceback (most recent call last):
    ...
ValueError: double_factorial_iterative() only accepts integral values
>>> double_factorial_iterative(-1)
Traceback (most recent call last):
    ...
ValueError: double_factorial_iterative() not defined for negative values
maths.double_factorial.double_factorial_recursive(n: int) int

Compute double factorial using recursive method. Recursion can be costly for large numbers.

To learn about the theory behind this algorithm: https://en.wikipedia.org/wiki/Double_factorial

>>> from math import prod
>>> all(double_factorial_recursive(i) == prod(range(i, 0, -2)) for i in range(20))
True
>>> double_factorial_recursive(0.1)
Traceback (most recent call last):
    ...
ValueError: double_factorial_recursive() only accepts integral values
>>> double_factorial_recursive(-1)
Traceback (most recent call last):
    ...
ValueError: double_factorial_recursive() not defined for negative values