Trait rug::ops::DivRoundingFrom [−][src]
Compound assignment to the rhs operand and rounding variants of division.
Examples
use rug::ops::DivRoundingFrom; struct I(i32); impl DivRoundingFrom<i32> for I { fn div_trunc_from(&mut self, lhs: i32) { self.0 = lhs / self.0; } fn div_ceil_from(&mut self, lhs: i32) { let (q, r) = (lhs / self.0, lhs % self.0); let change = if self.0 > 0 { r > 0 } else { r < 0 }; self.0 = if change { q + 1 } else { q }; } fn div_floor_from(&mut self, lhs: i32) { let (q, r) = (lhs / self.0, lhs % self.0); let change = if self.0 > 0 { r < 0 } else { r > 0 }; self.0 = if change { q - 1 } else { q }; } fn div_euc_from(&mut self, lhs: i32) { let (q, r) = (lhs / self.0, lhs % self.0); self.0 = if r < 0 { if self.0 < 0 { q + 1 } else { q - 1 } } else { q }; } } let mut div_ceil = I(3); div_ceil.div_ceil_from(10); assert_eq!(div_ceil.0, 4);
Required methods
fn div_trunc_from(&mut self, lhs: Lhs)
[src]
Performs division, rounding the quotient towards zero.
fn div_ceil_from(&mut self, lhs: Lhs)
[src]
Performs division, rounding the quotient up.
fn div_floor_from(&mut self, lhs: Lhs)
[src]
Performs division, rounding the quotient down.
fn div_euc_from(&mut self, lhs: Lhs)
[src]
Performs Euclidean division, rounding the quotient so that the remainder cannot be negative.