pub trait CheckedDoubleFactorial: Sized {
// Required method
fn checked_double_factorial(n: u64) -> Option<Self>;
}
Expand description
Computes the double factorial of a u64
, returning None
if the result is too large to be
represented. The double factorial of a non-negative integer is the product of all the positive
integers that are less than or equal to it and have the same parity as it.
Required Methods§
fn checked_double_factorial(n: u64) -> Option<Self>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl CheckedDoubleFactorial for u8
impl CheckedDoubleFactorial for u8
Source§fn checked_double_factorial(n: u64) -> Option<u8>
fn checked_double_factorial(n: u64) -> Option<u8>
Computes the double factorial of a number.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is Self::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.
Source§impl CheckedDoubleFactorial for u16
impl CheckedDoubleFactorial for u16
Source§fn checked_double_factorial(n: u64) -> Option<u16>
fn checked_double_factorial(n: u64) -> Option<u16>
Computes the double factorial of a number.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is Self::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.
Source§impl CheckedDoubleFactorial for u32
impl CheckedDoubleFactorial for u32
Source§fn checked_double_factorial(n: u64) -> Option<u32>
fn checked_double_factorial(n: u64) -> Option<u32>
Computes the double factorial of a number.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is Self::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.
Source§impl CheckedDoubleFactorial for u64
impl CheckedDoubleFactorial for u64
Source§fn checked_double_factorial(n: u64) -> Option<u64>
fn checked_double_factorial(n: u64) -> Option<u64>
Computes the double factorial of a number.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is Self::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.
Source§impl CheckedDoubleFactorial for u128
impl CheckedDoubleFactorial for u128
Source§fn checked_double_factorial(n: u64) -> Option<u128>
fn checked_double_factorial(n: u64) -> Option<u128>
Computes the double factorial of a number.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is Self::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.
Source§impl CheckedDoubleFactorial for usize
impl CheckedDoubleFactorial for usize
Source§fn checked_double_factorial(n: u64) -> Option<usize>
fn checked_double_factorial(n: u64) -> Option<usize>
Computes the double factorial of a usize
.
If the input is too large, the function returns None
.
$$
f(n) = \begin{cases}
\operatorname{Some}(n!!) & \text{if} \quad n!! < 2^W, \\
\operatorname{None} & \text{if} \quad n!! \geq 2^W,
\end{cases}
$$
where $W$ is usize::WIDTH
.
$n!! = O(\sqrt{n}(n/e)^{n/2})$.
§Worst-case complexity
Constant time and additional memory.
§Examples
See here.