Struct rug::Complex [] [src]

pub struct Complex { /* fields omitted */ }

A multi-precision complex number with arbitrarily large precision and correct rounding.

The precision has to be set during construction. The rounding method of the required operations can be specified, and the direction of the rounding is returned.

There are two versions of most methods:

  1. The first rounds the returned or stored Complex number to the nearest representable value.
  2. The second applies the specified rounding methods for the real and imaginary parts, and returns the rounding directions for both: * Ordering::Less if the returned/stored part is less than the exact result, * Ordering::Equal if the returned/stored part is equal to the exact result, * Ordering::Greater if the returned/stored part is greater than the exact result,

Note on Round::AwayFromZero

For Complex numbers, Round::AwayFromZero is not implemented, and trying to use it will panic.

Examples

use rug::{Assign, Complex, Float};
let c = Complex::with_val(53, (40, 30));
assert_eq!(format!("{:.3}", c), "(4.00e1 3.00e1)");
let mut f = Float::with_val(53, c.abs_ref());
assert_eq!(f, 50);
f.assign(c.arg_ref());
assert_eq!(f, 0.75_f64.atan());

Methods

impl Complex
[src]

Create a new complex number with the specified precisions for the real and imaginary parts and with value 0.

Examples

use rug::Complex;
let c1 = Complex::new(32);
assert_eq!(c1.prec(), (32, 32));
assert_eq!(c1, 0);
let c2 = Complex::new((32, 64));
assert_eq!(c2.prec(), (32, 64));
assert_eq!(c2, 0);

Panics

Panics if the precision is out of the allowed range.

Create a new complex number with the specified precision and with the given value, rounding to the nearest.

Examples

use rug::Complex;
let c1 = Complex::with_val(53, (1.3f64, -12));
assert_eq!(c1.prec(), (53, 53));
assert_eq!(c1, (1.3f64, -12));
let c2 = Complex::with_val(53, 42.0);
assert_eq!(c2.prec(), (53, 53));
assert_eq!(c2, 42);
assert_eq!(c2, (42, 0));

Panics

Panics if prec is out of the allowed range.

Create a new floating-point number with the specified precision and with the given value, applying the specified rounding method.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let round = (Round::Down, Round::Up);
let (c, dir) = Complex::with_val_round(4, (3.3, 2.3), round);
// 3.3 is rounded down to 3.25, 2.3 is rounded up to 2.5
assert_eq!(c.prec(), (4, 4));
assert_eq!(c, (3.25, 2.5));
assert_eq!(dir, (Ordering::Less, Ordering::Greater));

Panics

Panics if prec is out of the allowed range.

Returns the precision of the real and imaginary parts.

Examples

use rug::Complex;
let r = Complex::new((24, 53));
assert_eq!(r.prec(), (24, 53));

Sets the precision of the real and imaginary parts, rounding to the nearest.

Examples

use rug::Complex;
let mut r = Complex::with_val(6, (4.875, 4.625));
assert_eq!(r, (4.875, 4.625));
r.set_prec(4);
assert_eq!(r, (5.0, 4.5));

Panics

Panics if the precision is out of the allowed range.

Sets the precision of the real and imaginary parts, applying the specified rounding method.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let mut r = Complex::with_val(6, (4.875, 4.625));
assert_eq!(r, (4.875, 4.625));
let dir = r.set_prec_round(4, (Round::Down, Round::Up));
assert_eq!(r, (4.5, 5.0));
assert_eq!(dir, (Ordering::Less, Ordering::Greater));

Panics

Panics if the precision is out of the allowed range.

Parses a Complex number with the specified precision, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::from_str("(12.5e2 2.5e-1)", 53).unwrap();
assert_eq!(*c.real(), 12.5e2);
assert_eq!(*c.imag(), 2.5e-1);
let bad = Complex::from_str("bad", 53);
assert!(bad.is_err());

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Parses a Complex number with the specified precision, applying the specified rounding.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let round = (Round::Down, Round::Up);
let res = Complex::from_str_round("(14.1 14.2)", 4, round);
let (c, dir) = res.unwrap();
assert_eq!(*c.real(), 14);
assert_eq!(*c.imag(), 15);
assert_eq!(dir, (Ordering::Less, Ordering::Greater));

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Parses a Complex number with the specified radix and precision, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::from_str_radix("f.f", 16, 53).unwrap();
assert_eq!(*c.real(), 15.9375);
assert_eq!(*c.imag(), 0);

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Panics

Panics if radix is less than 2 or greater than 36.

Parses a Complex number with the specified radix and precision, applying the specified rounding.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let round = (Round::Nearest, Round::Nearest);
let res = Complex::from_str_radix_round("(c.c c.1)", 16, 4, round);
let (c, dir) = res.unwrap();
assert_eq!(*c.real(), 13);
assert_eq!(*c.imag(), 12);
assert_eq!(dir, (Ordering::Greater, Ordering::Less));

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Panics

Panics if radix is less than 2 or greater than 36.

Checks if a Complex number can be parsed.

If this method does not return an error, neither will any other function that parses a Complex number. If this method returns an error, the other functions will return the same error.

Examples

use rug::Complex;

let valid1 = Complex::valid_str_radix("(1.2e-1 2.3e+2)", 4);
let c1 = Complex::with_val(53, valid1.unwrap());
assert_eq!(c1, (0.25 * (1.0 + 0.25 * 2.0), 4.0 * (3.0 + 4.0 * 2.0)));
let valid2 = Complex::valid_str_radix("(12 yz)", 36);
let c2 = Complex::with_val(53, valid2.unwrap());
assert_eq!(c2, (2.0 + 36.0 * 1.0, 35.0 + 36.0 * 34.0));

let invalid = Complex::valid_str_radix("(0, 0)", 3);
let invalid_f = Complex::from_str_radix("(0, 0)", 3, 53);
assert_eq!(invalid.unwrap_err(), invalid_f.unwrap_err());

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Panics

Panics if radix is less than 2 or greater than 36.

Returns a string representation of the value for the specified radix rounding to the nearest.

The exponent is encoded in decimal. If the number of digits is not specified, the output string will have enough precision such that reading it again will give the exact same number.

Examples

use rug::Complex;
let c1 = Complex::with_val(53, 0);
assert_eq!(c1.to_string_radix(10, None), "(0.0 0.0)");
let c2 = Complex::with_val(12, (15, 5));
assert_eq!(c2.to_string_radix(16, None), "(f.000 5.000)");
let c3 = Complex::with_val(53, (10, -4));
assert_eq!(c3.to_string_radix(10, Some(3)), "(1.00e1 -4.00)");
assert_eq!(c3.to_string_radix(5, Some(3)), "(2.00e1 -4.00)");

Panics

Panics if radix is less than 2 or greater than 36.

Returns a string representation of the value for the specified radix applying the specified rounding method.

The exponent is encoded in decimal. If the number of digits is not specified, the output string will have enough precision such that reading it again will give the exact same number.

Examples

use rug::Complex;
use rug::float::Round;
let c = Complex::with_val(10, 10.4);
let down = (Round::Down, Round::Down);
let nearest = (Round::Nearest, Round::Nearest);
let up = (Round::Up, Round::Up);
let nd = c.to_string_radix_round(10, None, down);
assert_eq!(nd, "(1.0406e1 0.0)");
let nu = c.to_string_radix_round(10, None, up);
assert_eq!(nu, "(1.0407e1 0.0)");
let sd = c.to_string_radix_round(10, Some(2), down);
assert_eq!(sd, "(1.0e1 0.0)");
let sn = c.to_string_radix_round(10, Some(2), nearest);
assert_eq!(sn, "(1.0e1 0.0)");
let su = c.to_string_radix_round(10, Some(2), up);
assert_eq!(su, "(1.1e1 0.0)");

Panics

Panics if radix is less than 2 or greater than 36.

Parses a Complex number from a string, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::new(53);
c.assign_str("(12.5e2 2.5e-1)").unwrap();
assert_eq!(*c.real(), 12.5e2);
assert_eq!(*c.imag(), 2.5e-1);
let ret = c.assign_str("bad");
assert!(ret.is_err());

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Parses a Complex number from a string, applying the specified rounding.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let mut c = Complex::new((4, 4));
let round = (Round::Down, Round::Up);
let dir = c.assign_str_round("(14.1 14.2)", round).unwrap();
assert_eq!(*c.real(), 14);
assert_eq!(*c.imag(), 15);
assert_eq!(dir, (Ordering::Less, Ordering::Greater));

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Parses a Complex number from a string with the specified radix, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::new(53);
c.assign_str_radix("f.f", 16).unwrap();
assert_eq!(*c.real(), 15.9375);
assert_eq!(*c.imag(), 0);

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Panics

Panics if radix is less than 2 or greater than 36.

Parses a Complex number from a string with the specified radix, applying the specified rounding.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let mut c = Complex::new((4, 4));
let round = (Round::Nearest, Round::Nearest);
let dir = c.assign_str_radix_round("(c.c c.1)", 16, round).unwrap();
assert_eq!(*c.real(), 13);
assert_eq!(*c.imag(), 12);
assert_eq!(dir, (Ordering::Greater, Ordering::Less));

Errors

If the string is not correctly formatted, a ParseComplexError is returned.

Panics

Panics if radix is less than 2 or greater than 36.

Borrows the real part as a Float.

Examples

use rug::Complex;
let c = Complex::with_val(53, (12.5, -20.75));
assert_eq!(*c.real(), 12.5)

Borrows the imaginary part as a Float.

Examples

use rug::Complex;
let c = Complex::with_val(53, (12.5, -20.75));
assert_eq!(*c.imag(), -20.75)

Borrows the real part mutably.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (12.5, -20.75));
assert_eq!(c, (12.5, -20.75));
*c.mut_real() /= 2;
assert_eq!(c, (6.25, -20.75));

Borrows the imaginary part mutably.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (12.5, -20.75));
assert_eq!(c, (12.5, -20.75));
*c.mut_imag() *= 4;
assert_eq!(c, (12.5, -83));

Borrows the real and imaginary parts.

Examples

use rug::Complex;
let c = Complex::with_val(53, (12.5, -20.75));
assert_eq!(c, (12.5, -20.75));
let (re, im) = c.as_real_imag();
assert_eq!(*re, 12.5);
assert_eq!(*im, -20.75);

Borrows the real and imaginary parts mutably.

Examples

use rug::Complex;

let mut c = Complex::with_val(53, (12.5, -20.75));
{
    let (real, imag) = c.as_mut_real_imag();
    *real /= 2;
    *imag *= 4;
    // borrow ends here
}
assert_eq!(c, (6.25, -83));

Consumes and converts the value into real and imaginary Float values.

This function reuses the allocated memory and does not allocate any new memory.

use rug::Complex;
let c = Complex::with_val(53, (12.5, -20.75));
let (real, imag) = c.into_real_imag();
assert_eq!(real, 12.5);
assert_eq!(imag, -20.75);

Computes a projection onto the Riemann sphere, rounding to the nearest.

If no parts of the number are infinite, the result is unchanged. If any part is infinite, the real part of the result is set to +∞ and the imaginary part of the result is set to 0 with the same sign as the imaginary part of the input.

Examples

use rug::Complex;
use std::f64;
let c1 = Complex::with_val(53, (1.5, 2.5));
let proj1 = c1.proj();
assert_eq!(proj1, (1.5, 2.5));
let c2 = Complex::with_val(53, (f64::NAN, f64::NEG_INFINITY));
let proj2 = c2.proj();
assert_eq!(proj2, (f64::INFINITY, 0.0));
// imaginary was negative, so now it is minus zero
assert!(proj2.imag().get_sign());

Computes a projection onto the Riemann sphere, rounding to the nearest.

If no parts of the number are infinite, the result is unchanged. If any part is infinite, the real part of the result is set to +∞ and the imaginary part of the result is set to 0 with the same sign as the imaginary part of the input.

Examples

use rug::Complex;
use std::f64;
let mut c1 = Complex::with_val(53, (1.5, 2.5));
c1.proj_mut();
assert_eq!(c1, (1.5, 2.5));
let mut c2 = Complex::with_val(53, (f64::NAN, f64::NEG_INFINITY));
c2.proj_mut();
assert_eq!(c2, (f64::INFINITY, 0.0));
// imaginary was negative, so now it is minus zero
assert!(c2.imag().get_sign());

Computes the projection onto the Riemann sphere.

If no parts of the number are infinite, the result is unchanged. If any part is infinite, the real part of the result is set to +∞ and the imaginary part of the result is set to 0 with the same sign as the imaginary part of the input.

Examples

use rug::Complex;
use std::f64;
let c1 = Complex::with_val(53, (f64::INFINITY, 50));
let proj1 = Complex::with_val(53, c1.proj_ref());
assert_eq!(proj1, (f64::INFINITY, 0.0));
let c2 = Complex::with_val(53, (f64::NAN, f64::NEG_INFINITY));
let proj2 = Complex::with_val(53, c2.proj_ref());
assert_eq!(proj2, (f64::INFINITY, 0.0));
// imaginary was negative, so now it is minus zero
assert!(proj2.imag().get_sign());

Computes the square, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::with_val(53, (1, -2));
// (1 - 2i) squared is (-3 - 4i)
let square = c.square();
assert_eq!(square, (-3, -4));

Computes the square, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (1, -2));
// (1 - 2i) squared is (-3 - 4i)
c.square_mut();
assert_eq!(c, (-3, -4));

Computes the square, applying the specified rounding method.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let mut c = Complex::with_val(4, (1.25, 1.25));
// (1.25 + 1.25i) squared is (0 + 3.125i).
// With 4 bits of precision, 3.125 is rounded down to 3.
let dir = c.square_round((Round::Down, Round::Down));
assert_eq!(c, (0, 3));
assert_eq!(dir, (Ordering::Equal, Ordering::Less));

Computes the square.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
let c = Complex::with_val(53, (1.25, 1.25));
// (1.25 + 1.25i) squared is (0 + 3.125i).
let r = c.square_ref();
// With 4 bits of precision, 3.125 is rounded down to 3.
let round = (Round::Down, Round::Down);
let (square, dir) = Complex::with_val_round(4, r, round);
assert_eq!(square, (0, 3));
assert_eq!(dir, (Ordering::Equal, Ordering::Less));

Computes the square root, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::with_val(53, (-1, 0));
// square root of (-1 + 0i) is (0 + i)
let sqrt = c.sqrt();
assert_eq!(sqrt, (0, 1));

Computes the square root, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (-1, 0));
// square root of (-1 + 0i) is (0 + i)
c.sqrt_mut();
assert_eq!(c, (0, 1));

Computes the square root, applying the specified rounding method.

Examples

use rug::Complex;
use std::cmp::Ordering;
let mut c = Complex::with_val(4, (2, 2.25));
// Square root of (2 + 2.25i) is (1.5828 + 0.7108i).
// Nearest with 4 bits of precision: (1.625 + 0.6875i)
let dir = c.sqrt_round(Default::default());
assert_eq!(c, (1.625, 0.6875));
assert_eq!(dir, (Ordering::Greater, Ordering::Less));

Computes the square root.

Examples

use rug::Complex;
use std::cmp::Ordering;
let c = Complex::with_val(53, (2, 2.25));
// Square root of (2 + 2.25i) is (1.5828 + 0.7108i).
let r = c.sqrt_ref();
// Nearest with 4 bits of precision: (1.625 + 0.6875i)
let (sqrt, dir) = Complex::with_val_round(4, r, Default::default());
assert_eq!(sqrt, (1.625, 0.6875));
assert_eq!(dir, (Ordering::Greater, Ordering::Less));

Computes the complex conjugate.

Examples

use rug::Complex;
let c = Complex::with_val(53, (1.5, 2.5));
let conj = c.conj();
assert_eq!(conj, (1.5, -2.5));

Computes the complex conjugate.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (1.5, 2.5));
c.conj_mut();
assert_eq!(c, (1.5, -2.5));

Computes the complex conjugate.

Examples

use rug::Complex;
let c = Complex::with_val(53, (1.5, 2.5));
let conj = Complex::with_val(53, c.conj_ref());
assert_eq!(conj, (1.5, -2.5));

Computes the absolute value and returns it as a Float with the precision of the real part.

Examples

use rug::Complex;
let c = Complex::with_val(53, (30, 40));
let f = c.abs();
assert_eq!(f, 50);

Computes the absolute value.

The real part is set to the absolute value and the imaginary part is set to zero.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (30, 40));
c.abs_mut();
assert_eq!(c, (50, 0));

Computes the absolute value.

Examples

use rug::{Complex, Float};
let c = Complex::with_val(53, (30, 40));
let f = Float::with_val(53, c.abs_ref());
assert_eq!(f, 50);

Computes the argument, rounding to the nearest.

The argument is returned as a Float with the precision of the real part.

Examples

use rug::Complex;
let c = Complex::with_val(53, (4, 3));
let f = c.arg();
assert_eq!(f, 0.75_f64.atan());

Special values are handled like atan2 in IEEE 754-2008.

use rug::{Assign, Complex, Float};
use rug::float::Special;
use std::f64;
// f has precision 53, just like f64, so PI constants match.
let mut arg = Float::new(53);
let mut zero = Complex::new(53);
zero.assign((Special::Zero, Special::Zero));
arg.assign(zero.arg_ref());
assert!(arg.is_zero() && !arg.get_sign());
zero.assign((Special::Zero, Special::MinusZero));
arg.assign(zero.arg_ref());
assert!(arg.is_zero() && arg.get_sign());
zero.assign((Special::MinusZero, Special::Zero));
arg.assign(zero.arg_ref());
assert_eq!(arg, f64::consts::PI);
zero.assign((Special::MinusZero, Special::MinusZero));
arg.assign(zero.arg_ref());
assert_eq!(arg, -f64::consts::PI);

Computes the argument, rounding to the nearest.

The real part is set to the argument and the imaginary part is set to zero.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (40, 30));
c.arg_mut();
assert_eq!(c, (0.75_f64.atan(), 0));

Computes the argument, applying the specified rounding method.

The real part is set to the argument and the imaginary part is set to zero.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
// use only 4 bits of precision
let mut c = Complex::with_val(4, (3, 4));
// arg(3 + 4i) = 0.9316.
// 0.9316 rounded to the nearest is 0.9375.
let dir = c.arg_round((Round::Nearest, Round::Nearest));
assert_eq!(c, (0.9375, 0));
assert_eq!(dir, (Ordering::Greater, Ordering::Equal));

Computes the argument.

Examples

use rug::{Assign, Complex, Float};
use std::f64;
// f has precision 53, just like f64, so PI constants match.
let mut arg = Float::new(53);
let c_pos = Complex::with_val(53, 1);
arg.assign(c_pos.arg_ref());
assert!(arg.is_zero());
let c_neg = Complex::with_val(53, -1.3);
arg.assign(c_neg.arg_ref());
assert_eq!(arg, f64::consts::PI);
let c_pi_4 = Complex::with_val(53, (1.333, 1.333));
arg.assign(c_pi_4.arg_ref());
assert_eq!(arg, f64::consts::FRAC_PI_4);

Multiplies the complex number by ±i, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::with_val(53, (13, 24));
let rot1 = c.mul_i(false);
assert_eq!(rot1, (-24, 13));
let rot2 = rot1.mul_i(false);
assert_eq!(rot2, (-13, -24));
let rot2_less1 = rot2.mul_i(true);
assert_eq!(rot2_less1, (-24, 13));

Multiplies the complex number by ±i, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (13, 24));
c.mul_i_mut(false);
assert_eq!(c, (-24, 13));
c.mul_i_mut(false);
assert_eq!(c, (-13, -24));
c.mul_i_mut(true);
assert_eq!(c, (-24, 13));

Multiplies the complex number by ±i, applying the specified rounding method.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
// only 4 bits of precision for imaginary part
let mut c = Complex::with_val((53, 4), (127, 15));
assert_eq!(c, (127, 15));
let dir = c.mul_i_round(false, (Round::Down, Round::Down));
assert_eq!(c, (-15, 120));
assert_eq!(dir, (Ordering::Equal, Ordering::Less));
let dir = c.mul_i_round(true, (Round::Down, Round::Down));
assert_eq!(c, (120, 15));
assert_eq!(dir, (Ordering::Equal, Ordering::Equal));

Multiplies the complex number by ±i.

Examples

use rug::Complex;
let c = Complex::with_val(53, (13, 24));
let rotated = Complex::with_val(53, c.mul_i_ref(false));
assert_eq!(rotated, (-24, 13));

Computes the reciprocal, rounding to the nearest.

Examples

use rug::Complex;
let c = Complex::with_val(53, (1, 1));
// 1/(1 + i) = (0.5 - 0.5i)
let recip = c.recip();
assert_eq!(recip, (0.5, -0.5));

Computes the reciprocal, rounding to the nearest.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (1, 1));
// 1/(1 + i) = (0.5 - 0.5i)
c.recip_mut();
assert_eq!(c, (0.5, -0.5));

Computes the reciprocal, applying the specified rounding method.

Examples

use rug::Complex;
use std::cmp::Ordering;
let mut c = Complex::with_val(4, (1, 2));
// 1/(1 + 2i) = (0.2 - 0.4i), binary (0.00110011..., -0.01100110...)
// 4 bits of precision: (0.001101, -0.01101) = (13/64, -13/32)
let dir = c.recip_round(Default::default());
assert_eq!(c, (13.0/64.0, -13.0/32.0));
assert_eq!(dir, (Ordering::Greater, Ordering::Less));

Computes the reciprocal.

Examples

use rug::Complex;
let c = Complex::with_val(53, (1, 1));
// 1/(1 + i) = (0.5 - 0.5i)
let recip = Complex::with_val(53, c.recip_ref());
assert_eq!(recip, (0.5, -0.5));

Computes the norm, that is the square of the absolute value, rounding it to the nearest.

The norm is returned as a Float with the precision of the real part.

Examples

use rug::Complex;
let c = Complex::with_val(53, (3, 4));
let f = c.norm();
assert_eq!(f, 25);

Computes the norm, that is the square of the absolute value, rounding to the nearest.

The real part is set to the norm and the imaginary part is set to zero.

Examples

use rug::Complex;
let mut c = Complex::with_val(53, (3, 4));
c.norm_mut();
assert_eq!(c, (25, 0));

Computes the norm, that is the square of the absolute value, applying the specified rounding method.

The real part is set to the norm and the imaginary part is set to zero.

Examples

use rug::Complex;
use rug::float::Round;
use std::cmp::Ordering;
// use only 4 bits of precision
let mut c = Complex::with_val(4, (3, 4));
// 25 rounded up using 4 bits is 26
let dir = c.norm_round((Round::Up, Round::Up));
assert_eq!(c, (26, 0));
assert_eq!(dir, (Ordering::Greater, Ordering::Equal));

Computes the norm, that is the square of the absolute value.

Examples

use rug::{Complex, Float};
let c = Complex::with_val(53, (3, 4));
let f = Float::with_val(53, c.norm_ref());
assert_eq!(f, 25);

Computes the natural logarithm, rounding to the nearest.

Computes the natural logarithm, rounding to the nearest.

Computes the natural logarithm, applying the specified rounding method.

Computes the natural logarithm;

Computes the logarithm to base 10, rounding to the nearest.

Computes the logarithm to base 10, rounding to the nearest.

Computes the logarithm to base 10, applying the specified rounding method.

Computes the logarithm to base 10.

Computes the exponential, rounding to the nearest.

Computes the exponential, rounding to the nearest.

Computes the exponential, applying the specified rounding method.

Computes the exponential.

Computes the sine, rounding to the nearest.

Computes the sine, rounding to the nearest.

Computes the sine, applying the specified rounding method.

Computes the sine.

Computes the cosine, rounding to the nearest.

Computes the cosine, rounding to the nearest.

Computes the cosine, applying the specified rounding method.

Computes the cosine.

Computes the sine and cosine of self, rounding to the nearest.

The sine is stored in self and keeps its precision, while the cosine is stored in cos keeping its precision.

Computes the sine and cosine of self, rounding to the nearest.

The sine is stored in self and keeps its precision, while the cosine is stored in cos keeping its precision.

Computes the sine and cosine of self, applying the specified rounding methods.

The sine is stored in self and keeps its precision, while the cosine is stored in cos keeping its precision.

Computes the sine and cosine.

Examples

use rug::{Assign, Complex};
// sin(0.5 + 0.2i) = 0.48905 + 0.17669i
// cos(0.5 + 0.2i) = 0.89519 - 0.096526i
let angle = Complex::with_val(53, (0.5, 0.2));
let r = angle.sin_cos_ref();
// use only 10 bits of precision here to
// make comparison easier
let (mut sin, mut cos) = (Complex::new(10), Complex::new(10));
(&mut sin, &mut cos).assign(r);
assert_eq!(sin, Complex::with_val(10, (0.48905, 0.17669)));
assert_eq!(cos, Complex::with_val(10, (0.89519, -0.096526)));

Computes the tangent, rounding to the nearest.

Computes the tangent, rounding to the nearest.

Computes the tangent, applying the specified rounding method.

Computes the tangent.

Computes the hyperbolic sine, rounding to the nearest.

Computes the hyperbolic sine, rounding to the nearest.

Computes the hyperbolic sine, applying the specified rounding method.

Computes the hyperbolic sine.

Computes the hyperbolic cosine, rounding to the nearest.

Computes the hyperbolic cosine, rounding to the nearest.

Computes the hyperbolic cosine, applying the specified rounding method.

Computes the hyperbolic cosine.

Computes the hyperbolic tangent, rounding to the nearest.

Computes the hyperbolic tangent, rounding to the nearest.

Computes the hyperbolic tangent, applying the specified rounding method.

Computes the hyperbolic tangent.

Computes the inverse sine, rounding to the nearest.

Computes the inverse sine, rounding to the nearest.

Computes the inverse sine, applying the specified rounding method.

Computes the inverse sine.

Computes the inverse cosine, rounding to the nearest.

Computes the inverse cosine, rounding to the nearest.

Computes the inverse cosine, applying the specified rounding method.

Computes the inverse cosine.

Computes the inverse tangent, rounding to the nearest.

Computes the inverse tangent, rounding to the nearest.

Computes the inverse tangent, applying the specified rounding method.

Computes the inverse tangent.

Computes the inverse hyperbolic sine, rounding to the nearest.

Computes the inverse hyperbolic sine, rounding to the nearest.

Computes the inverse hyperbolic sine, applying the specified rounding method.

Computes the inverse hyperboic sine.

Computes the inverse hyperbolic cosine, rounding to the nearest.

Computes the inverse hyperbolic cosine, rounding to the nearest.

Computes the inverse hyperbolic cosine, applying the specified rounding method.

Computes the inverse hyperbolic cosine.

Computes the inverse hyperbolic tangent, rounding to the nearest.

Computes the inverse hyperbolic tangent, rounding to the nearest.

Computes the inverse hyperbolic tangent, applying the specified rounding method.

Computes the inverse hyperbolic tangent.

Generates a random complex number with both the real and imaginary parts in the range 0 ≤ x < 1.

This is equivalent to calling assign_random_bits(rng) on the real part, and then calling the same method on the imaginary part.

Generates a random complex number, rounding to the nearest.

Both the real and imaginary parts are in the continuous range 0 ≤ x < 1. After rounding, the value may be equal to one. Calling this method is equivalent to calling assign_random_cont_round(rng, (Round::Nearest, Round::Nearest)).

Generates a random complex number, applying the specified rounding method.

Both the real and imaginary parts are in the continuous range 0 ≤ x < 1. After rounding, the value may be equal to one. Calling this method is equivalent to calling assign_random_cont_round(rng, round.0) on the real part, and then calling the same method with round.1 on the imaginary part.

Trait Implementations

impl Clone for Complex
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Drop for Complex
[src]

A method called when the value goes out of scope. Read more

impl From<(Float, Float)> for Complex
[src]

Constructs a Complex number from a real Float and imaginary Float.

This constructor does not allocate, as it reuses the Float components.

impl Display for Complex
[src]

Formats the value using the given formatter. Read more

impl Debug for Complex
[src]

Formats the value using the given formatter.

impl LowerExp for Complex
[src]

Formats the value using the given formatter.

impl UpperExp for Complex
[src]

Formats the value using the given formatter.

impl Binary for Complex
[src]

Formats the value using the given formatter.

impl Octal for Complex
[src]

Formats the value using the given formatter.

impl LowerHex for Complex
[src]

Formats the value using the given formatter.

impl UpperHex for Complex
[src]

Formats the value using the given formatter.

impl<T> Assign<T> for Complex where
    Complex: AssignRound<T, Round = (Round, Round), Ordering = (Ordering, Ordering)>, 
[src]

Peforms the assignement. Read more

impl AssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<&'a Integer> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<&'a Rational> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<Integer> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<Rational> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<Special> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<Constant> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<i64> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<u64> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<f32> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AssignRound<f64> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<T, U> AssignRound<(T, U)> for Complex where
    Float: AssignRound<T, Round = Round, Ordering = Ordering>,
    Float: AssignRound<U, Round = Round, Ordering = Ordering>, 
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<ProjRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<SquareRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<SqrtRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<ConjugateRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<MulIRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<RecipRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<LnRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<Log10Ref<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<ExpRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<SinRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<CosRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<TanRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<SinhRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<CoshRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<TanhRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AsinRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AcosRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AtanRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AsinhRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AcoshRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<AtanhRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Neg for Complex
[src]

The resulting type after applying the - operator

The method for the unary - operator

impl NegAssign for Complex
[src]

Peforms the negation. Read more

impl<'a> Neg for &'a Complex
[src]

The resulting type after applying the - operator

The method for the unary - operator

impl<'a> AssignRound<NegRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Add<Complex> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> Add<&'a Complex> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl AddAssign<Complex> for Complex
[src]

The method for the += operator

impl<'a> AddAssign<&'a Complex> for Complex
[src]

The method for the += operator

impl AddAssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddAssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> Add<&'a Complex> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> AssignRound<AddRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Add<Complex> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl AddFrom<Complex> for Complex
[src]

Peforms the addition. Read more

impl<'a> AddFrom<&'a Complex> for Complex
[src]

Peforms the addition. Read more

impl<'a> AddFromRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddFromRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl Sub<Complex> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> Sub<&'a Complex> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubAssign<Complex> for Complex
[src]

The method for the -= operator

impl<'a> SubAssign<&'a Complex> for Complex
[src]

The method for the -= operator

impl SubAssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubAssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> Sub<&'a Complex> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> AssignRound<SubRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Sub<Complex> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubFrom<Complex> for Complex
[src]

Peforms the subtraction. Read more

impl<'a> SubFrom<&'a Complex> for Complex
[src]

Peforms the subtraction. Read more

impl<'a> SubFromRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubFromRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl Mul<Complex> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> Mul<&'a Complex> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl MulAssign<Complex> for Complex
[src]

The method for the *= operator

impl<'a> MulAssign<&'a Complex> for Complex
[src]

The method for the *= operator

impl MulAssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulAssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> Mul<&'a Complex> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> AssignRound<MulRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Mul<Complex> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl MulFrom<Complex> for Complex
[src]

Peforms the multiplication. Read more

impl<'a> MulFrom<&'a Complex> for Complex
[src]

Peforms the multiplication. Read more

impl<'a> MulFromRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulFromRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl Div<Complex> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> Div<&'a Complex> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl DivAssign<Complex> for Complex
[src]

The method for the /= operator

impl<'a> DivAssign<&'a Complex> for Complex
[src]

The method for the /= operator

impl DivAssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivAssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> Div<&'a Complex> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> AssignRound<DivRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Div<Complex> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl DivFrom<Complex> for Complex
[src]

Peforms the division. Read more

impl<'a> DivFrom<&'a Complex> for Complex
[src]

Peforms the division. Read more

impl<'a> DivFromRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivFromRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl Pow<Complex> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> Pow<&'a Complex> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<Complex> for Complex
[src]

Peforms the power operation. Read more

impl<'a> PowAssign<&'a Complex> for Complex
[src]

Peforms the power operation. Read more

impl PowAssignRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> PowAssignRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> Pow<&'a Complex> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Pow<Complex> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowFrom<Complex> for Complex
[src]

Peforms the power operation. Read more

impl<'a> PowFrom<&'a Complex> for Complex
[src]

Peforms the power operation. Read more

impl<'a> PowFromRound<Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> PowFromRound<&'a Complex> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl Add<Float> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> Add<&'a Float> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl AddAssign<Float> for Complex
[src]

The method for the += operator

impl<'a> AddAssign<&'a Float> for Complex
[src]

The method for the += operator

impl AddAssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddAssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> Add<&'a Float> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> AssignRound<AddRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Add<Float> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> AssignRound<AddRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AddFrom<Float> for Complex
[src]

Peforms the addition. Read more

impl<'a> AddFrom<&'a Float> for Complex
[src]

Peforms the addition. Read more

impl AddFromRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddFromRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl Sub<Float> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> Sub<&'a Float> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubAssign<Float> for Complex
[src]

The method for the -= operator

impl<'a> SubAssign<&'a Float> for Complex
[src]

The method for the -= operator

impl SubAssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubAssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> Sub<&'a Float> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> AssignRound<SubRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Sub<Float> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> AssignRound<SubFromRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl SubFrom<Float> for Complex
[src]

Peforms the subtraction. Read more

impl<'a> SubFrom<&'a Float> for Complex
[src]

Peforms the subtraction. Read more

impl SubFromRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubFromRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> AssignRound<SubRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<SubFromRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Mul<Float> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> Mul<&'a Float> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl MulAssign<Float> for Complex
[src]

The method for the *= operator

impl<'a> MulAssign<&'a Float> for Complex
[src]

The method for the *= operator

impl MulAssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulAssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> Mul<&'a Float> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> AssignRound<MulRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Mul<Float> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> AssignRound<MulRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl MulFrom<Float> for Complex
[src]

Peforms the multiplication. Read more

impl<'a> MulFrom<&'a Float> for Complex
[src]

Peforms the multiplication. Read more

impl MulFromRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulFromRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl Div<Float> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> Div<&'a Float> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl DivAssign<Float> for Complex
[src]

The method for the /= operator

impl<'a> DivAssign<&'a Float> for Complex
[src]

The method for the /= operator

impl DivAssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivAssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> Div<&'a Float> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> AssignRound<DivRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Div<Float> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> AssignRound<DivFromRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl DivFrom<Float> for Complex
[src]

Peforms the division. Read more

impl<'a> DivFrom<&'a Float> for Complex
[src]

Peforms the division. Read more

impl DivFromRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivFromRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> AssignRound<DivRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> AssignRound<DivFromRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Pow<Float> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> Pow<&'a Float> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<Float> for Complex
[src]

Peforms the power operation. Read more

impl<'a> PowAssign<&'a Float> for Complex
[src]

Peforms the power operation. Read more

impl PowAssignRound<Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> PowAssignRound<&'a Float> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> Pow<&'a Float> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefFloat<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Pow<Float> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefFloatOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Pow<Integer> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> Pow<&'a Integer> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<Integer> for Complex
[src]

Peforms the power operation. Read more

impl<'a> PowAssign<&'a Integer> for Complex
[src]

Peforms the power operation. Read more

impl PowAssignRound<Integer> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> PowAssignRound<&'a Integer> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> Pow<&'a Integer> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefInteger<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl<'a> Pow<Integer> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefIntegerOwn<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Add<u32> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl AddAssign<u32> for Complex
[src]

The method for the += operator

impl<'a> Add<u32> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> AssignRound<AddRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AddAssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddFrom<u32> for Complex
[src]

Peforms the addition. Read more

impl<'a> AddFromRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl Sub<u32> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubAssign<u32> for Complex
[src]

The method for the -= operator

impl<'a> Sub<u32> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> AssignRound<SubRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl SubAssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubFrom<u32> for Complex
[src]

Peforms the subtraction. Read more

impl<'a> SubFromRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> AssignRound<SubFromRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Mul<u32> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl MulAssign<u32> for Complex
[src]

The method for the *= operator

impl<'a> Mul<u32> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> AssignRound<MulRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl MulAssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulFrom<u32> for Complex
[src]

Peforms the multiplication. Read more

impl<'a> MulFromRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl Div<u32> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl DivAssign<u32> for Complex
[src]

The method for the /= operator

impl<'a> Div<u32> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> AssignRound<DivRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl DivAssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivFrom<u32> for Complex
[src]

Peforms the division. Read more

impl<'a> DivFromRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> AssignRound<DivFromRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Add<i32> for Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl AddAssign<i32> for Complex
[src]

The method for the += operator

impl<'a> Add<i32> for &'a Complex
[src]

The resulting type after applying the + operator

The method for the + operator

impl<'a> AssignRound<AddRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl AddAssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl<'a> AddFrom<i32> for Complex
[src]

Peforms the addition. Read more

impl<'a> AddFromRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the addition. Read more

impl Sub<i32> for Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl SubAssign<i32> for Complex
[src]

The method for the -= operator

impl<'a> Sub<i32> for &'a Complex
[src]

The resulting type after applying the - operator

The method for the - operator

impl<'a> AssignRound<SubRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl SubAssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> SubFrom<i32> for Complex
[src]

Peforms the subtraction. Read more

impl<'a> SubFromRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the subtraction. Read more

impl<'a> AssignRound<SubFromRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Mul<i32> for Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl MulAssign<i32> for Complex
[src]

The method for the *= operator

impl<'a> Mul<i32> for &'a Complex
[src]

The resulting type after applying the * operator

The method for the * operator

impl<'a> AssignRound<MulRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl MulAssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl<'a> MulFrom<i32> for Complex
[src]

Peforms the multiplication. Read more

impl<'a> MulFromRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the multiplication. Read more

impl Div<i32> for Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl DivAssign<i32> for Complex
[src]

The method for the /= operator

impl<'a> Div<i32> for &'a Complex
[src]

The resulting type after applying the / operator

The method for the / operator

impl<'a> AssignRound<DivRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl DivAssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> DivFrom<i32> for Complex
[src]

Peforms the division. Read more

impl<'a> DivFromRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the division. Read more

impl<'a> AssignRound<DivFromRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Shl<u32> for Complex
[src]

The resulting type after applying the << operator

The method for the << operator

impl ShlAssign<u32> for Complex
[src]

The method for the <<= operator

impl<'a> Shl<u32> for &'a Complex
[src]

The resulting type after applying the << operator

The method for the << operator

impl<'a> AssignRound<ShlRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Shr<u32> for Complex
[src]

The resulting type after applying the >> operator

The method for the >> operator

impl ShrAssign<u32> for Complex
[src]

The method for the >>= operator

impl<'a> Shr<u32> for &'a Complex
[src]

The resulting type after applying the >> operator

The method for the >> operator

impl<'a> AssignRound<ShrRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Pow<u32> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<u32> for Complex
[src]

Peforms the power operation. Read more

impl<'a> Pow<u32> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefU32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl PowAssignRound<u32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl Shl<i32> for Complex
[src]

The resulting type after applying the << operator

The method for the << operator

impl ShlAssign<i32> for Complex
[src]

The method for the <<= operator

impl<'a> Shl<i32> for &'a Complex
[src]

The resulting type after applying the << operator

The method for the << operator

impl<'a> AssignRound<ShlRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Shr<i32> for Complex
[src]

The resulting type after applying the >> operator

The method for the >> operator

impl ShrAssign<i32> for Complex
[src]

The method for the >>= operator

impl<'a> Shr<i32> for &'a Complex
[src]

The resulting type after applying the >> operator

The method for the >> operator

impl<'a> AssignRound<ShrRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Pow<i32> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<i32> for Complex
[src]

Peforms the power operation. Read more

impl<'a> Pow<i32> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefI32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl PowAssignRound<i32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl Pow<f64> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<f64> for Complex
[src]

Peforms the power operation. Read more

impl<'a> Pow<f64> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefF64<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl PowAssignRound<f64> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl Pow<f32> for Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl PowAssign<f32> for Complex
[src]

Peforms the power operation. Read more

impl<'a> Pow<f32> for &'a Complex
[src]

The resulting type after the power operation.

Performs the power operation. Read more

impl<'a> AssignRound<PowRefF32<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl PowAssignRound<f32> for Complex
[src]

The rounding method.

The direction from rounding.

Performs the power operation. Read more

impl<'a> Add<MulRef<'a>> for Complex
[src]

The resulting type after applying the + operator

Peforms multiplication and addition together, with only one rounding operation to the nearest.

impl<'a> AddAssign<MulRef<'a>> for Complex
[src]

Peforms multiplication and addition together, with only one rounding operation to the nearest.

impl<'a> AddAssignRound<MulRef<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms multiplication and addition together with only one rounding operation as specified.

impl PartialEq for Complex
[src]

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

This method tests for !=.

impl<T, U> PartialEq<(T, U)> for Complex where
    Float: PartialEq<T>,
    Float: PartialEq<U>, 
[src]

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

This method tests for !=.

impl PartialEq<Integer> for Complex
[src]

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

This method tests for !=.

impl PartialEq<Rational> for Complex
[src]

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

This method tests for !=.

impl PartialEq<Float> for Complex
[src]

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

This method tests for !=.

impl PartialEq<u32> for Complex
[src]

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

This method tests for !=.

impl PartialEq<i32> for Complex
[src]

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

This method tests for !=.

impl PartialEq<f64> for Complex
[src]

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

This method tests for !=.

impl PartialEq<f32> for Complex
[src]

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

This method tests for !=.

impl<'a> AssignRound<ValidComplex<'a>> for Complex
[src]

The rounding method.

The direction from rounding.

Peforms the assignment. Read more

impl Send for Complex
[src]

impl Sync for Complex
[src]