pub trait CheckedLogBasePowerOf2<POW> {
type Output;
// Required method
fn checked_log_base_power_of_2(self, pow: POW) -> Option<Self::Output>;
}Expand description
Calculates the base-$2^k$ logarithm of a number, or returns None if the number is not a
perfect power of $2^k$.
Required Associated Types§
Required Methods§
fn checked_log_base_power_of_2(self, pow: POW) -> Option<Self::Output>
Implementations on Foreign Types§
Source§impl CheckedLogBasePowerOf2<u64> for f32
impl CheckedLogBasePowerOf2<u64> for f32
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<i64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<i64>
Returns the base-$2^k$ logarithm of a positive float. If the float is not a power of
$2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self or pow are 0.
§Examples
See here.
type Output = i64
Source§impl CheckedLogBasePowerOf2<u64> for f64
impl CheckedLogBasePowerOf2<u64> for f64
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<i64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<i64>
Returns the base-$2^k$ logarithm of a positive float. If the float is not a power of
$2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self or pow are 0.
§Examples
See here.
type Output = i64
Source§impl CheckedLogBasePowerOf2<u64> for u8
impl CheckedLogBasePowerOf2<u64> for u8
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.
type Output = u64
Source§impl CheckedLogBasePowerOf2<u64> for u16
impl CheckedLogBasePowerOf2<u64> for u16
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.
type Output = u64
Source§impl CheckedLogBasePowerOf2<u64> for u32
impl CheckedLogBasePowerOf2<u64> for u32
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.
type Output = u64
Source§impl CheckedLogBasePowerOf2<u64> for u64
impl CheckedLogBasePowerOf2<u64> for u64
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.
type Output = u64
Source§impl CheckedLogBasePowerOf2<u64> for u128
impl CheckedLogBasePowerOf2<u64> for u128
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.
type Output = u64
Source§impl CheckedLogBasePowerOf2<u64> for usize
impl CheckedLogBasePowerOf2<u64> for usize
Source§fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
fn checked_log_base_power_of_2(self, pow: u64) -> Option<u64>
Returns the base-$2^k$ logarithm of a positive integer. If the integer is not a
power of $2^k$, None is returned.
$$ f(x, k) = \begin{cases} \operatorname{Some}(\log_{2^k} x) & \text{if} \quad \log_{2^k} x \in \Z, \\ \operatorname{None} & \textrm{otherwise}. \end{cases} $$
§Worst-case complexity
Constant time and additional memory.
§Panics
Panics if self is infinite, NaN, or less than or equal to zero, or if pow is
zero.
§Examples
See here.