Struct rug::complex::OrdComplex [] [src]

pub struct OrdComplex { /* fields omitted */ }

A complex number that supports total ordering and hashing.

For ordering, the real part has precedence over the imaginary part. Negative zero is ordered as less than positive zero. Negative NaN is ordered as less than negative infinity, while positive NaN is ordered as greater than positive infinity. Comparing two negative NaNs or two positive NaNs produces equality.

Examples

use rug::Complex;
use rug::complex::OrdComplex;
use rug::float::Special;
use std::cmp::Ordering;

let nan_c = Complex::with_val(53, (Special::Nan, Special::Nan));
let nan = OrdComplex::from(nan_c);
assert_eq!(nan.cmp(&nan), Ordering::Equal);

let one_neg0_c = Complex::with_val(53, (1, Special::NegZero));
let one_neg0 = OrdComplex::from(one_neg0_c);
let one_pos0_c = Complex::with_val(53, (1, Special::Zero));
let one_pos0 = OrdComplex::from(one_pos0_c);
assert_eq!(one_neg0.cmp(&one_pos0), Ordering::Less);

let zero_inf_s = (Special::Zero, Special::Infinity);
let zero_inf_c = Complex::with_val(53, zero_inf_s);
let zero_inf = OrdComplex::from(zero_inf_c);
assert_eq!(one_pos0.cmp(&zero_inf), Ordering::Greater);

Methods

impl OrdComplex
[src]

[src]

Extracts the underlying Complex.

Examples

use rug::Complex;
use rug::complex::OrdComplex;
let c = Complex::with_val(53, (1.5, 2.5));
let ord = OrdComplex::from(c);
let c_ref = ord.as_complex();
assert_eq!(*c_ref.real(), 1.5);
assert_eq!(*c_ref.imag(), 2.5);

[src]

Extracts the underlying Complex.

Examples

use rug::Complex;
use rug::complex::OrdComplex;
let c = Complex::with_val(53, (1.5, -2.5));
let mut ord = OrdComplex::from(c);
ord.as_complex_mut().conj_mut();
let c_ref = ord.as_complex();
assert_eq!(*c_ref.real(), 1.5);
assert_eq!(*c_ref.imag(), 2.5);

Trait Implementations

impl Clone for OrdComplex
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for OrdComplex
[src]

[src]

Formats the value using the given formatter. Read more

impl Hash for OrdComplex
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Eq for OrdComplex
[src]

impl Ord for OrdComplex
[src]

[src]

This method returns an Ordering between self and other. Read more

1.21.0
[src]

Compares and returns the maximum of two values. Read more

1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl PartialEq for OrdComplex
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

1.0.0
[src]

This method tests for !=.

impl PartialOrd for OrdComplex
[src]

[src]

This method returns an ordering between self and other values if one exists. Read more

1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl From<Complex> for OrdComplex
[src]

[src]

Performs the conversion.

impl From<OrdComplex> for Complex
[src]

[src]

Performs the conversion.

impl Serialize for OrdComplex
[src]

[src]

Serialize this value into the given Serde serializer. Read more

impl<'de> Deserialize<'de> for OrdComplex
[src]

[src]

Deserialize this value from the given Serde deserializer. Read more

[src]

Auto Trait Implementations

impl Send for OrdComplex

impl Sync for OrdComplex