Trait rug::ops::AssignRound

source ·
pub trait AssignRound<Src = Self> {
    type Round;
    type Ordering;

    // Required method
    fn assign_round(&mut self, src: Src, round: Self::Round) -> Self::Ordering;
}
Expand description

Assignment with a specified rounding method.

§Examples

use core::cmp::Ordering;
use rug::float::Round;
use rug::ops::AssignRound;
struct F(f64);
impl AssignRound<f64> for F {
    type Round = Round;
    type Ordering = Ordering;
    fn assign_round(&mut self, rhs: f64, _round: Round) -> Ordering {
        self.0 = rhs;
        Ordering::Equal
    }
}
let mut f = F(3.0);
let dir = f.assign_round(5.0, Round::Nearest);
assert_eq!(f.0, 5.0);
assert_eq!(dir, Ordering::Equal);

Required Associated Types§

source

type Round

The rounding method.

source

type Ordering

The direction from rounding.

Required Methods§

source

fn assign_round(&mut self, src: Src, round: Self::Round) -> Self::Ordering

Peforms the assignment.

§Examples
use core::cmp::Ordering;
use rug::float::Round;
use rug::ops::AssignRound;
use rug::Float;
// only four significant bits
let mut f = Float::new(4);
let dir = f.assign_round(3.3, Round::Nearest);
// 3.3 rounded down to 3.25
assert_eq!(f, 3.25);
assert_eq!(dir, Ordering::Less);
let dir = f.assign_round(3.3, Round::Up);
// 3.3 rounded up to 3.5
assert_eq!(f, 3.5);
assert_eq!(dir, Ordering::Greater);

Implementors§

source§

impl AssignRound for Complex

source§

impl AssignRound for Float

source§

impl AssignRound<&Constant> for Float

source§

impl AssignRound<&Special> for Float

source§

impl AssignRound<&bool> for Float

source§

impl AssignRound<&f32> for Float

source§

impl AssignRound<&f64> for Float

source§

impl AssignRound<&i8> for Float

source§

impl AssignRound<&i16> for Float

source§

impl AssignRound<&i32> for Float

source§

impl AssignRound<&i64> for Float

source§

impl AssignRound<&i128> for Float

source§

impl AssignRound<&isize> for Float

source§

impl AssignRound<&u8> for Float

source§

impl AssignRound<&u16> for Float

source§

impl AssignRound<&u32> for Float

source§

impl AssignRound<&u64> for Float

source§

impl AssignRound<&u128> for Float

source§

impl AssignRound<&usize> for Float

source§

impl AssignRound<&MiniComplex> for Complex

source§

impl AssignRound<&SmallComplex> for Complex

source§

impl AssignRound<&MiniFloat> for Float

source§

impl AssignRound<&SmallFloat> for Float

source§

impl AssignRound<&Complex> for Complex

source§

impl AssignRound<&Float> for Float

source§

impl AssignRound<&Integer> for Float

source§

impl AssignRound<&Rational> for Float

source§

impl AssignRound<Constant> for Float

source§

impl AssignRound<Special> for Float

source§

impl AssignRound<bool> for Float

source§

impl AssignRound<f32> for Float

source§

impl AssignRound<f64> for Float

source§

impl AssignRound<i8> for Float

source§

impl AssignRound<i16> for Float

source§

impl AssignRound<i32> for Float

source§

impl AssignRound<i64> for Float

source§

impl AssignRound<i128> for Float

source§

impl AssignRound<isize> for Float

source§

impl AssignRound<u8> for Float

source§

impl AssignRound<u16> for Float

source§

impl AssignRound<u32> for Float

source§

impl AssignRound<u64> for Float

source§

impl AssignRound<u128> for Float

source§

impl AssignRound<usize> for Float

source§

impl AssignRound<MiniComplex> for Complex

source§

impl AssignRound<SmallComplex> for Complex

source§

impl AssignRound<MiniFloat> for Float

source§

impl AssignRound<SmallFloat> for Float

source§

impl AssignRound<Integer> for Float

source§

impl AssignRound<Rational> for Float

source§

impl<'a, Re, Im> AssignRound<&'a (Re, Im)> for Complex
where Float: AssignRound<&'a Re, Round = Round, Ordering = Ordering> + AssignRound<&'a Im, Round = Round, Ordering = Ordering>,

source§

impl<Re> AssignRound<Re> for Complex
where Float: AssignRound<Re, Round = Round, Ordering = Ordering>,

source§

impl<Re, Im> AssignRound<(Re, Im)> for Complex
where Float: AssignRound<Re, Round = Round, Ordering = Ordering> + AssignRound<Im, Round = Round, Ordering = Ordering>,