pub struct ExactComplex { /* private fields */ }Expand description
Complex value re + i·im with software-limb real and imaginary parts.
Implementations§
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn set_inexact(&mut self, inexact: bool)
pub fn set_inexact(&mut self, inexact: bool)
Sets the inexact flag on both parts.
Sourcepub fn set_precision(&mut self, p: usize, rm: RoundingMode) -> Result<(), Error>
pub fn set_precision(&mut self, p: usize, rm: RoundingMode) -> Result<(), Error>
Rounds both parts to precision p.
Sourcepub fn from_real(re: ExactNum, p: usize) -> Self
pub fn from_real(re: ExactNum, p: usize) -> Self
Real x as x + 0i. Imaginary zero uses precision p.
Sourcepub fn reciprocal(&self, p: usize, rm: RoundingMode) -> Self
pub fn reciprocal(&self, p: usize, rm: RoundingMode) -> Self
1 / self.
Sourcepub fn abs(&self, p: usize, rm: RoundingMode) -> ExactNum
pub fn abs(&self, p: usize, rm: RoundingMode) -> ExactNum
Modulus |z| = hypot(re, im) at precision p.
Sourcepub fn arg(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> ExactNum
pub fn arg(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> ExactNum
Argument atan2(im, re) at precision p.
Branch: same as real atan2; values lie in (−π, π]. The cut of ln / sqrt /
pow is the non-positive real axis, approached from above as +π and from below as −π.
Sourcepub fn add(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
pub fn add(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
self + rhs at precision p.
Sourcepub fn sub(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
pub fn sub(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
self - rhs at precision p.
Sourcepub fn mul(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
pub fn mul(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
self * rhs at precision p.
Each of ac, bd, ad, bc is rounded at (p, rm), then ac−bd and
ad+bc are rounded at (p, rm). That matches the MPFR componentwise gold.
Callers that pass RoundingMode::None still keep full products (series paths).
Sourcepub fn div(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
pub fn div(&self, rhs: &Self, p: usize, rm: RoundingMode) -> Self
self / rhs at precision p.
Sourcepub fn exp(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn exp(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
e^self using exp(re) (cos(im) + i sin(im)).
Sourcepub fn ln(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn ln(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal logarithm ln|z| + i Arg(z).
Branch cut: (−∞, 0] on the real axis. ln(−1) is iπ (argument +π).
Sourcepub fn sin(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn sin(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
sin(self) via sin(re)cosh(im) + i cos(re)sinh(im).
The complex value is not passed to rem_pi. Only the real (resp. imaginary)
component uses real sin_cos / sinh_cosh.
Sourcepub fn cos(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn cos(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
cos(self) via cos(re)cosh(im) - i sin(re)sinh(im).
Sourcepub fn tan(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn tan(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
tan(self) = sin(self) / cos(self).
Sourcepub fn sinh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn sinh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
sinh(self) via sinh(re)cos(im) + i cosh(re)sin(im).
Sourcepub fn cosh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn cosh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
cosh(self) via cosh(re)cos(im) + i sinh(re)sin(im).
Sourcepub fn tanh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn tanh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
tanh(self) = sinh(self) / cosh(self).
Sourcepub fn sqrt(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn sqrt(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal square root: √r (cos(θ/2) + i sin(θ/2)).
Branch cut: (−∞, 0]. Real part of the result is ≥ 0. sqrt(−1) is +i.
Sourcepub fn log2(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn log2(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
log2(self) = ln(self) / ln 2 (principal branch).
Sourcepub fn log10(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn log10(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
log10(self) = ln(self) / ln 10 (principal branch).
Sourcepub fn log(
&self,
base: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn log( &self, base: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
log_base(self) = ln(self) / ln(base) (principal branch).
Sourcepub fn log1p(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn log1p(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
ln(1 + self) (principal branch).
Sourcepub fn exp2(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn exp2(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
exp2(self) = exp(self · ln 2).
Sourcepub fn exp10(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn exp10(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
exp10(self) = exp(self · ln 10).
Sourcepub fn expm1(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn expm1(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
exp(self) − 1.
Sourcepub fn ldexp(&self, n: Exponent, p: usize, rm: RoundingMode) -> Self
pub fn ldexp(&self, n: Exponent, p: usize, rm: RoundingMode) -> Self
Scale both parts by 2^n (ldexp on re and im).
Sourcepub fn logb(&self, p: usize, rm: RoundingMode) -> ExactNum
pub fn logb(&self, p: usize, rm: RoundingMode) -> ExactNum
logb(|z|) as a real (x + 0i).
Sourcepub fn nth_root(
&self,
n: usize,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn nth_root( &self, n: usize, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Principal n-th root via exp(ln(z) / n). Inherits the ln branch cut.
Sourcepub fn cbrt(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn cbrt(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal cube root. Same branch as nth_root with n = 3.
Sourcepub fn hypot(
&self,
other: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn hypot( &self, other: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Principal sqrt(self² + other²) (analytic continuation of real hypot).
Sourcepub fn fma(&self, b: &Self, c: &Self, p: usize, rm: RoundingMode) -> Self
pub fn fma(&self, b: &Self, c: &Self, p: usize, rm: RoundingMode) -> Self
self * b + c at extra working precision, then one round (not a fused complex hardware op).
Sourcepub fn mul_add(&self, b: &Self, c: &Self, p: usize, rm: RoundingMode) -> Self
pub fn mul_add(&self, b: &Self, c: &Self, p: usize, rm: RoundingMode) -> Self
Alias of fma.
Sourcepub fn pow(
&self,
rhs: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn pow( &self, rhs: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
self^rhs as exp(rhs * ln(self)) (principal branch).
Inherits the ln cut on self: non-positive real base uses Arg = ±π.
Sourcepub fn asin(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn asin(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal asin: -i ln(i z + √(1 − z²)).
Sourcepub fn acos(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn acos(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal acos: π/2 − asin(z).
Sourcepub fn atan(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn atan(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal atan: (i/2) ln((i+z)/(i−z)).
Sourcepub fn asinh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn asinh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal asinh: ln(z + √(z² + 1)).
Sourcepub fn acosh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn acosh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal acosh: ln(z + √(z−1)√(z+1)).
Sourcepub fn atanh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn atanh(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal atanh: (1/2) ln((1+z)/(1−z)).
Source§impl ExactComplex
impl ExactComplex
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn bessel_j_nu(
&self,
nu: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn bessel_j_nu( &self, nu: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
(J_\nu(z)). Entire for integer (\nu); cut on ((-\infty,0]) otherwise. (z=0) with non-integer (\nu) → NaN.
§Precision
- Algorithm: series for
|z| < BESSEL_SERIES_THRESHOLD(16); Hankel otherwise. Integer|n| ≤ BESSEL_INTEGER_MAX(64). - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn bessel_y(
&self,
nu: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn bessel_y( &self, nu: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
(Y_\nu(z)). Cut on ((-\infty,0]); (z=0) → NaN.
§Precision
- Algorithm: from (J_ν);
BESSEL_SERIES_THRESHOLD = 16. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn bessel_i(
&self,
nu: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn bessel_i( &self, nu: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
(I_\nu(z)=i^{-\nu}J_\nu(iz)). Same cut rules as (J_\nu).
§Precision
- Algorithm: via
Self::bessel_j_nu;BESSEL_SERIES_THRESHOLD = 16. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn bessel_k(
&self,
nu: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn bessel_k( &self, nu: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
(K_\nu(z)=(\pi/2),i^{\nu+1}H_\nu^{(1)}(iz)). Cut on ((-\infty,0]); (z=0) → NaN.
§Precision
- Algorithm: Hankel of (iz);
BESSEL_SERIES_THRESHOLD = 16. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn ei(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn ei(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Exponential integral (\mathrm{Ei}(z)). Cut on ((-\infty,0]); pole at (0) → NaN.
§Precision
- Algorithm: power series for
|z| < EI_SERIES_THRESHOLD(16); asymptotic otherwise. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn si(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn si(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Sourcepub fn ci(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn ci(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Sourcepub fn li(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn li(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn elliptic_k(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn elliptic_k(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Complete elliptic (K(m)), (m=k^2). Cut on ([1,+\infty)). (m=1) is (+\infty).
§Precision
- Algorithm: Carlson
R_Fin ℂ;CARLSON_DUPE_MAX = 128. - Bound: identities evaluated outside Ziv (nested Ziv would exhaust
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn elliptic_e_complete(
&self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn elliptic_e_complete( &self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Complete elliptic (E(m)). (E(1)=1). Cut of (K) inherited through (1-m).
§Precision
- Algorithm: Carlson
R_F/R_D;CARLSON_DUPE_MAX = 128. - Bound: same as
Self::elliptic_k. - MPFR oracle: no.
Sourcepub fn elliptic_f(
&self,
m: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn elliptic_f( &self, m: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Incomplete (F(x|m)), (x=\sin\varphi), (m=k^2).
§Precision
- Algorithm: Carlson
R_F;CARLSON_DUPE_MAX = 128. - MPFR oracle: no.
Carlson (R_F(1-x^2,1-mx^2,1)). Cuts when (1-x^2) or (1-mx^2) lies on ((-\infty,0]) (principal square-root cut). (F(x,0)=\arcsin x).
Sourcepub fn elliptic_e(
&self,
m: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn elliptic_e( &self, m: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Incomplete (E(x|m)). Same (x,m) convention as Self::elliptic_f.
§Precision
- Algorithm: Carlson
R_F/R_D;CARLSON_DUPE_MAX = 128. - MPFR oracle: no. Cuts as for (F). (E(x,0)=\arcsin x); (E(x,1)=x).
Sourcepub fn elliptic_pi_complete(
&self,
m: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn elliptic_pi_complete( &self, m: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Complete (\Pi(n,m)). self is (n). (\Pi(0,m)=K(m)). Pole at (n=1).
§Precision
- Algorithm: Carlson
R_J;CARLSON_DUPE_MAX = 128. - MPFR oracle: no.
Sourcepub fn elliptic_pi(
&self,
x: &Self,
m: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn elliptic_pi( &self, x: &Self, m: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Incomplete (\Pi(n;x|m)). self is (n).
§Precision
- Algorithm: Carlson
R_J;CARLSON_DUPE_MAX = 128. - MPFR oracle: no.
Cuts when (1-x^2), (1-mx^2), or (1-nx^2) meets the Carlson cut ((-\infty,0]). (\Pi(0;x|m)=F(x|m)).
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn hypergeom_2f1(
&self,
b: &Self,
c: &Self,
z: &Self,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
pub fn hypergeom_2f1( &self, b: &Self, c: &Self, z: &Self, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
Gaussian ({}_2F_1(a=\mathrm{self},b;c;z)) in (\mathbb{C}).
Series when (\lvert z\rvert<1); Pfaff when (\mathrm{Re}(z)<1/2); Euler / (1-z) and (1/z) linear transforms otherwise. Kummer at (z=1) when (\mathrm{Re}(c-a-b)>0). Cut on ([1,+\infty)) in (z) (principal value from above). Non-positive integer (c) (uncanceled) → NaN.
§Precision
- Algorithm: series / Euler / Pfaff / Kummer. Caps
HYPERGEOM_SERIES_MAX_TERMS = 10_000,HYPERGEOM_TRANSFORM_MAX = 8. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Source§impl ExactComplex
impl ExactComplex
Sourcepub fn erf(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn erf(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Error function (\mathrm{erf}(z)=1-\mathrm{erfc}(z)). Entire; NaN in → NaN out.
§Precision
- Algorithm: Faddeeva
w(z)series for|z|belowFADDEEVA_SERIES_L1 = 8; continued fraction otherwise. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: real axis vs
mpfr_erf. GNU MPC has nompc_erf. Off-axis:erfodd,erfc=1-erf.
Sourcepub fn erfc(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn erfc(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Sourcepub fn gamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn gamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Gamma (\Gamma(z)). Poles at non-positive integers → NaN.
§Precision
- Algorithm: Stirling (
GAMMA_STIRLING_TERMS = 64) plus reflection; factorial for small integers (GAMMA_FACTORIAL_MAX = 64). - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: real axis vs
mpfr_gamma. GNU MPC has nompc_gamma. Integers:Γ(n)=(n-1)!.
Sourcepub fn ln_gamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn ln_gamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Principal (\ln\Gamma(z)). Cut on ((-\infty,0]); poles → NaN. Equals (\ln(\Gamma(z))) with the principal logarithm.
§Precision
- Algorithm: Stirling (
GAMMA_STIRLING_TERMS = 64) plus reflection. - Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Sourcepub fn digamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
pub fn digamma(&self, p: usize, rm: RoundingMode, cc: &mut Consts) -> Self
Digamma (\psi(z)=\Gamma’/\Gamma). Poles at non-positive integers → NaN.
§Precision
- Algorithm: recurrence plus Bernoulli; reflection for (\operatorname{Re} z < 0).
- Bound: Ziv on each part (
MAX_PREC_RETRY). - MPFR oracle: no.
Trait Implementations§
Source§impl Add for ExactComplex
impl Add for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
+ operator.Source§fn add(self, rhs: ExactComplex) -> ExactComplex
fn add(self, rhs: ExactComplex) -> ExactComplex
+ operation. Read moreSource§impl Add<&ExactComplex> for &ExactComplex
impl Add<&ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
+ operator.Source§fn add(self, rhs: &ExactComplex) -> ExactComplex
fn add(self, rhs: &ExactComplex) -> ExactComplex
+ operation. Read moreSource§impl Add<&ExactComplex> for ExactComplex
impl Add<&ExactComplex> for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
+ operator.Source§fn add(self, rhs: &ExactComplex) -> ExactComplex
fn add(self, rhs: &ExactComplex) -> ExactComplex
+ operation. Read moreSource§impl Add<ExactComplex> for &ExactComplex
impl Add<ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
+ operator.Source§fn add(self, rhs: ExactComplex) -> ExactComplex
fn add(self, rhs: ExactComplex) -> ExactComplex
+ operation. Read moreSource§impl Clone for ExactComplex
impl Clone for ExactComplex
Source§fn clone(&self) -> ExactComplex
fn clone(&self) -> ExactComplex
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExactComplex
impl Debug for ExactComplex
Source§impl Div for ExactComplex
impl Div for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
/ operator.Source§fn div(self, rhs: ExactComplex) -> ExactComplex
fn div(self, rhs: ExactComplex) -> ExactComplex
/ operation. Read moreSource§impl Div<&ExactComplex> for &ExactComplex
impl Div<&ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
/ operator.Source§fn div(self, rhs: &ExactComplex) -> ExactComplex
fn div(self, rhs: &ExactComplex) -> ExactComplex
/ operation. Read moreSource§impl Div<&ExactComplex> for ExactComplex
impl Div<&ExactComplex> for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
/ operator.Source§fn div(self, rhs: &ExactComplex) -> ExactComplex
fn div(self, rhs: &ExactComplex) -> ExactComplex
/ operation. Read moreSource§impl Div<ExactComplex> for &ExactComplex
impl Div<ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
/ operator.Source§fn div(self, rhs: ExactComplex) -> ExactComplex
fn div(self, rhs: ExactComplex) -> ExactComplex
/ operation. Read moreSource§impl FromExt<&ExactComplex> for ExactComplex
impl FromExt<&ExactComplex> for ExactComplex
Source§fn from_ext(
v: &ExactComplex,
p: usize,
rm: RoundingMode,
cc: &mut Consts,
) -> Self
fn from_ext( v: &ExactComplex, p: usize, rm: RoundingMode, cc: &mut Consts, ) -> Self
v to ExactNum with precision p using rounding mode rm.Source§impl FromExt<ExactComplex> for ExactComplex
impl FromExt<ExactComplex> for ExactComplex
Source§fn from_ext(
v: ExactComplex,
p: usize,
rm: RoundingMode,
_cc: &mut Consts,
) -> Self
fn from_ext( v: ExactComplex, p: usize, rm: RoundingMode, _cc: &mut Consts, ) -> Self
v to ExactNum with precision p using rounding mode rm.Source§impl<T> FromExt<T> for ExactComplex
impl<T> FromExt<T> for ExactComplex
Source§impl Mul for ExactComplex
impl Mul for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
* operator.Source§fn mul(self, rhs: ExactComplex) -> ExactComplex
fn mul(self, rhs: ExactComplex) -> ExactComplex
* operation. Read moreSource§impl Mul<&ExactComplex> for &ExactComplex
impl Mul<&ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
* operator.Source§fn mul(self, rhs: &ExactComplex) -> ExactComplex
fn mul(self, rhs: &ExactComplex) -> ExactComplex
* operation. Read moreSource§impl Mul<&ExactComplex> for ExactComplex
impl Mul<&ExactComplex> for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
* operator.Source§fn mul(self, rhs: &ExactComplex) -> ExactComplex
fn mul(self, rhs: &ExactComplex) -> ExactComplex
* operation. Read moreSource§impl Mul<ExactComplex> for &ExactComplex
impl Mul<ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
* operator.Source§fn mul(self, rhs: ExactComplex) -> ExactComplex
fn mul(self, rhs: ExactComplex) -> ExactComplex
* operation. Read moreSource§impl Sub for ExactComplex
impl Sub for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
- operator.Source§fn sub(self, rhs: ExactComplex) -> ExactComplex
fn sub(self, rhs: ExactComplex) -> ExactComplex
- operation. Read moreSource§impl Sub<&ExactComplex> for &ExactComplex
impl Sub<&ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
- operator.Source§fn sub(self, rhs: &ExactComplex) -> ExactComplex
fn sub(self, rhs: &ExactComplex) -> ExactComplex
- operation. Read moreSource§impl Sub<&ExactComplex> for ExactComplex
impl Sub<&ExactComplex> for ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
- operator.Source§fn sub(self, rhs: &ExactComplex) -> ExactComplex
fn sub(self, rhs: &ExactComplex) -> ExactComplex
- operation. Read moreSource§impl Sub<ExactComplex> for &ExactComplex
impl Sub<ExactComplex> for &ExactComplex
Source§type Output = ExactComplex
type Output = ExactComplex
- operator.Source§fn sub(self, rhs: ExactComplex) -> ExactComplex
fn sub(self, rhs: ExactComplex) -> ExactComplex
- operation. Read moreAuto Trait Implementations§
impl Freeze for ExactComplex
impl RefUnwindSafe for ExactComplex
impl Send for ExactComplex
impl Sync for ExactComplex
impl Unpin for ExactComplex
impl UnsafeUnpin for ExactComplex
impl UnwindSafe for ExactComplex
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more