Function tune::math::i32_div_u [−][src]
pub fn i32_div_u<D: U32Denom>(numer: i32, denom: D) -> i32
Returns the euclidean division of a signed numer
and an unsigned denom
.
The result is a signed integer between -numer
and numer
.
The function returns valid results for every (numer, denom)
pair where denom != 0
.
Panics
Panics if denom == 0
.
Examples
assert_eq!(math::i32_div_u(0, 5u32), 0); assert_eq!(math::i32_div_u(1, 5u32), 0); assert_eq!(math::i32_div_u(4, 5u32), 0); assert_eq!(math::i32_div_u(5, 5u32), 1); assert_eq!(math::i32_div_u(6, 5u32), 1); // When numer is negative assert_eq!(math::i32_div_u(-1, 5u32), -1); assert_eq!(math::i32_div_u(-4, 5u32), -1); assert_eq!(math::i32_div_u(-5, 5u32), -1); assert_eq!(math::i32_div_u(-6, 5u32), -2); // Integer limits assert_eq!(math::i32_div_u(i32::MIN, u32::MAX), -1); assert_eq!(math::i32_div_u(-1, u32::MAX), -1); assert_eq!(math::i32_div_u(1, u32::MAX), 0); assert_eq!(math::i32_div_u(i32::MAX, u32::MAX), 0);