Trait rug::ops::RemRoundingFrom [] [src]

pub trait RemRoundingFrom<Lhs = Self> {
    fn rem_trunc_from(&mut self, lhs: Lhs);
fn rem_ceil_from(&mut self, lhs: Lhs);
fn rem_floor_from(&mut self, lhs: Lhs);
fn rem_euc_from(&mut self, lhs: Lhs); }

Compound assignment to the rhs operand and rounding variants of the remainder operation.

Examples

use rug::ops::RemRoundingFrom;
struct I(i32);
impl RemRoundingFrom<i32> for I {
    fn rem_trunc_from(&mut self, lhs: i32) {
        self.0 = lhs % self.0;
    }
    fn rem_ceil_from(&mut self, lhs: i32) {
        let r = lhs % self.0;
        let change = if self.0 > 0 { r > 0 } else { r < 0 };
        self.0 = if change { r - self.0 } else { r };
    }
    fn rem_floor_from(&mut self, lhs: i32) {
        let r = lhs % self.0;
        let change = if self.0 > 0 { r < 0 } else { r > 0 };
        self.0 = if change { r + self.0 } else { r };
    }
    fn rem_euc_from(&mut self, lhs: i32) {
        let r = lhs % self.0;
        self.0 = if r < 0 {
            if self.0 < 0 { r - self.0 } else { r + self.0 }
        } else {
            r
        };
    }
}
let mut rem_ceil = I(3);
rem_ceil.rem_ceil_from(10);
assert_eq!(rem_ceil.0, -2);

Required Methods

Finds the remainder when the quotient is rounded towards zero.

Finds the remainder when the quotient is rounded up.

Finds the remainder when the quotient is rounded down.

Finds the positive remainder from Euclidean division.

Implementations on Foreign Types

impl RemRoundingFrom for i8
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a i8> for i8
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for i16
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a i16> for i16
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for i32
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a i32> for i32
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for i64
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a i64> for i64
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for isize
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a isize> for isize
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for i128
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a i128> for i128
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for f32
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a f32> for f32
[src]

[src]

[src]

[src]

[src]

impl RemRoundingFrom for f64
[src]

[src]

[src]

[src]

[src]

impl<'a> RemRoundingFrom<&'a f64> for f64
[src]

[src]

[src]

[src]

[src]

Implementors